Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут! (в рабочие часы)

Рассылка СМС из 1С на базе 8.3

Рассылка СМС из 1С 8.3 — отличный способ напомнить любимым клиентам о новых акциях, поступлении товара и других событиях.

Ранее в своем блоге мы рассматривали рассылку SMS из на основе веб-сервиса. Но судя по отзывам, настройка такого решения не всегда проста для разработчика. Ниже мы рассмотрим более доступный способ для отправки коротких сообщения — метод GET протокола HTTP. Рассмотрим пример разработки такой обработки и предложим скачать образец.

отправка коротких сообщений из 1С

Настройка отправки СМС из 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. Мы работаем в Москве и области.

Остались вопросы?

СПРОСИТЕ в комментариях!

Комментариев: 6 на “Рассылка СМС из 1С на базе 8.3
  1. Пожалуйста, помогите мне. Я попытался таким образом, но ошибка «Couldn’t resolve host name.» Моя служба API: http://brandsms. vn:8329/sentsms.asmx
    P / S: По соображениям безопасности ограничено услуг API IP-адрес

    Ответить

    • 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»);
      КонецЕсли;

      Иначе

      КонецЕсли;

      УдалитьФайлы(ИмяФайлаОтвета);

      КонецЕсли;

      Ответить

      • Попробуйте адрес сервера указать без HTTP, скорее всего причина в этом.

        Если нет — стоит копать в сторону соединения: фаерволлы, брендмауэры, антивирусы 🙂

        Ответить

  2. А мы до сегодняшнего дня отправляли СМС-ки вручную с сайта ….
    Автору выражаем благодарность за материал!

    Ответить

  3. Спасибо за статью!
    Нет ли у вас информации о способах обработки смс, отправленных клиентом? Например, на короткий номер.

    Ответить

  4. Соединение.Получить(СтрокаПодключения, ИмяФайлаОтвета);

    СтрокаПодключения — тип должен быть HTTPЗапрос, а не строка.
    Работать не будет.

    Ответить

Добавить комментарий:

Ваш адрес email не будет опубликован.