Начиная с версии платформы 1С:Предприятие 8.3.17, разработчикам стал доступен штатный механизм интеграции 1С:Системы взаимодействия (Collaboration System) с популярными мессенджерами, такими как Telegram. Однако на практике системные администраторы и программисты часто сталкиваются с ситуацией, когда после создания бота и настройки интеграции сообщения не приходят, а внешние пользователи не создаются. Рассмотрим подробно, как правильно настроить серверную часть, чтобы обеспечить стабильную работу обмена сообщениями.
Прежде чем приступать к правке конфигурационных файлов, проанализируем схему взаимодействия системы. В отличие от самописных систем обмена, работающих через HTTP-запросы напрямую из кода 1С, штатный механизм 1С:Системы взаимодействия (далее — СВ) берет на себя всю транспортную логику. Процесс выглядит следующим образом:
webhook (HTTP-запрос) на указанный вами внешний адрес сервера СВ.Важный момент: для работы этой схемы сервер СВ должен быть доступен из интернета по защищенному протоколу HTTPS, так как Telegram не работает с незащищенными соединениями.
Одной из главных причин, по которой интеграция «не взлетает», является отсутствие или неправильная настройка порта интеграции на стороне сервера СВ. В отличие от основного порта WebSockets (обычно 9094), порт интеграции отвечает за прием входящих HTTP-запросов от мессенджеров.
Проверим наличие и содержимое файла конфигурации com._1c.ecs.integration.endpoint.yml. Если этого файла нет в папке config вашего сервера взаимодействия, его необходимо создать вручную. Разберем структуру этого файла на примере рабочего решения:
integration:
external-url: https://ваш-домен.ru:8443
network-interfaces:
public:
threads:
acceptor-thread-count: 1
selector-thread-count: 4
worker-thread-count: 4
endpoints:
- 192.168.0.8:8087
Проанализируем ключевые параметры этого конфига:
Многие пользователи сталкиваются с ошибкой NoClassDefFoundError при попытке включить use-ssl: true непосредственно в настройках сервера СВ. Это связано с тем, что Java-окружение сервера требует сложной настройки хранилища сертификатов (keystore). Чтобы избежать этих сложностей, проанализируем более стабильный вариант — использование Reverse Proxy (например, Nginx или Apache).
Рассмотрим схему, при которой SSL-сертификат терминируется на шлюзе или веб-сервере (Nginx/Apache), а внутрь на сервер СВ запрос пробрасывается по обычному HTTP. В этом случае в файле integration.yml мы оставляем use-ssl: false (или просто не указываем его), а внешнюю защиту обеспечиваем средствами прокси-сервера.
Настроим проброс трафика на примере Apache. В конфигурационном файле виртуального хоста необходимо прописать проксирование:
SSLProxyEngine On
ProxyRequests Off
ProxyPreserveHost On
ProxyPass / http://192.168.1.145:8087/
ProxyPassReverse / http://192.168.1.145:8087/
Где 192.168.1.145:8087 — это внутренний адрес вашего сервера взаимодействия, настроенный в секции endpoints. При такой схеме Telegram отправляет данные на https://ваш-домен.ru, Apache расшифровывает трафик и передает его серверу СВ.
После того как серверная часть подготовлена и порт «слушает» входящие соединения, перейдем к настройке в самой информационной базе. Выполним следующие шаги:
@BotFather в Telegram.Если при записи возникает ошибка контекста, убедитесь, что информационная база успешно зарегистрирована в системе взаимодействия и у пользователя достаточно прав. Также выясним причину возможного отказа через диагностику: попробуйте открыть в браузере ваш external-url. Если вы видите ошибку от Java-сервера (например, 404 или сообщение о пустом ресурсе), значит, порт интеграции доступен. Если же страница не открывается вовсе — проблема в сетевых настройках или брандмауэре.
Проанализируем дополнительные моменты, которые могут влиять на результат:
localhost в настройках external-url недопустимо.Рассмотренный метод настройки через Reverse Proxy и ручное создание файла integration.endpoint.yml является наиболее надежным способом «подружить» 1С с внешним миром без необходимости глубокого погружения в администрирование Java-сертификатов. Если требуется организовать обмен сообщениями без развертывания сервера взаимодействия, можно использовать готовую обработку для работы с Telegram-ботом напрямую из 1С.