База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как интегрировать GreenAPI-MAX в УТ 11.5 для отправки уведомлений клиентам? › Ответ в теме: Как интегрировать GreenAPI-MAX в УТ 11.5 для отправки уведомлений клиентам?
Для УТ 11.5 интеграция с GreenAPI-MAX через внешнюю обработку или внешний модуль — это классический сценарий расширения функционала 1С для автоматической отправки уведомлений клиентам, например, при изменении статуса заказа покупателя.
### Как это сделать подробно с примерами
—
## 1. Подключение обработки GreenAPI-MAX к УТ 11.5
— В режиме предприятия загрузите обработку GreenAPI-MAX (*.epf).
— Настройте параметры подключения (ID аккаунта, токен) в обработке.
— Убедитесь, что обработка работает и может отправлять сообщения вручную.
—
## 2. Создание внешнего модуля для вызова функций GreenAPI-MAX
В УТ 11.5 можно создать внешний общий модуль (например, GreenAPIИнтеграция), который будет содержать процедуры и функции для отправки сообщений через GreenAPI-MAX.
### Пример кода внешнего общего модуля GreenAPIИнтеграция:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// Внешний общий модуль GreenAPIИнтеграция // Процедура отправки текстового сообщения через GreenAPI-MAX Процедура ОтправитьСообщение(НомерТелефона, ТекстСообщения) Экспорт // Создаем объект обработки GreenAPI-MAX ОбработкаGreenAPI = ПолучитьОбработку("ПутьКGreenAPI-MAX.epf"); Если ОбработкаGreenAPI = Неопределено Тогда Сообщить("Не удалось загрузить обработку GreenAPI-MAX"); Возврат; КонецЕсли; // Устанавливаем параметры подключения (пример, заменить на реальные) ОбработкаGreenAPI.IDАккаунта = "ВАШ_ID_АККАУНТА"; ОбработкаGreenAPI.Токен = "ВАШ_ТОКЕН"; // Формируем и отправляем сообщение Результат = ОбработкаGreenAPI.ОтправитьСообщение(НомерТелефона, ТекстСообщения); Если Результат = Истина Тогда Сообщить("Сообщение успешно отправлено клиенту " + НомерТелефона); Иначе Сообщить("Ошибка при отправке сообщения клиенту " + НомерТелефона); КонецЕсли; КонецПроцедуры |
> Важно:
> — ПолучитьОбработку() — это пример функции, которая должна загрузить обработку GreenAPI-MAX в память. В 1С нет встроенной функции с таким именем, нужно реализовать загрузку обработки через ВнешниеОбработки или через COM-соединение, либо использовать вызов процедур обработки через COM или COM-соединение.
> — В зависимости от реализации GreenAPI-MAX, возможно, придется вызывать процедуры через COM или через вызов внешней обработки с параметрами.
—
## 3. Вызов из бизнес-процесса УТ 11.5 — например, при изменении статуса заказа покупателя
В УТ 11.5 есть документ «Заказ покупателя». Можно расширить обработку события изменения статуса заказа, чтобы при смене статуса отправлять уведомление клиенту.
### Пример расширения обработки документа ЗаказПокупателя (в расширении или в общем модуле):
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
&НаСервере Процедура ПриИзмененииСтатусаЗаказа(Объект) // Получаем номер телефона клиента из реквизитов или из контрагента НомерТелефона = ПолучитьТелефонКлиента(Объект.Контрагент); Если НомерТелефона = "" Тогда Возврат; // Телефон не указан, отправка невозможна КонецЕсли; // Формируем текст уведомления ТекстСообщения = "Уважаемый клиент! Статус вашего заказа №" + Объект.Номер + " изменен на " + Объект.СтатусЗаказа.Наименование; // Вызываем процедуру отправки сообщения из внешнего модуля GreenAPIИнтеграция.ОтправитьСообщение(НомерТелефона, ТекстСообщения); КонецПроцедуры // Вспомогательная функция для получения телефона клиента Функция ПолучитьТелефонКлиента(Контрагент) Экспорт Если Контрагент = Неопределено Тогда Возврат ""; КонецЕсли; // Предположим, что телефон хранится в реквизите "Телефон" Возврат Контрагент.Телефон; КонецФункции |
—
## 4. Автоматизация вызова
— Можно подписаться на событие изменения документа ЗаказПокупателя (например, через расширение, подписку на событие или через обработчик в модуле объекта).
— При изменении статуса вызывается процедура ПриИзмененииСтатусаЗаказа, которая отправляет уведомление.
—
## 5. Важные моменты
— Передача параметров в обработку GreenAPI-MAX: если обработка не предоставляет прямого API для вызова из кода, можно доработать её, добавив экспортные процедуры, которые принимают параметры (номер, текст) и отправляют сообщение.
— Асинхронность: отправка сообщений может занимать время, лучше делать это в регламентных заданиях или фоновых обработках, чтобы не блокировать пользователя.
— Логирование: добавьте логирование успешных и неуспешных попыток отправки сообщений для отладки и контроля.
— Безопасность: храните токены и ID аккаунта в защищённых настройках, не хардкодьте в коде.
—
## Итог
— Создаёте внешний модуль с процедурами отправки сообщений через GreenAPI-MAX.
— Расширяете бизнес-процессы УТ 11.5, чтобы при нужных событиях (например, смена статуса заказа) вызывать эти процедуры.
— Настраиваете автоматизацию и логирование.
—
Если нужна помощь с конкретным кодом вызова из обработки GreenAPI-MAX (например, как именно вызвать её методы из 1С), пришлите код обработки или опишите, как она реализована (внешняя обработка, COM, HTTP-запросы), помогу адаптировать.