Поступил недавно запрос в качестве улучшения клиентоориентированности службы диспетчерской реализовать отправку СМС сообщений из 1С 7.7 при получении и выполнении заявок мастерами.
Посмотрев разные агрегаторы, остановились на платформе WEBSMS.RU.
У сервиса также есть база знаний с примерами реализации на различных платформах 1С (но не для 7.7, для 8.2 и 8.3 есть готовые шаблоны) База знаний WEBSMS.RU.
Поскольку конфигурация старая и в платформе просто нет методов работы с HTTP запросами, был реализован следующий механизм.
1. Добавлены новые константы для хранения данных авторизации на сервисе:
- ИмяПользователяSMS - логин от сервиса
- ПарольПользователяSMS - пароль от сервиса
2. Также необходимо создать отдельный реквизит в документе или в карточке контрагента для хранения мобильного телефона.
3. Далее создаем процедуру в модуле документа или можно вынести в глобальный модуль, в которую передаем номер телефона и содержимое для формирования текста сообщения:
Login = СтрЗаменить(СокрЛП(Константа.ИмяПользователяSMS),"""","");
Password = СтрЗаменить(СокрЛП(Константа.ПарольПользователяSMS),"""","");
FromName = "WEBSMS.RU";
ToPhone = ЗаявительТелефон; //"9261234567";
MessText = "Заявка " + Строка(НомерДок) + " выполнена. Оцените результат на сайте https://u.to/sJUMI";
StartDate = Строка(Формат(ТекущаяДата(),"ДД.ММ.ГГГГ")) + " " + Строка(ТекущееВремя(Ч,М));
// Формирование текста запроса
QueryLink = "http://cab.websms.ru/http_in5.asp?http_username=" + Login + "&http_password=" + Password + "&phone_list=" + ToPhone;
QueryLink = QueryLink + "&message=" + MessText + "&fromPhone=" + FromName + "&send_on=" + StartDate + "&format=xml";
// Создание объекта XMLHttp
Попытка
XMLHttp = СоздатьОбъект("Microsoft.XMLHTTP");
Исключение
Предупреждение(ОписаниеОшибки());
СтатусВозврата(0);
Возврат;
КонецПопытки;
// Инициация HTTP-запроса, возвращающего управление программе после получения ответа:
Попытка
XMLHttp.Open("GET", QueryLink);
Исключение
Предупреждение(ОписаниеОшибки());
СтатусВозврата(0);
Возврат;
КонецПопытки;
// Отправка запроса:
XMLHttp.Send();
//Если XMLHttp.Status = 200 Тогда
//Здесь следует написать алгоритм проверки статуса отправки
//КонецЕсли;
3. Для реализации взят компонент Microsoft.XMLHTTP, который и умеет как раз обрабатывать запросы методом GET. После отработки метода Send() можно описать отработку статуса ответа и возможных ошибок, в данном примере я это не затрагивал.