Как интегрировать 1С 7.7 с мессенджерами Telegram, Viber и WhatsApp?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

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

Технические ограничения 1С 7.7 и пути их обхода

Прежде чем приступать к написанию кода для конкретного API, проанализируем базовые возможности платформы. В отличие от современных версий, 1С 7.7 не имеет встроенных объектов для работы с HTTP-запросами и форматом обмена данными JSON. Мессенджеры, в свою очередь, общаются исключительно через REST API с использованием JSON.

Разберем, как реализовать базовые механизмы связи:

  1. Отправка HTTP-запросов: Для взаимодействия с серверами мессенджеров нам придется использовать COM-объекты операционной системы. Чаще всего применяются объекты WinHttp.WinHttpRequest.5.1 или MSXML2.XMLHTTP. Они позволяют формировать GET и POST запросы, передавать заголовки и получать ответы.
  2. Работа с JSON: Формировать JSON для отправки можно простым склеиванием строк. А вот для разбора ответов от серверов (парсинга) удобнее всего использовать объект MSScriptControl.ScriptControl, который позволяет выполнять код JScript прямо внутри 1С и обращаться к свойствам JSON-объектов.
  3. Протоколы безопасности: Это критически важный момент. Все API современных мессенджеров работают строго по протоколу HTTPS и требуют поддержки стандарта шифрования не ниже TLS 1.2. Платформа 1С 7.7 полагается в этом на операционную систему. Убедитесь, что сервер или компьютер, где работает 1С, поддерживает эти протоколы (Windows 8/10/11 или актуальные версии Windows Server). На старых ОС (например, Windows 7) потребуются специальные обновления.

Рассмотрим пример того, как в 1С 7.7 может выглядеть базовый POST-запрос с использованием COM-объекта:


Функция ОтправитьPOSTЗапрос(URL, ДанныеJSON)
    Попытка
        HTTP = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
        HTTP.Open("POST", URL, 0); // 0 - синхронный запрос
        HTTP.SetRequestHeader("Content-Type", "application/json");
        HTTP.Send(ДанныеJSON);
        
        Возврат HTTP.ResponseText;
    Исключение
        Сообщить("Ошибка отправки запроса: " + ОписаниеОшибки());
        Возврат "";
    КонецПопытки;
КонецФункции

Интеграция с Telegram: самый простой путь

Telegram предоставляет наиболее дружелюбный API для разработчиков. Для отправки сообщений нам достаточно создать бота. Посмотрим, как выглядит этот процесс:

  1. Регистрируем бота через официального системного бота BotFather в самом Telegram.
  2. Получаем уникальный токен бота.
  3. Для отправки сообщения формируем POST-запрос на адрес вида https://api.telegram.org/bot[ТОКЕН]/sendMessage, передавая в JSON-теле запроса ID чата получателя и текст сообщения.

Если же стоит задача не только отправлять, но и получать ответы от клиентов обратно в 1С 7.7, ситуация усложняется. В современных системах для этого используют Webhook (сервер мессенджера сам присылает данные на ваш сервер). Но 1С 7.7 не может выступать в роли веб-сервера. Поэтому нам остается метод getUpdates (Long Polling). Нам придется создать обработку ожидания, которая будет по расписанию постоянно опрашивать сервер Telegram на наличие новых входящих сообщений.

Также для сложных задач (например, отправки картинок или файлов) отличным решением является использование внешних скриптов. В сообществе часто применяют инструмент OneScript (1Script), который позволяет писать скрипты на языке, похожем на 1С, и запускать их из командной строки. 1С 7.7 может просто формировать данные, а внешний скрипт — выполнять всю сложную работу по взаимодействию с Telegram API.

Интеграция с Viber: проблема входящих соединений

Интеграция с Viber Bot API технически сложнее, чем с Telegram. Главная проблема заключается в том, что для полноценной работы (даже просто для регистрации бота в системе и получения возможности отправлять сообщения) Viber требует обязательной установки Webhook. Сервер Viber должен убедиться, что по указанному вами публичному URL-адресу находится рабочий сервис.

Так как 1С 7.7 не умеет принимать входящие веб-запросы из интернета, нам потребуется промежуточное звено (прокладка):

  1. Необходимо разместить простой скрипт (например, на PHP или Python) на любом внешнем веб-хостинге.
  2. Зарегистрировать этот URL скрипта как Webhook для Viber.
  3. Этот скрипт будет принимать входящие события от Viber и сохранять их в промежуточную базу данных (например, MySQL) или записывать в текстовые файлы/FTP.
  4. Платформа 1С 7.7 будет периодически обращаться к этому внешнему хостингу, забирать накопленные сообщения и обрабатывать их.

Интеграция с WhatsApp: необходимость шлюзов

WhatsApp — самый сложный и закрытый мессенджер из представленных. Напрямую интегрироваться с ним, как с Telegram, невозможно. Как справедливо отмечают специалисты, работа с WhatsApp возможна только через специализированные сервисы-шлюзы (прокладки). Проанализируем два основных варианта:

1. Неофициальные шлюзы (Эмуляция WhatsApp Web)

Существует множество сервисов, которые предоставляют свой API (обычно REST с JSON), а "под капотом" они эмулируют работу WhatsApp Web. Вам необходимо отсканировать QR-код телефоном, после чего шлюз начинает пересылать ваши команды в телефон, а телефон — на серверы WhatsApp.

2. Официальный WhatsApp Business API (WABA)

Это официальный путь, который предоставляется компанией Meta через авторизованных провайдеров. Вы регистрируете номер компании официально.

В случае с 1С 7.7 взаимодействие с любым из этих шлюзов будет строиться по описанной в самом начале схеме: использование WinHttp для отправки JSON-запросов к API выбранного провайдера.

← На главную