К статье
Практический материал

Автоматизация · 11 мин

Как отправлять СМС из 1С: настройка и практические сценарии

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

Отправка СМС из 1С решает прикладные задачи: уведомить клиента о готовности заказа, напомнить о записи или оплате, передать код подтверждения. В типовых конфигурациях на платформе 1С:Предприятие 8.3 (Управление торговлей, УНФ, Бухгалтерия, ERP) есть встроенный механизм отправки сообщений через SMS-провайдеров, а при необходимости можно реализовать отправку программно через HTTP-запросы к API шлюза.

Для работы потребуется договор с SMS-агрегатором или оператором, учётные данные для подключения (логин, пароль или API-ключ) и зарегистрированное имя отправителя. Без подписи отправителя операторы связи обычно блокируют массовые рассылки, поэтому регистрацию альфа-имени стоит выполнить заранее.

Ниже разобраны оба подхода: штатная настройка в типовых конфигурациях и программная отправка через встроенный язык, а также контроль доставки, ограничения и типичные ошибки.

Какие способы отправки СМС из 1С существуют

Первый способ — штатная подсистема «Отправка SMS» в конфигурациях на Библиотеке стандартных подсистем (БСП). Она поддерживает ряд популярных провайдеров «из коробки»: настройка сводится к выбору оператора из списка и вводу учётных данных. Отправка доступна из карточки контрагента, из документов и через обработку рассылки.

Второй способ — программная отправка через встроенный язык 1С. Разработчик формирует HTTP-запрос к API выбранного SMS-агрегатора, передаёт номер, текст и подпись, а затем обрабатывает ответ. Этот вариант гибче: можно отправлять сообщения по любым событиям (проведение документа, изменение статуса заказа), интегрироваться с любым шлюзом, включая корпоративные.

Третий вариант — внешние компоненты и готовые модули интеграции от самих агрегаторов. Некоторые провайдеры поставляют готовые расширения для популярных конфигураций, что сокращает объём доработок, но привязывает решение к конкретному поставщику услуг.

Сравнение подходов

Штатная подсистема БСП

Подходит для ручной отправки и простых рассылок без доработок; ограничена списком поддерживаемых провайдеров и событий.

Программная отправка через API

Подходит для автоматических уведомлений по событиям и нестандартных шлюзов; требует доработки конфигурации и тестирования.

Готовые модули агрегаторов

Быстрый старт с конкретным провайдером; зависимость от поставщика и возможные конфликты при обновлении конфигурации.

Настройка отправки СМС в типовой конфигурации

В конфигурациях на базе БСП настройка выполняется в разделе администрирования. Точные названия пунктов меню зависят от конфигурации, но общий путь одинаков: найти настройки органайзера или обмена сообщениями и включить отправку SMS.

Последовательность действий в типовой «Управление торговлей» или «УНФ»:

Настройка отправки СМС
  1. 1
    Откройте раздел «Администрирование» — «Органайзер» (или «Настройки рассылок и обмена сообщениями») и включите флажок «Отправка SMS».
  2. 2
    Перейдите по ссылке «Настройка отправки SMS» и выберите провайдера из списка поддерживаемых.
  3. 3
    Введите логин и пароль (или API-ключ), полученные от SMS-агрегатора.
  4. 4
    Укажите имя отправителя, зарегистрированное у оператора, если провайдер это поддерживает.
  5. 5
    Нажмите «Проверить настройки» и отправьте тестовое сообщение на собственный номер.
  6. 6
    Убедитесь, что сообщение доставлено, а в журнале нет ошибок авторизации.

Если вашего провайдера нет в списке, штатная подсистема позволяет настроить отправку через HTTP-запрос с произвольным шаблоном URL: указывается адрес шлюза, параметры запроса (номер, текст, логин) и формат ответа. Это компромисс между типовой настройкой и полной доработкой.

После настройки отправка становится доступной из карточки контрагента (команда «SMS» в панели контактной информации) и из документов, где заполнен получатель. Телефон должен быть указан в международном формате, начиная с кода страны, иначе шлюз может отклонить сообщение.

Программная отправка через HTTP-запрос

Когда штатных возможностей недостаточно, отправку реализуют на встроенном языке. Типовой подход — сформировать HTTP-запрос к API агрегатора с помощью объекта HTTPСоединение. Ниже упрощённый пример структуры кода:

Процедура ОтправитьСМС(НомерТелефона, ТекстСообщения)

Сервер = "api.sms-gateway.example";

Ресурс = "/send?login=" + Логин

+ "&password=" + Пароль

+ "&phone=" + НомерТелефона

+ "&text=" + КодироватьСтроку(ТекстСообщения,

СпособКодированияСтроки.КодировкаURL);

Соединение = Новый HTTPСоединение(Сервер, 443, , , , ,

Новый ЗащищенноеСоединениеOpenSSL);

Запрос = Новый HTTPЗапрос(Ресурс);

Ответ = Соединение.Получить(Запрос);

Если Ответ.КодСостояния = 200 Тогда

// Разбор ответа и запись статуса в журнал

Иначе

ВызватьИсключение "Ошибка отправки SMS: " + Ответ.КодСостояния;

КонецЕсли;

КонецПроцедуры

Обратите внимание на три момента. Во-первых, текст сообщения обязательно кодируется функцией КодироватьСтроку, иначе кириллица и пробелы сломают запрос. Во-вторых, учётные данные не следует хранить прямо в коде — используйте константы, хранилище общих настроек или защищённые параметры. В-третьих, отправку лучше выполнять в фоновом задании, чтобы пользователь не ждал ответа внешнего сервиса при проведении документа.

Для автоматических уведомлений процедуру вызывают из подписок на события (например, «ПриЗаписи» документа) или из регламентных заданий, которые периодически выбирают документы, требующие уведомления. Второй вариант надёжнее: сообщение не потеряется, если в момент записи документа сервис был недоступен.

Как отправить СМС из документа или карточки контрагента

В типовой конфигурации после настройки провайдера откройте карточку контрагента, в поле телефона нажмите кнопку выбора действия и команду отправки SMS. Откроется форма сообщения: номер подставится автоматически, останется ввести текст и нажать «Отправить».

Для массовой отправки используется обработка рассылки (в ряде конфигураций — «Рассылка сообщений» или групповая обработка контрагентов). Формируется список получателей по отбору (например, все клиенты с задолженностью или участники акции), задаётся шаблон текста с подстановкой полей — имени, суммы, номера заказа.

Шаблоны с параметрами экономят время и снижают риск ошибок: вместо ручного ввода суммы долга в текст подставляется значение из базы. Проверяйте длину итогового сообщения: одно SMS вмещает ограниченное число символов (для кириллицы — заметно меньше, чем для латиницы), а длинные тексты тарифицируются как несколько сообщений.

Перед массовой рассылкой отправьте тестовое сообщение на свой номер с реальными данными из базы: так видно, как подставились параметры шаблона и сколько сегментов занимает текст. Это дешевле, чем обнаружить ошибку после отправки тысячи сообщений.
ПЗ
Практическое замечание

Проверка доставки и контроль расходов

Факт отправки не равен доставке: телефон может быть выключен, номер — недействительным, а сообщение — отклонено оператором. Большинство агрегаторов передают статусы доставки через API или личный кабинет. В программной интеграции имеет смысл запрашивать статус по идентификатору сообщения и сохранять его в базе — это позволяет строить отчёты о недоставленных уведомлениях.

Контролируйте баланс на счёте агрегатора: при нулевом балансе отправка молча останавливается, и клиенты перестают получать уведомления. Настройте оповещение о низком балансе в личном кабинете провайдера или периодическую проверку баланса через API.

Контрольные точки

Как проверить результат

Тестовое сообщение на свой номер
Норма

Доставлено в течение минуты, текст читаем, подпись отправителя корректна

Тревожный признак

Сообщение не пришло, пришло с чужой подписью или с искажённым текстом

Журнал отправки в 1С
Норма

Статус «Отправлено» или «Доставлено» без ошибок авторизации

Тревожный признак

Ошибки 401/403 (учётные данные), 400 (формат запроса), таймауты

Баланс у агрегатора
Норма

Остатка хватает на плановый объём рассылок

Тревожный признак

Баланс близок к нулю — отправка остановится

Формат номеров в базе
Норма

Номера в международном формате с кодом страны

Тревожный признак

Номера без кода страны, со скобками и пробелами — шлюз отклоняет

Типичные ошибки и их устранение

Типичные ошибки
01
Номер без кода страны или с лишними символами — шлюз отклоняет сообщение; нормализуйте телефоны в базе перед рассылкой.
02
Не зарегистрировано имя отправителя — операторы блокируют сообщения или подставляют случайную подпись.
03
Текст не закодирован для URL — кириллица превращается в ошибку запроса или нечитаемый текст.
04
Отправка синхронно при записи документа — зависание интерфейса и откат транзакции при недоступности сервиса.
05
Пароль и API-ключ зашиты в код — риск утечки при выгрузке конфигурации и сложность смены учётных данных.
06
Нет контроля баланса и статусов доставки — рассылки фактически не доходят, а в 1С всё выглядит исправным.

Отдельная группа проблем — лимиты операторов на однотипные сообщения. Массовая отправка идентичных текстов с коротких интервалов может расцениваться как спам, и подпись отправителя заблокируют. Согласуйте с агрегатором характер рассылок (сервисные или рекламные) и соблюдайте требования законодательства о согласии абонентов на получение сообщений.

Если сообщения перестали уходить после обновления конфигурации, проверьте, не сбросились ли настройки провайдера и не изменился ли формат API у агрегатора. Храните описание рабочей настройки (параметры запроса, формат ответа) во внутренней документации — это ускоряет диагностику.

Итог

Что важно запомнить

Для ручной отправки и простых рассылок достаточно штатной настройки провайдера в разделе администрирования. Автоматические уведомления реализуются программно через HTTP-запросы, желательно в фоновых заданиях. Обязательно регистрируйте имя отправителя, нормализуйте номера, контролируйте баланс, статусы доставки и не храните пароли в коде.

Частые вопросы

Можно ли отправлять СМС из 1С бесплатно?

Полностью бесплатных легальных способов массовой отправки нет: операторы взимают плату за каждое сообщение. Некоторые агрегаторы дают тестовый баланс для проверки интеграции. Альтернатива — бесплатные каналы вроде push-уведомлений или мессенджеров, но они требуют отдельной интеграции и согласия клиента.

Моего провайдера нет в списке настроек 1С. Что делать?

Используйте вариант настройки «через произвольный HTTP-запрос», если он доступен в вашей конфигурации: укажите URL шлюза, параметры и формат ответа из документации агрегатора. Если такого варианта нет, реализуйте отправку программно по примеру из статьи.

Почему сообщение с кириллицей приходит короче или тарифицируется как несколько SMS?

Сообщения на кириллице кодируются в UCS-2, и в один сегмент помещается заметно меньше символов, чем в латинице. Длинный текст автоматически разбивается на сегменты, каждый из которых оплачивается отдельно. Сокращайте шаблоны и проверяйте длину на тестовых отправках.

Как отправлять СМС автоматически при проведении документа?

Используйте подписку на событие записи документа или регламентное задание, которое выбирает документы, требующие уведомления. Саму отправку выполняйте в фоновом задании, чтобы задержки внешнего сервиса не блокировали работу пользователя, и сохраняйте факт отправки, чтобы не отправить сообщение повторно.

Законно ли отправлять рекламные СМС клиентам из базы?

Рекламные рассылки допустимы только при наличии предварительного согласия абонента на их получение. Сервисные уведомления (статус заказа, напоминание о записи) имеют более мягкий режим, но и по ним стоит фиксировать согласие и давать возможность отказаться. Требования уточняйте в действующем законодательстве и у своего агрегатора.

Что делать, если оператор заблокировал подпись отправителя?

Обратитесь к агрегатору за причиной блокировки: чаще всего это жалобы на спам, несоответствие текстов заявленному характеру рассылки или незарегистрированное имя. После устранения причины подпись можно перерегистрировать. На время блокировки настройте резервную подпись или альтернативный канал уведомлений.