Наверняка в жизни каждого из программистов стояла задача взаимодействия удаленных пользователей с программой автоматизации, например 1с, с наименьшими затратами. Если брать за основу 1с, то у нас есть несколько способов:
- Доступ к программе через RDP. Для реализации подобного взаимодействия , нужен будет хороший канал интернета, выделенный IP, хороший сервер и User CAL
- Доступ через WEB интерфейс. Тема на данный момент очень развивающаяся, 1с принимает немало усилий в доработке продукта, что бы 1с в облаке работало корректно. Но, на мой взгляд, подобная технология еще сыровата. Хотя есть организации, которые уже в облаке работают давно и их все устраивает. Для выгрузки 1с в облако, нам потребуется хороший интернет канал, желательно мощный сервер.
- Обмен. Так кратко называется этот пункт. Мы можем организовать работу пользователей с сайтом или другим внешним сервисом и через определенное время выполнять обмен и загружать информацию в программу. Это способ наиболее выгодный, если пользователи должны вносить минимум информации.
У последнего способа есть много достоинств:
- Не нужен мощный выделенный канал, подойдет простой USB модем.
- Нет необходимости докупать дополнительные клиентские лицензии для работы в 1с. Обмен может выполняться через регламентное задание под одним пользователем.
- У удаленных пользователей, не будет прямого доступа к конфигурации. Шанс допустить ошибку в системе будет минимален.
У каждого из нашего сотрудников есть мобильный телефон и мы будем конструировать связь с 1С посредством смс сообщений. Есть два способа реализации данной задачи: прием смс через USB модем или с помощью виртуального номера. Автоматизировать обмен посредством виртуального номера.
Погуглив нашел один из сервисов, который по приемлемой цене сдает в аренду виртуальные номера smsc.ru. Удобство этого сервиса в отлаженном API. На сайте есть библиотеки PHP, 1С, C++, Java и т.д.
Получение входящих сообщений
Для получения списка входящих сообщений необходимо вызвать методом GET или POST адрес:
http://smsc.ru/sys/get.php?get_answers=1&login=<login>&psw=<password>
Параметр | Значение |
---|---|
login | Логин Клиента. |
psw | Пароль Клиента или MD5-хеш пароля в нижнем регистре. |
hour | Период в часах, за который необходимо запросить входящие сообщения. |
after_id | Идентификатор сообщения, начиная с которого необходимо вернуть входящие сообщения, за исключением самого after_id. |
<result>
<error>описание</error> <error_code>N</error_code> </result> |
{
"error": "описание", "error_code": N } |
Значение | Описание |
---|---|
1 | Ошибка в параметрах. |
2 | Неверный логин или пароль. |
4 | IP-адрес временно заблокирован. |
9 | Попытка отправки более трех одинаковых запросов на получение списка входящих сообщений в течение минуты. |
<sms_answers>
<sms> <id>id</id> <received>received</received> <phone>phone</phone> <message>message</message> <to_phone>to_phone</to_phone> <sent>sent</sent> </sms> ... </sms_answers> |
[{
"id": <id>, "received": "<received>", "phone": "<phone>", "message": "<message>", "to_phone": "<to_phone>", "sent": "<sent>" }, ...] |
http://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123
http://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&hour=48
http://smsc.ru/sys/get.php?get_answers=1&login=alex&psw=123&after_id=1234567
Сервер не принимает более трех одинаковых запросов в течение минуты на получение списка входящих сообщений для снижения нагрузки и защиты от ошибок и зацикливаний в программе на стороне Клиента.
В следующей статье выложу библиотеку для приема и обработкуи смс сообщений в 1с.
И ваще, полезный и удобный у вас блог.
Это вордпресс так кастомизирован?