1С

Отправка сообщений из 1С в Telegram: код, chat_id и подводные камни

30 октября 2026 · 3 мин чтения

Кратко

Для уведомлений из 1С нужны бот, токен и вызов метода sendMessage через HTTPСоединение. Главная сложность в том, чтобы привязать пользователя 1С к его chat_id, а не в самом коде отправки. Токен нельзя хранить в тексте модуля, а отправку лучше выносить в фоновое задание.

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

Как это устроено

  1. В Telegram через @BotFather создаётся бот, вы получаете токен.
  2. Пользователь пишет боту, и Telegram присваивает ему chat_id.
  3. 1С вызывает метод sendMessage Telegram Bot API по HTTPS, передав токен и chat_id.

Сложность не в отправке, а в привязке: Telegram позволяет писать только тому, кто сам начал диалог с ботом, и только по его chat_id. Поэтому в 1С нужно хранить соответствие «пользователь или сотрудник → chat_id».

Отправка сообщения: код

Функция ОтправитьВTelegram(Токен, ИдЧата, Текст) Экспорт

	Данные = Новый Структура("chat_id, text, parse_mode", ИдЧата, Текст, "HTML");

	Запись = Новый ЗаписьJSON;
	Запись.УстановитьСтроку();
	ЗаписатьJSON(Запись, Данные);
	Тело = Запись.Закрыть();

	Запрос = Новый HTTPЗапрос("/bot" + Токен + "/sendMessage");
	Запрос.Заголовки.Вставить("Content-Type", "application/json; charset=utf-8");
	Запрос.УстановитьТелоИзСтроки(Тело, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

	Соединение = Новый HTTPСоединение("api.telegram.org", , , , , 30, Новый ЗащищенноеСоединениеOpenSSL());
	Ответ = Соединение.ОтправитьДляОбработки(Запрос);

	Если Ответ.КодСостояния <> 200 Тогда
		ВызватьИсключение "Telegram вернул код " + Ответ.КодСостояния + ": " + Ответ.ПолучитьТелоКакСтроку();
	КонецЕсли;

	Возврат Ответ.ПолучитьТелоКакСтроку();

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

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

Как узнать chat_id пользователя

Есть два рабочих способа:

  • Вручную для себя или админа: напишите боту, затем откройте в браузере https://api.telegram.org/bot<токен>/getUpdates и найдите chat.id в ответе.
  • Для сотрудников: бот предлагает кнопку «Поделиться контактом». Telegram присылает номер телефона, а 1С находит по нему пользователя и сохраняет chat_id в регистре сведений. Обязательно проверяйте, что контакт принадлежит самому отправителю: в данных контакта user_id должен совпадать с from.id. Иначе кто угодно сможет «подсунуть» чужой номер и получать чужие уведомления.

Подводные камни

  • Токен. Не храните его в тексте модуля. Вынесите в константу с ограниченным доступом или в безопасное хранилище, чтобы он не попал в выгрузку конфигурации и в Git.
  • Лимиты. По справке Telegram, бот может отправлять около 30 сообщений в секунду в целом и около одного сообщения в секунду в один чат. Для массовых рассылок делайте паузу и очередь.
  • Не блокируйте проведение. Отправку выносите в фоновое задание или регламентное задание, иначе недоступный интернет замедлит документ. Ошибки пишите в журнал регистрации.
  • Недоставленные сообщения. Если пользователь заблокировал бота, Telegram вернёт ошибку: помечайте такого получателя и не пытайтесь слать снова.
  • Формат текста. При parse_mode = HTML экранируйте символы <, > и & в данных из базы.

Входящие сообщения: webhook или опрос

Если боту нужно принимать команды (например, «Согласовать документ»), есть два способа:

  • Webhook: Telegram сам присылает обновления на ваш HTTPS-адрес. Нужен доступный из интернета адрес с сертификатом, обычно это HTTP-сервис 1С или отдельный сервер.
  • Опрос getUpdates регламентным заданием: проще, не требует внешнего адреса, но с задержкой.

Когда проще не писать самому

Если нужны согласования в боте, карточки документов, связка с несколькими базами или интеграция сайта и бота, удобнее вынести логику на отдельный сервис (Python или n8n), а 1С оставить источником событий и данных. Подробнее об интеграциях 1С с Telegram, сайтами и другими системами в разделе «1С и учётные системы» и в услуге «Telegram-боты и Mini App».

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

Можно ли отправить сообщение в группу или канал?

Да. Добавьте бота в группу или канал администратором и используйте chat_id группы (он начинается с минуса) или `@имя_канала`.

Нужен ли для отправки внешний сервер?

Нет. Для отправки достаточно, чтобы сервер 1С имел доступ в интернет к `api.telegram.org`. Внешний адрес нужен только для приёма сообщений через webhook.

Что делать, если из 1С запрос не проходит?

Проверьте доступ сервера 1С к интернету и прокси, версию платформы, корректность токена и кодировку тела (UTF-8). В тексте ошибки Telegram обычно указано, чего не хватает.

Как безопасно хранить токен?

В константе или регистре с ограничением по ролям, а не в тексте модуля. Если токен попал в выгрузку или репозиторий, перевыпустите его в @BotFather.

1СTelegramинтеграцияHTTPСоединениебот

Версия для ИИ и чтения без оформления: Markdown.

Читайте также

Telegram · 30 октября 2026

Уведомления в Telegram Mini App: как слать пуши через бота

У Mini App нет собственных пушей: уведомления приходят как сообщения бота, а писать пользователю можно только после его запуска бота или запроса разрешения requestWriteAccess. Чтобы открыть нужный экран, используйте кнопку web_app или прямую ссылку с параметром startapp. Пользователей, заблокировавших бота, нужно отмечать и не беспокоить.

Telegram · 30 октября 2026

Telegram-бот на n8n: inline-кнопки, меню и кнопка для открытия Mini App

В n8n бот строится из Telegram Trigger, ветвления по типу события и узла отправки. Нажатия inline-кнопок приходят как callback_query и требуют ответа. Кнопку, открывающую Mini App, проще отправить через HTTP Request, а у бота может быть только один webhook.

Бизнес · 30 октября 2026

Сколько стоит Telegram-бот и Mini App: из чего складывается цена

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

Расскажите о задаче

Опишите, что нужно сделать, даже в паре строк. Отвечу с вопросами или оценкой.

Обсудить проект →