Автоматизация · 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Откройте «Администрирование» → «Органайзер» → «Отправка SMS»
- 2Включите флаг отправки и выберите провайдера из списка
- 3Введите логин и пароль (или API-ключ), выданные провайдером
- 4Сохраните настройки и выполните проверку соединения
- 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 или текст ошибки авторизации
Стоимость сообщения списана
Баланс не изменился — сообщение не ушло
СМС доставлено с зарегистрированным именем отправителя
Сообщение отсутствует или пришло с незнакомого номера
Запись об отправке с датой и статусом
Ошибка в журнале регистрации или пустая очередь
Типичные ошибки и ограничения
Самая частая ошибка — неправильный формат номера. Пробелы, скобки, дефисы и восьмёрка в начале вместо кода страны приводят к отклонению сообщения шлюзом. Перед отправкой нормализуйте номер: оставьте только цифры и приведите к формату с кодом страны.
Вторая группа ошибок — работа с текстом. Незакодированный текст ломает URL запроса, а эмодзи и некоторые спецсимволы переводят сообщение в другую кодировку, сокращая допустимую длину. Проверяйте шаблоны на реальных примерах до запуска рассылки.
Третья группа — организационная: истёкший баланс, непродлённое имя отправителя, превышение лимитов провайдера на количество сообщений в секунду. Для массовых рассылок уточните у провайдера допустимую скорость отправки и реализуйте паузы между запросами.
FAQ: частые вопросы об отправке СМС из 1С
Можно ли отправлять СМС из 1С бесплатно?
Полностью бесплатных легальных способов нет: доставку сообщений выполняют операторы связи, и провайдеры берут за это плату. Некоторые шлюзы дают небольшой тестовый баланс при регистрации — его хватит для проверки интеграции, но не для реальной работы.
Чем отправка через шлюз отличается от отправки через мобильный телефон?
Шлюз отправляет сообщения централизованно через интернет, с подписью имени компании и отчётами о доставке. Вариант с подключённым к серверу телефоном или GSM-модемом технически возможен, но не масштабируется, не даёт альфа-имени и часто нарушает условия тарифа оператора при массовых рассылках.
Почему сообщение принято шлюзом, но не дошло до абонента?
Типичные причины: имя отправителя не согласовано оператором получателя, телефон абонента выключен длительное время и срок жизни сообщения истёк, номер в стоп-листе или ошибочен. Запросите у провайдера детальный статус доставки по идентификатору сообщения — он покажет, на каком этапе произошёл отказ.
Как отправлять СМС из 1С:Бухгалтерии, если там нет настройки?
В некоторых конфигурациях штатная подсистема отправки СМС отсутствует или скрыта. В этом случае используют внешнюю обработку или расширение с программной отправкой через HTTP-запрос к API провайдера — механизм описан в разделе с примером кода. Для внедрения потребуются навыки разработки на встроенном языке.
Безопасно ли передавать пароль от шлюза в строке запроса?
Передача учётных данных в URL допустима только по HTTPS — тогда трафик зашифрован. Более надёжный вариант — API-ключ с ограниченными правами и передача параметров в теле POST-запроса, чтобы логин не оставался в журналах прокси и веб-серверов. Периодически меняйте ключ и не включайте его в публикации кода.
Как ограничить расходы на рассылки?
Задайте в личном кабинете провайдера дневной или месячный лимит расхода, если такая функция есть. В самой 1С контролируйте длину шаблонов, исключайте дубли номеров перед отправкой и ведите журнал отправленных сообщений — это позволит сверить счёт провайдера с фактическими рассылками.
Что важно запомнить
СМС из 1С отправляется через SMS-провайдера: в типовых конфигурациях — через настройку в разделе «Администрирование», в остальных — HTTP-запросом к API шлюза. Зарегистрируйте имя отправителя, нормализуйте номера, кодируйте текст и отправляйте сообщения через очередь с регламентным заданием. Проверяйте результат по трём точкам: ответ шлюза, списание с баланса, фактическая доставка.