Автоматизация · 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С не имеет прямого выхода в интернет.
Для большинства компаний оптимален первый вариант: код отправки сообщения занимает несколько десятков строк, а логика полностью под контролем. Ниже основной упор сделан именно на него.
Сравнение вариантов
Полный контроль и бесплатно, но нужен разработчик 1С и время на отладку
Быстрый запуск за 1–2 часа, но платная лицензия и ограниченная гибкость
Подходит при закрытом контуре 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Создайте бота через @BotFather и сохраните токен в константу
- 2Напишите боту /start со своего аккаунта Telegram
- 3Получите chat_id через метод getUpdates в браузере
- 4Создайте общий модуль с функцией отправки HTTP-запроса
- 5Вызовите функцию из тестовой обработки и проверьте доставку
- 6Обработайте ответ: код 200 — успех, 400/403 — ошибка параметров или блокировка
Получение ответов: webhook или опрос
Односторонние уведомления покрывают большинство задач, но для согласования документов и приёма команд нужен обратный канал. Есть два способа получать сообщения, которые пользователи пишут боту.
Первый — long polling: регламентное задание в 1С раз в 30–60 секунд вызывает метод getUpdates с параметром offset, забирает новые сообщения и обрабатывает их. Способ прост, работает даже когда сервер 1С недоступен из интернета, но даёт задержку до минуты и создаёт постоянную фоновую нагрузку.
Второй — webhook: Telegram сам отправляет каждое новое сообщение POST-запросом на указанный URL. Для приёма в 1С публикуется HTTP-сервис (в конфигураторе: Общие → HTTP-сервисы) на веб-сервере Apache или IIS. Задержка практически нулевая, но требуется публично доступный HTTPS-адрес с валидным сертификатом, что в закрытом контуре бывает сложно организовать.
Как выбрать способ приёма сообщений
Типовые сценарии использования
Уведомления о событиях. Подписка на событие «ПриЗаписи» документа реализации или заказа клиента отправляет менеджеру сообщение с номером, суммой и контрагентом. Важно отправлять сообщение асинхронно (через фоновое задание или очередь), чтобы при недоступности 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Соединение поддерживают ИнтернетПрокси) или выносят отправку на отдельный шлюз.
Ещё одна ошибка — отправка персональных данных (ФИО, суммы зарплаты, реквизиты) в общие чаты без контроля состава участников. Для чувствительных данных заводите отдельные закрытые чаты и периодически проверяйте, кто в них состоит.
Проверка работоспособности интеграции
После настройки проверьте полный цикл: отправка из 1С, доставка в чат, приём ответа, запись результата в базу. Тестируйте на отдельном тестовом боте и тестовой копии базы, а не на рабочих клиентах.
Как проверить результат
Код ответа 200, сообщение появляется в чате за 1–3 секунды
Код 400/401/403 или таймаут соединения
Каждое новое сообщение обрабатывается один раз, 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. Токен храните вне кода, отправку делайте асинхронной, ошибки логируйте, а перед запуском проверьте полный цикл на тестовом боте.