В современной торговле оперативное информирование клиента о статусе его заказа — это стандарт качества. Часто компании сталкиваются с избыточными схемами интеграции, например, когда данные из 1С:Управление торговлей сначала попадают в Битрикс24, а уже оттуда — в WhatsApp. Рассмотрим, как упростить эту цепочку и настроить взаимодействие напрямую между 1С и мессенджером, используя наиболее надежные технические подходы.
Прежде чем приступать к написанию кода, разберем два принципиально разных пути реализации задачи. Проанализируем ситуацию на рынке API-шлюзов:
Для реализации задачи рассылки статусов заказов оптимальным будет использование надежного агрегатора с поддержкой HTTP-запросов.
Разберем встроенный инструмент платформы. Начиная с последних версий 1С (8.3.23+), СистемаВзаимодействия позволяет интегрироваться с внешними мессенджерами напрямую через панель администрирования. Это позволяет принимать сообщения от клиентов прямо в интерфейс программы и отвечать на них. Однако для массовых автоматических рассылок по событиям системы нам все равно потребуется работа с HTTPСоединение.
Выясним причину, почему прямой запрос из 1С удобнее. Это позволяет контролировать каждый этап формирования сообщения и моментально реагировать на ошибки доставки. Рассмотрим пример кода для отправки уведомления клиенту через типичный API-шлюз. Нам понадобится объект HTTPСоединение и структура данных в формате JSON.
Проанализируем пример функции для отправки текста:
Функция ОтправитьУведомлениеВWhatsApp(НомерТелефона, ТекстСообщения) Экспорт
Сервер = "api.provider.com"; // Адрес выбранного агрегатора
Токен = "ВАШ_УНИКАЛЬНЫЙ_КЛЮЧ_API";
Заголовки = Новый Соответствие;
Заголовки.Вставить("Content-Type", "application/json");
Заголовки.Вставить("Authorization", "Bearer " + Токен);
ПараметрыСообщения = Новый Структура;
ПараметрыСообщения.Вставить("chatId", НомерТелефона + "@c.us");
ПараметрыСообщения.Вставить("message", ТекстСообщения);
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
ЗаписатьJSON(ЗаписьJSON, ПараметрыСообщения);
СтрокаJSON = ЗаписьJSON.Закрыть();
HTTPСоединение = Новый HTTPСоединение(Сервер, 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());
HTTPЗапрос = Новый HTTPЗапрос("/waInstance/sendMessage", Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаJSON, КодировкаТекста.UTF8);
Попытка
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);
Если Ответ.КодСостояния = 200 Тогда
Возврат Истина;
Иначе
ЗаписатьЛогОшибки(Ответ.ПолучитьТелоКакСтроку());
Возврат Ложь;
КонецЕсли;
Исключение
Возврат Ложь;
КонецПопытки;
КонецФункции
Теперь разберем, как заставить систему автоматически вызывать эту функцию. В конфигурации Управление торговлей наиболее правильным местом будет использование ПодпискиНаСобытия. Создадим подписку на событие ПередЗаписью или ПриЗаписи для документа ЗаказКлиента.
Посмотрим на логику проверки изменения статуса:
Статус.Важно помнить: чтобы не замедлять работу пользователя при проведении документа, отправку сообщений лучше выносить в ФоновыеЗадания. Это обеспечит бесперебойную работу интерфейса, даже если API мессенджера ответит с задержкой.
Если ваша бизнес-модель предполагает, что клиент может ответить на сообщение, нам нужно развернуть HTTP-сервис внутри 1С. Рассмотрим этот процесс по шагам:
Шаг 1. Создаем в дереве конфигурации новый объект HTTP-сервис.
Шаг 2. Определяем шаблон URL (например, /webhook) и метод POST.
Шаг 3. В обработчике метода считываем входящий поток данных. Агрегатор будет присылать JSON с текстом ответа клиента и его номером.
Шаг 4. Используя МенеджерИсторииСообщений или просто создавая задачу/событие в 1С, уведомляем ответственного менеджера о входящем сообщении.
Если вы выбрали официальный путь через WABA, помните о правилах Meta. Вы не можете отправить произвольный текст первым. Сообщение должно соответствовать заранее одобренному шаблону. Например:
"Здравствуйте, {{1}}! Ваш заказ №{{2}} сменил статус на {{3}}."
В коде 1С при формировании JSON вместо текста сообщения вы будете передавать идентификатор шаблона и массив параметров {{1}}, {{2}}, {{3}}. Это гарантирует доставку и минимизирует риски пометки вашего номера как спам.
Подведем итог нашему анализу. Прямая интеграция 1С и WhatsApp без лишних «прокладок» — это надежное и масштабируемое решение. Для быстрой реализации лучше использовать готовые модули-расширения от крупных агрегаторов (таких как Wazzup), которые встраиваются в УТ без изменения типовой конфигурации. Для кастомных задач используйте HTTPСоединение и выносите отправку в фоновые процессы, чтобы сохранить высокую производительность системы.