IT-КУБиК-Сервис • Форум 1С
Абстрактный тёмно-синий фон с мягкими геометрическими линиями и оранжевыми акцентами, создающий технологичную атмосферу

Агрегатор публикаций с Инфостарта по 1С:Предприятие — обработки, расширения, конфигурации, интеграции и администрирование. Сообщество специалистов 1С.

Чат-бот для 1С на базе Telegram API: практическое руководство

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

Создание бота не требует глубокой экспертизы помимо самой платформы 1С. Достаточно понимать механизм HTTP-сервисов, базовые принципы работы с JSON и устройство Bot API. Разработка укладывается в несколько часов, если заранее подготовить окружение и продумать структуру обработчиков.

Этот материал рассчитан на разработчиков, которые уже работают с 1С:Enterprise и хотят расширить привычные сценарии мобильным каналом. Соберём рабочий прототип, обработаем основные типы сообщений, разберём нюансы публикации на сервере. Никаких внешних библиотек не понадобится — только штатные средства платформы.

Перед стартом понадобится релиз 1С:Enterprise 8.3.18 или выше, доступ к конфигуратору с правами на создание объектов метаданных, а также веб-сервер с валидным SSL-сертификатом — Telegram отправляет обновления только на защищённые адреса.

Подготовка среды и регистрация бота

Первый шаг — создание учётной записи через @BotFather: команда /newbot, отображаемое имя и уникальный username, оканчивающийся на «bot». В ответ придёт токен — длинная строка вида 123456:ABC-DEF... — это ключ доступа к Bot API.

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

После получения токена настройте описание и список команд через @BotFather — это упрощает первое знакомство с ботом и избавляет от необходимости писать собственный обработчик справочной информации.

HTTP-сервис в 1С для приёма обновлений

Telegram передаёт данные методом POST в формате JSON. Чтобы принимать такие запросы, в 1С создаётся HTTP-сервис с корневым шаблоном /telegram и одним методом POST. В обработчике строка запроса читается и через ЧтениеJSON преобразуется в соответствие с полями message, chat, text и другими.

Важный нюанс — ограничение по времени ответа. Telegram ожидает подтверждения за считанные секунды, поэтому обработчик сразу возвращает пустой ответ 200 OK, а тяжёлую логику выполняет в фоне через ДлительныеОперации. Это снимает риск дублирования обновлений при таймаутах.

Для вызовов Bot API удобно использовать объект HTTPСоединение из стандартной библиотеки БСП. Запрос формируется через НовыйHTTPЗапрос, ответ разбирается тем же ЧтениеJSON. Подход не требует внешних компонент и одинаково работает в файловом и клиент-серверном режиме.

Архитектура интеграции и сравнение способов

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

Прямые вызовы через HTTPСоединение хороши тем, что не требуют развёртывания дополнительной инфраструктуры. Вся логика остаётся внутри платформы, обновления обрабатываются штатным сервисом. Минус — меньшая гибкость по сравнению с полноценными языками и ограничения при интеграции нестандартных API.

Готовые модули из каталога Infostart ускоряют старт, но привязывают проект к конкретной конфигурации и её автору. Промежуточные сервисы вроде Make или n8n дают визуальный конструктор, однако добавляют лишнюю точку отказа и стоимость подписки.

Способ Скорость разработки Гибкость Зависимость от внешних сервисов Подходит для продакшна
Прямые HTTP-вызовы из 1С Высокая Средняя Низкая Да
Внешний шлюз на Python или Node.js Очень высокая Высокая Высокая Да
Промежуточный сервис Make или n8n Очень высокая Низкая Очень высокая Нет
Готовые модули Infostart Средняя Средняя Низкая Да

Если основная задача — обмен командами и простыми отчётами между сотрудниками и учётной системой, встроенный вариант выигрывает по совокупности характеристик, и именно его рассмотрим далее.

Работа с медиа и вложениями

Помимо текста Telegram умеет передавать фотографии, документы, геолокацию и голосовые сообщения. Для каждого типа в JSON приходят поля photo, document, voice с идентификатором file_id внутри. Чтобы получить ссылку на скачивание, нужно вызвать метод getFile, а затем загрузить бинарные данные по адресу api.telegram.org/file/bot<токен>/<путь>.

При работе со звуковыми сообщениями пригодится понимание современных стандартов громкости — рекомендую ознакомиться с материалом про измерение уровня LUFS, где подробно разобран принцип нормализации.

Сохранять вложения в 1С удобнее всего через справочник «Файлы» или отдельный регистр с двоичными данными. В карточке привязки хранятся исходный file_id, имя файла и ссылка на владельца — заказ клиента, документ закупки или задачу сотрудника.

Тестирование, отладка и публикация

Локальная отладка упрощается, если в BotFather зарегистрирован тестовый бот, а в 1С поднят отладочный HTTP-сервис с публикацией через http://localhost. Проксировать вызовы в защищённый внешний адрес помогают утилиты вроде ngrok — они позволяют проверить бота на реальном смартфоне без выгрузки изменений на боевой сервер.

Для промышленной эксплуатации HTTP-сервис публикуется на Apache или IIS с валидным SSL-сертификатом Let’s Encrypt. Постоянный адрес вебхука регистрируется в @BotFather командой /setwebhook. Любое изменение логики потребует только обновления базы 1С — серверная часть Telegram всегда обращается к одному и тому же адресу.

Полезные рекомендации для разработчика

Готовый Telegram-бот для 1С — компактное решение, расширяющее привычные сценарии мобильным каналом и не требующее выделенного сервера для внешних сервисов. Начните с тестового бота, проверьте обработку команд и вложений, а затем публикуйте вебхук на рабочем контуре. Регистрируйтесь на портале, делитесь наработками и обсуждайте нестандартные сценарии в сообществе — так платформа 1С становится ближе к пользователю, а KUBiK поможет связать учёт, мессенджер и бизнес-процессы в единый контур.