Рассылка СМС из 1С на базе 8.3
Рассылка СМС из 1С 8.3 — отличный способ напомнить любимым клиентам о новых акциях, поступлении товара и других событиях.
Ранее в своем блоге мы рассматривали рассылку SMS из 1С на основе веб-сервиса. Но судя по отзывам, настройка такого решения не всегда проста для разработчика. Ниже мы рассмотрим более доступный способ для отправки коротких сообщения — метод GET протокола HTTP. Рассмотрим пример разработки такой обработки и предложим скачать образец.
Настройка отправки СМС из 1С
Для начала небольшая вводная, что такое HTTP и его методы. Естественно, ответ лучше, чем интернет-энциклопедия Wikipedia нам никто не сможет дать:
HTTP (от англ. HyperText Transfer Protocol — «протокол передачи гипертекста») — сетевой протокол прикладного уровня для передачи файлов. GET -Используется для запроса содержимого указанного ресурса. С помощью метода GET можно также начать какой-либо процесс. В этом случае в тело ответного сообщения следует включить информацию о ходе выполнения процесса.
В нашем случае мы как раз будем запускать процесс отправки СМС с определенными параметрами. Параметры просты — пароль, логин, номер адресата СМС и текст сообщения.
В нашем примере мы будем использовать интернет-шлюз — AvisoSMS. У него есть набор различных API: среди них GET, JSON, XML, Email2SMS (документация). Мы рассмотрим самый простой и доступный — GET.
Для работы со шлюзом необходимо зарегистрироваться, для теста у Вас будет доступно некоторое количество бесплатных СМС (около 5-10), этого достаточно для начального теста рассылки. Сохраните логин и пароль, он пригодится в будущем.
Пишем код для отправки
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Я создал новую внешнюю обработку, в которой завел 4 реквизита формы и 1 команду:
Команду «Отправить СМС» я вывел на форму и прописал следующий программный код в серверной процедуре:
ИмяФайлаОтвета = ПолучитьимяВременногоФайла(«txt»);
Соединение = Новый HTTPСоединение(«api.avisosms.ru»);
СтрокаПодключения = «sms/get/?username=» + СокрЛП(Логин) + «&password=» + СокрЛП(Пассворд) + «&destination_address=» + СокрЛП(НомерАдресата) + «&source_address=SENDER&message=» + СокрЛП(Текст);
Соединение.Получить(СтрокаПодключения, ИмяФайлаОтвета);
ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
Если ФайлОтвета.Существует() Тогда
ТекстОтвета = Новый ТекстовыйДокумент();
ТекстОтвета.Прочитать(ИмяФайлаОтвета);
Если ТекстОтвета.КоличествоСтрок()>0 Тогда
ОтветСервера = ТекстОтвета.ПолучитьТекст();
Если Найти(ОтветСервера, «OK_Operation_Completed») > 0 Тогда
Сообщить(«Сообщение успешно отправлено на номер » + СокрЛП(НомерАдресата));
Иначе
Сообщить(«Проблемы с отправкой СМС на номер » + СокрЛП(НомерАдресата) + «. Ответ сервера: » + ОтветСервера);
КонецЕсли;
Иначе
КонецЕсли;
УдалитьФайлы(ИмяФайлаОтвета);
КонецЕсли;
Вот и весь программный код. Этого достаточно для полноценной отправки сообщений.
Запускаем в режиме 1С: Предприятие и тестируем. Вводим пароль и логин, введенные при регистрации, текст сообщения и номер адреса. Нажимаем команду «отправить»:
Очень скоро на телефон придёт СМС:
Тестовые СМС возможны только с указанным выше текстом сообщением.
Вот и всё, мы достаточно быстро и просто настроили рассылку из 1С. Однако самое сложное — интегрировать эти методы в Вашу информационную базу. Скачайте получившуюся обработку и используйте её в своих наработках — Тест отправки СМС.
Если Вы не разработчик, но желаете внедрить отправку СМС в Вашу информационную базу, просто обратитесь к специалистам. На основе вышеописанной инструкции сделать это можно намного проще.
P.S. Пользуясь случаем: мы сами рады предложить Вам свои услуги по внедрению систем любой сложности — подробности на странице услуги по 1С.
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
СПРОСИТЕ в комментариях!
Jackie Chan:
Пожалуйста, помогите мне. Я попытался таким образом, но ошибка «Couldn’t resolve host name.» Моя служба API: http://brandsms. vn:8329/sentsms.asmx
P / S: По соображениям безопасности ограничено услуг API IP-адрес
Jackie Chan:
This is my code:
ИмяФайлаОтвета = ПолучитьимяВременногоФайла(«txt»);
Соединение = Новый HTTPСоединение(«http://brandsms.vn», «8329»);
СтрокаПодключения = «/sentsms.asmx/SendSmsChamSocKhachHang?authenticateUser=vmgtest1&password=abc123456&msisdn=84975851284&alias=1VS&message=Hello&contentType=0»;
Соединение.Получить(СтрокаПодключения, ИмяФайлаОтвета);
ФайлОтвета = Новый Файл(ИмяФайлаОтвета);
Если ФайлОтвета.Существует() Тогда
ТекстОтвета = Новый ТекстовыйДокумент();
ТекстОтвета.Прочитать(ИмяФайлаОтвета);
Если ТекстОтвета.КоличествоСтрок()>0 Тогда
ОтветСервера = ТекстОтвета.ПолучитьТекст();
Если Найти(ОтветСервера, «0») > 0 Тогда
Сообщить(«Success»);
Иначе
Сообщить(«Error»);
КонецЕсли;
Иначе
КонецЕсли;
УдалитьФайлы(ИмяФайлаОтвета);
КонецЕсли;
Программист 1С:
Попробуйте адрес сервера указать без HTTP, скорее всего причина в этом.
Если нет — стоит копать в сторону соединения: фаерволлы, брендмауэры, антивирусы 🙂
СЕО:
А мы до сегодняшнего дня отправляли СМС-ки вручную с сайта ….
Автору выражаем благодарность за материал!
Аноним:
Спасибо за статью!
Нет ли у вас информации о способах обработки смс, отправленных клиентом? Например, на короткий номер.
Аноним:
Соединение.Получить(СтрокаПодключения, ИмяФайлаОтвета);
СтрокаПодключения — тип должен быть HTTPЗапрос, а не строка.
Работать не будет.