· 7 мин чтения

Telegram-бот и 1С: как связать и какие данные передавать

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

Зачем связывать Telegram-бот с 1С

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

Типичные сценарии:

  • клиент спрашивает статус заказа и получает ответ из 1С;
  • сотрудник на выезде проверяет остатки или цену;
  • менеджер получает уведомление о новой оплате или документе;
  • клиент оставляет заявку, которая попадает в 1С как документ или задача;
  • руководитель получает короткую сводку по расписанию.

Каждый из них отличается направлением и частотой обмена, поэтому выбор схемы зависит от сценария.

Три схемы связи бота с 1С

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

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

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

Выбор между ними похож на выбор между опросом и событиями. Подробно разница описана в статье про webhooks и опрос по расписанию: для бота применимы те же рассуждения.

Как технически устроен вызов 1С из бота

В 1С для внешнего обращения обычно публикуется HTTP-сервис: в нём описывается адрес, методы и обработчики. Как это устроено, разобрано в статье про HTTP-сервисы в 1С. Со стороны бота запрос выглядит как обычное обращение по HTTPS.

Примерный вид запроса от сервера бота (адрес и поля условные, у вас они определяются тем, как вы опубликуете сервис):

GET /hs/bot/order-status?number=12345
Authorization: Bearer <токен сервиса>
Accept: application/json

Ответ:

{
  "number": "12345",
  "status": "В сборке",
  "updated": "2026-05-20T14:30:00"
}

Несколько принципов, которые я придерживаюсь:

  • Ответ короткий и содержит только то, что нужно отобразить в чате.
  • Формат стабилен: добавляйте поля, но не меняйте существующие без версии интерфейса.
  • Ошибки возвращаются с понятным кодом и коротким описанием, а бот превращает их в человеческое сообщение.
  • Запросы идут с сервера бота, а не от клиентских устройств, поэтому секрет доступа не покидает вашу инфраструктуру.

Какие данные передавать, а какие нет

Главный принцип: передавать минимум, необходимый для сценария. Telegram это сторонний сервис, и всё, что отправлено в чат, лежит в переписке пользователя. Поэтому:

Можно передавать: статусы заказов, номера документов, даты, публичные остатки и цены, названия товаров, общие уведомления без чувствительных подробностей.

Передавайте осторожно и по необходимости: суммы, имена контактных лиц, адреса. Решите, действительно ли пользователю это нужно в чате, и убедитесь, что сообщение получает именно тот человек, которому оно предназначено.

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

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

Идентификация и права доступа

Привязка Telegram-аккаунта к записи в 1С самое тонкое место. Варианты:

  1. Одноразовый код. Менеджер в 1С создаёт код или ссылку для клиента, клиент передаёт её боту, и сервер связывает идентификатор чата с контрагентом.
  2. Подтверждение по номеру телефона через встроенную возможность Telegram передать контакт. Номер сверяется с карточкой клиента, при этом нужно учитывать, что один номер может быть у нескольких записей.
  3. Список разрешённых сотрудников, который ведёт администратор: идентификатор пользователя, роль, права.

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

Надёжность и нагрузка на 1С

Несколько практических моментов, которые часто упускаются:

  • Ограничение частоты запросов. Бот, у которого сто пользователей одновременно нажимают кнопку, не должен запускать сто тяжёлых запросов к базе. Помогает кэш с коротким временем жизни для часто запрашиваемых данных.
  • Тайм-ауты. Если 1С не ответила за разумное время, бот сообщает пользователю, что данные временно недоступны, и не висит.
  • Повторные попытки с контролем. При отправке заявок из бота в 1С нужна защита от дублей: одно и то же действие не должно создавать два документа. Для этого заявке присваивается уникальный идентификатор, и 1С проверяет, не принимала ли она такой раньше.
  • Журнал обмена. Записывайте, что пришло, что ушло и чем закончилось, без чувствительных значений. По нему разбираются спорные ситуации.
  • Окно обслуживания. Обновление базы или регламентные операции приводят к недоступности. Бот должен вести себя прилично и в такие моменты.
  • Секреты в безопасном месте. Токен бота и ключ доступа к HTTP-сервису хранятся в конфигурации сервера вне репозитория, а не в тексте программы.

Пример сценария: статус заказа от запроса до ответа

Чтобы собрать всё вместе, пройдём один сценарий. Клиент уже привязан к своей карточке в 1С. Он нажимает в боте кнопку «Мои заказы».

  1. Бот получает обновление от Telegram и по идентификатору чата находит клиента в собственной базе.
  2. Сервер бота проверяет, что у клиента есть право на этот запрос, и формирует обращение к HTTP-сервису 1С с кодом контрагента.
  3. 1С возвращает короткий список последних заказов со статусами.
  4. Бот собирает человеческое сообщение: номер, дата, статус. Без внутренних кодов и технических полей.
  5. Если 1С не ответила вовремя, клиент видит вежливое сообщение о временной недоступности, а в журнал записывается ошибка.

Как видите, большая часть работы это не вызов API, а проверки, обработка отказов и аккуратное оформление ответа. Именно они отличают рабочее решение от демонстрации.

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

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

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

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

Можно ли подключить бота к файловой базе 1С?

Технически можно, но для боя лучше клиент-серверный вариант с веб-сервером, потому что файловая база плохо переносит параллельные обращения. Подробности зависят от версии платформы и ваших условий, это стоит оценить заранее.

Нужно ли открывать 1С в интернет для работы бота?

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

Можно ли создавать документы в 1С через бота?

Да, например заявки или обращения. Но проведение финансовых документов из чата я бы не делал без дополнительной проверки и разграничения прав. Обычно бот создаёт черновик или заявку, а проводит её ответственный сотрудник.

Какие сложности возникают при изменении конфигурации 1С?

Обновление типовой конфигурации может затронуть опубликованные интерфейсы. Поэтому доработку для бота лучше выносить в расширение и проверять работу обмена после каждого обновления.

Если вы обдумываете такую связку и хотите оценить схему и объём работ, загляните на страницу про Telegram-ботов или напишите мне в Telegram.