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

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

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

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

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

Для работы понадобятся три вещи: договор с SMS-провайдером (оператором шлюза), учётные данные для доступа к его API и настройка в самой 1С. Самостоятельно отправить СМС «напрямую с компьютера» без шлюза нельзя — мобильные сети принимают сообщения только от авторизованных отправителей.

Ниже разобраны оба подхода: штатный механизм типовых конфигураций (БСП) и отправка через HTTP-запрос к API провайдера. Оба варианта рабочие, выбор зависит от того, какая у вас конфигурация и какие требования к гибкости.

Что нужно подготовить перед настройкой

Первый шаг — выбрать SMS-провайдера и заключить с ним договор. Провайдер выдаёт учётные данные: логин и пароль либо API-ключ, а также адрес шлюза (URL для запросов). Пополните баланс, иначе тестовые отправки будут отклоняться с ошибкой недостатка средств.

Второй шаг — зарегистрировать имя отправителя (альфа-имя, sender ID). Это подпись, которую увидит получатель вместо номера, например название компании. Без регистрации имени сообщения уйдут со случайного номера или вовсе не будут доставлены — операторы фильтруют неподписанный трафик. Регистрация имени у провайдера обычно занимает от нескольких часов до нескольких дней.

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

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

В конфигурациях на базе Библиотеки стандартных подсистем (1С:Управление торговлей, 1С:ERP, 1С:Комплексная автоматизация, 1С:Документооборот и других) механизм уже встроен. Откройте раздел «Администрирование», затем «Органайзер» (в некоторых конфигурациях — «Общие настройки» или «Настройка рабочего места») и найдите пункт «Отправка SMS».

Установите флаг «Отправка SMS» и выберите провайдера из списка поддерживаемых. В типовой поставке обычно доступны несколько предопределённых провайдеров и вариант «Другой провайдер» для ручного указания параметров. Введите логин и пароль, полученные от провайдера, и сохраните настройки.

После сохранения проверьте соединение кнопкой проверки настроек, если она есть в вашей версии конфигурации. Успешная проверка означает, что 1С смогла авторизоваться на шлюзе. Это ещё не гарантирует доставку, но исключает ошибки в учётных данных.

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

Отправка СМС программно: пример кода

Если конфигурация самописная или нужна нестандартная логика (например, своя очередь сообщений), отправку делают через HTTP-запрос к API провайдера. Большинство шлюзов принимают простые GET- или POST-запросы с параметрами: номер, текст, имя отправителя, учётные данные.

Типовой фрагмент кода на встроенном языке 1С выглядит так:

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

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

АдресРесурса = "/api/send?login=МойЛогин&password=МойПароль"

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

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

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

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

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

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

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

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

// сообщение принято шлюзом

Иначе

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

КонецЕсли;

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

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

Отправка из документов и по событиям

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

Для автоматической отправки по событию в самописной конфигурации используют подписку на событие записи документа или регламентное задание. Регламентное задание надёжнее: оно раз в несколько минут выбирает из очереди неотправленные сообщения и отправляет их пакетно. Такой подход не тормозит проведение документов и позволяет повторить отправку при временном сбое шлюза.

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

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

Проверка доставки и диагностика проблем

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

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

Большинство провайдеров предоставляют личный кабинет с журналом сообщений и статусами доставки. Сверяйте статус в кабинете со статусом в 1С — это самый быстрый способ локализовать проблему.

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

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

Ответ шлюза на запрос
Норма

Код состояния 200, в ответе идентификатор сообщения

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

Код 4xx/5xx или текст ошибки авторизации

Баланс в личном кабинете провайдера
Норма

Стоимость сообщения списана

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

Баланс не изменился — сообщение не ушло

Телефон получателя
Норма

СМС доставлено с зарегистрированным именем отправителя

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

Сообщение отсутствует или пришло с незнакомого номера

Журнал в 1С
Норма

Запись об отправке с датой и статусом

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

Ошибка в журнале регистрации или пустая очередь

Типичные ошибки и ограничения

Самая частая ошибка — неправильный формат номера. Пробелы, скобки, дефисы и восьмёрка в начале вместо кода страны приводят к отклонению сообщения шлюзом. Перед отправкой нормализуйте номер: оставьте только цифры и приведите к формату с кодом страны.

Вторая группа ошибок — работа с текстом. Незакодированный текст ломает URL запроса, а эмодзи и некоторые спецсимволы переводят сообщение в другую кодировку, сокращая допустимую длину. Проверяйте шаблоны на реальных примерах до запуска рассылки.

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

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

FAQ: частые вопросы об отправке СМС из 1С

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

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

Чем отправка через шлюз отличается от отправки через мобильный телефон?

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

Почему сообщение принято шлюзом, но не дошло до абонента?

Типичные причины: имя отправителя не согласовано оператором получателя, телефон абонента выключен длительное время и срок жизни сообщения истёк, номер в стоп-листе или ошибочен. Запросите у провайдера детальный статус доставки по идентификатору сообщения — он покажет, на каком этапе произошёл отказ.

Как отправлять СМС из 1С:Бухгалтерии, если там нет настройки?

В некоторых конфигурациях штатная подсистема отправки СМС отсутствует или скрыта. В этом случае используют внешнюю обработку или расширение с программной отправкой через HTTP-запрос к API провайдера — механизм описан в разделе с примером кода. Для внедрения потребуются навыки разработки на встроенном языке.

Безопасно ли передавать пароль от шлюза в строке запроса?

Передача учётных данных в URL допустима только по HTTPS — тогда трафик зашифрован. Более надёжный вариант — API-ключ с ограниченными правами и передача параметров в теле POST-запроса, чтобы логин не оставался в журналах прокси и веб-серверов. Периодически меняйте ключ и не включайте его в публикации кода.

Как ограничить расходы на рассылки?

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

Итог

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

СМС из 1С отправляется через SMS-провайдера: в типовых конфигурациях — через настройку в разделе «Администрирование», в остальных — HTTP-запросом к API шлюза. Зарегистрируйте имя отправителя, нормализуйте номера, кодируйте текст и отправляйте сообщения через очередь с регламентным заданием. Проверяйте результат по трём точкам: ответ шлюза, списание с баланса, фактическая доставка.