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

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

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

Как связать 1С и Telegram: создание бота через BotFather, отправка сообщений из 1С через HTTP-запросы, вебхуки, готовые решения и типичные ошибки настройки.

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

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

Ниже разобран полный цикл: от регистрации бота до отправки первого сообщения из 1С, приёма ответов, типовых сценариев и ошибок. Материал подходит для конфигураций на управляемых формах (УТ 11, ERP, КА, БП 3.0, УНФ) с доступом к интернету с сервера 1С.

Способы интеграции 1С и Telegram

Существует три основных подхода. Первый — самостоятельная разработка на встроенном языке 1С через Bot API: максимальная гибкость, нулевая стоимость, но нужны навыки программирования в 1С. Второй — готовые расширения и подсистемы с маркетплейсов: быстрый старт, но ограниченная кастомизация и зависимость от разработчика. Третий — связка через промежуточные сервисы (n8n, Node-RED, Zapier-подобные платформы): подходит, когда 1С не имеет прямого выхода в интернет.

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

Сравнение вариантов

Своя разработка через Bot API

Полный контроль и бесплатно, но нужен разработчик 1С и время на отладку

Готовое расширение

Быстрый запуск за 1–2 часа, но платная лицензия и ограниченная гибкость

Промежуточный сервис (n8n и др.)

Подходит при закрытом контуре 1С, но добавляет точку отказа и требует поддержки отдельного сервиса

Создание бота и получение токена

Откройте Telegram и найдите официальный бот @BotFather (со синей галочкой верификации). Отправьте команду /newbot, придумайте отображаемое имя бота и уникальное системное имя, заканчивающееся на «bot», например mycompany_1c_bot. В ответ BotFather пришлёт токен — строку вида 123456789:AAEhBOweik6ad9r_QXMENQjcrGbqCr4K-4I.

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

Чтобы бот мог писать пользователю, пользователь должен сначала сам написать боту команду /start — это ограничение Telegram против спама, обойти его нельзя. Для групповых чатов бота нужно добавить в группу и при необходимости выдать права на отправку сообщений.

Отправка сообщений из 1С через Bot API

Отправка выполняется POST-запросом на адрес https://api.telegram.org/bot<токен>/sendMessage с JSON-телом, содержащим chat_id (идентификатор чата) и text (текст сообщения). В 1С для этого используются объекты HTTPСоединение с защищённым соединением OpenSSLSecureConnection и HTTPЗапрос.

Типовой фрагмент кода в общем модуле выглядит так:

Функция ОтправитьСообщениеTelegram(ChatID, Текст) Экспорт

Токен = Константы.ТокенTelegramБота.Получить();

Соединение = Новый HTTPСоединение("api.telegram.org", 443,,,,,

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

Тело = Новый Структура;

Тело.Вставить("chat_id", ChatID);

Тело.Вставить("text", Текст);

Тело.Вставить("parse_mode", "HTML");

ЗаписьJSON = Новый ЗаписьJSON;

ЗаписьJSON.УстановитьСтроку();

ЗаписатьJSON(ЗаписьJSON, Тело);

Запрос = Новый HTTPЗапрос("/bot" + Токен + "/sendMessage");

Запрос.Заголовки.Вставить("Content-Type", "application/json");

Запрос.УстановитьТелоИзСтроки(ЗаписьJSON.Закрыть());

Ответ = Соединение.ОтправитьДляОбработки(Запрос);

Возврат Ответ.КодСостояния = 200;

КонецФункции

Узнать chat_id проще всего так: напишите боту любое сообщение, затем откройте в браузере https://api.telegram.org/bot<токен>/getUpdates — в ответе JSON найдите поле chat.id. Для групп chat_id отрицательный (начинается с минуса) — это нормально, сохраняйте его со знаком.

Порядок отправки первого сообщения
  1. 1
    Создайте бота через @BotFather и сохраните токен в константу
  2. 2
    Напишите боту /start со своего аккаунта Telegram
  3. 3
    Получите chat_id через метод getUpdates в браузере
  4. 4
    Создайте общий модуль с функцией отправки HTTP-запроса
  5. 5
    Вызовите функцию из тестовой обработки и проверьте доставку
  6. 6
    Обработайте ответ: код 200 — успех, 400/403 — ошибка параметров или блокировка

Получение ответов: webhook или опрос

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

Первый — long polling: регламентное задание в 1С раз в 30–60 секунд вызывает метод getUpdates с параметром offset, забирает новые сообщения и обрабатывает их. Способ прост, работает даже когда сервер 1С недоступен из интернета, но даёт задержку до минуты и создаёт постоянную фоновую нагрузку.

Второй — webhook: Telegram сам отправляет каждое новое сообщение POST-запросом на указанный URL. Для приёма в 1С публикуется HTTP-сервис (в конфигураторе: Общие → HTTP-сервисы) на веб-сервере Apache или IIS. Задержка практически нулевая, но требуется публично доступный HTTPS-адрес с валидным сертификатом, что в закрытом контуре бывает сложно организовать.

Маршрут решения

Как выбрать способ приёма сообщений

Сервер 1С не имеет публичного адреса или нет SSL-сертификатаИспользуйте getUpdates через регламентное задание с интервалом 30–60 секунд
Нужна мгновенная реакция на команды (согласование документов)Настройте webhook на HTTP-сервис 1С с публичным HTTPS-адресом
Нужны только исходящие уведомленияОбратный канал не настраивайте — ограничьтесь методом sendMessage

Типовые сценарии использования

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

Согласование документов. Руководителю приходит сообщение с кнопками «Согласовать» и «Отклонить» (inline keyboard в Bot API). Нажатие возвращается через webhook, 1С меняет статус документа. Это избавляет от необходимости заходить в 1С с телефона.

Мониторинг ошибок. Обмены с сайтом, ЭДО, банк-клиентом при ошибке отправляют сообщение в служебный чат администраторов с текстом ошибки и ссылкой-навигацией на объект. Реагирование ускоряется с часов до минут.

Информирование клиентов. При смене статуса заказа клиенту уходит сообщение в Telegram — если клиент заранее подписался на бота и его chat_id сохранён в карточке контрагента или в регистре сведений.

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

Ошибка 403 «bot was blocked by the user» означает, что пользователь заблокировал бота — отправка ему невозможна, пока он сам не разблокирует. Ошибка 400 «chat not found» — неверный chat_id или пользователь ни разу не писал боту. Ошибка 401 — неверный токен. Эти коды нужно логировать, иначе рассылка будет молча терять сообщения.

Частая проблема инфраструктуры — сервер 1С не имеет доступа в интернет или прокси блокирует api.telegram.org. Проверяется простым запросом к https://api.telegram.org с сервера. Если прямой доступ запрещён политикой безопасности, настраивают выход через прокси (параметры HTTPСоединение поддерживают ИнтернетПрокси) или выносят отправку на отдельный шлюз.

Ещё одна ошибка — отправка персональных данных (ФИО, суммы зарплаты, реквизиты) в общие чаты без контроля состава участников. Для чувствительных данных заводите отдельные закрытые чаты и периодически проверяйте, кто в них состоит.

Типичные ошибки
01
Хранение токена прямо в коде модуля — при выгрузке конфигурации токен утекает; храните в константе или защищённом хранилище
02
Синхронная отправка при записи документа — при недоступности Telegram пользователи не могут провести документы
03
Отсутствие обработки кодов ошибок — сообщения теряются незаметно, узнают об этом от клиентов
04
Игнорирование offset при getUpdates — одни и те же сообщения обрабатываются повторно, документы согласовываются дважды
05
Отправка длинных текстов без разбивки — Telegram ограничивает сообщение 4096 символами, лишнее обрезается ошибкой

Проверка работоспособности интеграции

После настройки проверьте полный цикл: отправка из 1С, доставка в чат, приём ответа, запись результата в базу. Тестируйте на отдельном тестовом боте и тестовой копии базы, а не на рабочих клиентах.

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

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

Отправка сообщения
Норма

Код ответа 200, сообщение появляется в чате за 1–3 секунды

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

Код 400/401/403 или таймаут соединения

Приём ответов через getUpdates
Норма

Каждое новое сообщение обрабатывается один раз, offset смещается

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

Сообщения дублируются или не приходят вовсе

Поведение при недоступном интернете
Норма

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

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

Проведение документов зависает или падает с ошибкой

Нагрузка
Норма

Регламентное задание завершается за секунды, журнал регистрации без повторяющихся ошибок

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

Задание висит, ошибки соединения заполняют журнал

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

Часто задаваемые вопросы

Можно ли настроить интеграцию без программиста 1С?

Да, двумя путями: купить готовое расширение с маркетплейса и настроить его по инструкции (обычно это установка расширения, ввод токена и выбор событий для уведомлений) либо использовать внешний сервис-коннектор, где 1С передаёт данные через веб-хук, а отправкой занимается сервис. Полноценная кастомная логика без разработчика невозможна.

Работает ли интеграция в файловой базе 1С?

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

Что делать, если Telegram заблокирован или недоступен в сети компании?

Проверьте доступность api.telegram.org с сервера 1С. Если доступ закрыт политикой безопасности, согласуйте с администратором исключение для этого домена или настройте выход через корпоративный прокси. Как запасной вариант — промежуточный шлюз на внешнем сервере, к которому 1С обращается по разрешённому каналу.

Есть ли ограничения Telegram на количество сообщений?

Да, Bot API ограничивает частоту: ориентировочно не более одного сообщения в секунду в один чат и порядка 30 сообщений в секунду суммарно по боту. При массовых рассылках клиентам добавляйте паузы и очередь отправки, иначе получите ошибку 429 (Too Many Requests) и временные блокировки.

Можно ли отправлять из 1С файлы, например PDF-счета?

Да, метод sendDocument принимает файл в multipart/form-data или по URL. Из 1С файл отправляется как двоичные данные в составе multipart-запроса. Учитывайте ограничение на размер файла у Bot API (порядка 50 МБ для отправки ботом) и то, что файлы проходят через серверы Telegram — конфиденциальные документы лучше отправлять ссылкой на защищённый внутренний ресурс.

Безопасно ли передавать данные из 1С через Telegram?

Трафик между 1С и Telegram шифруется HTTPS, но само сообщение хранится на серверах Telegram и в устройствах участников чата. Не пересылайте пароли, полные платёжные реквизиты и персональные данные без необходимости. Для чувствительной информации отправляйте уведомление о событии со ссылкой на объект в 1С, а не самим содержимым.

Итог

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

Интеграция 1С и Telegram строится на Bot API: бот создаётся через @BotFather, сообщения отправляются HTTPS-запросами из встроенного языка 1С, ответы принимаются через getUpdates или webhook. Токен храните вне кода, отправку делайте асинхронной, ошибки логируйте, а перед запуском проверьте полный цикл на тестовом боте.