Как интегрировать 1С с WhatsApp: выбор решения, настройка на обычных формах (УПП) и технические нюансы

Программист 1С v8.3 (Обычные формы) Управленческий учет IT и автоматизация бизнеса
← На главную

Интеграция 1С с мессенджером WhatsApp является одной из самых востребованных задач для современного бизнеса. Рассмотрим основные подходы к решению этой задачи, проанализируем технические сложности при работе с конфигурациями на обычных формах (например, 1С:УПП) и разберем, какие существуют риски и финансовые затраты. Мы изучим как готовые коммерческие решения, так и способы реализации собственной интеграции через API-шлюзы.

Варианты интеграции: выбор между Desktop-автоматизацией и API-сервисами

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

  1. Интеграция через Desktop-приложение или WhatsApp Web. Этот метод часто называют «эмуляцией действий пользователя». Программное обеспечение (например, надстройка от SoftBiz) взаимодействует напрямую с установленным на компьютере приложением WhatsApp. Преимущество такого подхода заключается в отсутствии ежемесячных платежей за API сторонним сервисам. Однако недостатки весьма существенны: компьютер с запущенным мессенджером должен быть всегда включен, а риск блокировки номера алгоритмами WhatsApp крайне высок из-за использования средств автоматизации.
  2. Использование промежуточных API-шлюзов (Chat-API, Green-API и др.). Это наиболее стабильный способ для бизнес-задач. 1С обменивается данными с сервером провайдера по протоколу HTTP, а провайдер, в свою очередь, транслирует эти сообщения в сеть WhatsApp. Здесь мы платим за «инстанс» (подключение одного номера), что обеспечивает возможность работы в многопользовательском режиме.

Особенности настройки 1С на обычных формах (УПП)

Разберем технический нюанс, который часто ставит в тупик разработчиков, работающих с устаревшими конфигурациями. Если ваша база данных работает на обычных формах (ОФ), использование современных внешних обработок может потребовать специфической настройки платформы. Выясним причину: большинство современных решений для интеграции используют управляемые формы. Чтобы такая обработка заработала внутри вашего «толстого клиента», необходимо выполнить следующие действия в конфигураторе:

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

Реализация отправки и получения сообщений через API

Проанализируем архитектуру обмена данными. Для взаимодействия с сервисами (например, Chat-API или аналоги) нам потребуется использовать объект HTTPСоединение. Рассмотрим пример того, как может выглядеть базовая функция отправки сообщения:


Процедура ОтправитьСообщениеWhatsApp(НомерТелефона, ТекстСообщения)
    Сервер = "api.chat-api.com";
    Токен = "ваш_уникальный_токен";
    InstanceId = "ваш_номер_инстанса";
    
    Ресурс = "/instance" + InstanceId + "/sendMessage?token=" + Токен;
    
    Данные = Новый Структура;
    Данные.Вставить("phone", НомерТелефона);
    Данные.Вставить("body", ТекстСообщения);
    
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, Данные);
    СтрокаJSON = ЗаписьJSON.Закрыть();
    
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Content-Type", "application/json");
    
    Соединение = Новый HTTPСоединение(Сервер, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
    Запрос = Новый HTTPЗапрос(Ресурс, Заголовки);
    Запрос.УстановитьТелоИзСтроки(СтрокаJSON);
    
    Ответ = Соединение.ОтправитьДляОбработки(Запрос);
    // Проанализируем ответ сервера
    Если Ответ.КодСостояния = 200 Тогда
        Сообщить("Сообщение успешно отправлено!");
    КонецЕсли;
КонецПроцедуры

Механизм получения входящих сообщений: Опрос против Вебхуков

Разберем, как 1С узнает о том, что клиент написал ответное сообщение. Рассмотрим два основных метода:

  1. Регламентное задание (Опрос). В этом случае 1С с определенной периодичностью (например, каждые 5-10 секунд) обращается к серверу API с вопросом: «Есть ли новые сообщения?». Это простой в реализации метод, который не требует публикации базы 1С в интернете. Однако он создает лишнюю нагрузку на сервер и вызывает задержку в получении сообщений.
  2. Webhook (Вебхук). Это «активный» метод, при котором сервер API сам отправляет данные в 1С в момент поступления сообщения. Для этого база 1С должна быть опубликована на веб-сервере (IIS или Apache). Это обеспечивает мгновенную реакцию системы, но требует настройки безопасности и сетевой инфраструктуры.

Посмотрим на пример логики регламентного задания для опроса очереди сообщений:


Процедура РегламентноеЗадание_ЗагрузкаСообщений() Экспорт
    // Настраиваем параметры соединения
    // Вызываем метод получения списка входящих (например, /messages)
    // Обходим массив полученных структур JSON
    Для Каждого Сообщение Из МассивСообщений Цикл
        // Проверяем, не загружали ли мы это сообщение ранее по его ID
        Если НЕ СообщениеУжеСуществует(Сообщение.id) Тогда
            СоздатьДокументСобытие(Сообщение);
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

Официальный WhatsApp Business API (WABA) против «серых» шлюзов

Проанализируем финансовую сторону вопроса. В теме часто упоминается стоимость около 900–3000 рублей в месяц. Это стоимость использования «серых» методов (эмуляции WhatsApp Web). Официальное же решение от компании Meta — WhatsApp Business API (WABA) — работает по другой модели. Там оплачиваются не месячные подписки на сервис, а 24-часовые сессии (переписки) с клиентами.

Важный момент: если вы планируете массовые рассылки по базам клиентов, которые не сохраняли ваш номер в адресной книге, использование «серых» методов приведет к блокировке номера в течение первого же часа. Для легальных рассылок подходит только WABA, где сообщения проходят предварительную модерацию в виде шаблонов (Template Messages).

Безопасность и хранение данных

Выясним причину, по которой стоит осторожно подходить к выбору посредника. При использовании любых API-шлюзов (кроме прямого подключения к WABA через сертифицированных провайдеров), ваша переписка проходит через сторонние сервера в открытом (для провайдера) виде. Если в сообщениях передаются персональные данные, пароли или финансовые документы, необходимо убедиться в надежности поставщика услуг и юридически закрепить ответственность за утечку информации.

Подводя итог, можно сказать следующее: для малого бизнеса с небольшим потоком сообщений вполне подходит интеграция через Desktop или недорогие API-шлюзы типа Chat-API. Для крупных систем уровня УПП или ERP, где важна стабильность и работа сотен менеджеров, следует рассматривать внедрение официального WABA и публикацию базы для работы через Webhooks.

← На главную