Интеграция с 1С
Подключите M-TEH к системе 1С:Предприятие для получения данных о клиентах, заказах, балансах и остатках прямо в диалоге с пользователем.
Принцип работы
M-TEH отправляет HTTP-запросы к публикации 1С через REST или HTTP-сервис 1С.
Ответ 1С возвращается в переменную {{onec_response}} и доступен в следующих узлах.
Граф[Trigger Widget]
↓
[AI Extract]
└─ fields: contract_number
↓
[1C Request]
└─ method: GetContractBalance
└─ params: {"contract": "{{extracted_contract_number}}"}
↓
[Action Reply]
└─ text: "Ваш баланс по договору {{extracted_contract_number}}: {{onec_response.balance}}₽"
Настройка 1С-интеграции
Опубликуйте HTTP-сервис в 1С
В конфигураторе 1С создайте HTTP-сервис или REST-публикацию с нужными методами. Настройте базовую аутентификацию.
Добавьте интеграцию в M-TEH
Интеграции → Добавить → «1C:Enterprise». Укажите URL публикации, логин и пароль.
Добавьте узел «1C Request» в пайплайн
Укажите имя метода и параметры запроса. Параметры поддерживают
{{variables}}.Параметры подключения
| Поле | Описание |
|---|---|
URL публикации | Базовый URL HTTP-сервиса 1С, напр. http://1c-server/erp/hs/M-TEH/ |
Логин | Пользователь 1С с правами на вызов сервиса |
Пароль | Пароль (хранится зашифровано) |
Timeout | Таймаут запроса в секундах (по умолч. 10) |
SSL Verify | Проверять SSL-сертификат (отключите для self-signed) |
Формат запроса и ответа
M-TEH отправляет POST-запрос с JSON-телом:
POST /hs/M-TEH/GetContractBalance{
"contract": "Д-00001234",
"session": "nx-a1b2c3..."
}
1С должна вернуть JSON:
Response{
"balance": 15000.50,
"credit_limit": 50000,
"currency": "RUB",
"status": "ok"
}
Поля ответа доступны как {{onec_response.balance}}, {{onec_response.currency}} и т.д.
Пример HTTP-сервиса 1С
1C HTTP-сервис// Функция обработчика GET/POST
Функция ПолучитьБалансКонтракта(Запрос)
Тело = Запрос.ПолучитьТелоКакСтроку();
Данные = ОбщегоНазначения.JsonВЗначение(Тело);
НомерДоговора = Данные["contract"];
Договор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(НомерДоговора);
Баланс = ВзаиморасчетыСКонтрагентами.ПолучитьДолг(Договор);
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(
ОбщегоНазначения.ЗначениеВJson(Новый Структура("balance,status", Баланс, "ok"))
);
Возврат Ответ;
КонецФункции
Обработка ошибок
Если 1С недоступна или вернула ошибку, узел 1C Request записывает ошибку в лог выполнения.
Переменная {{onec_response}} будет содержать {"error": "Connection timeout"}.
Используйте узел Condition для проверки успешности:
Защита от ошибки[1C Request]
↓
[Condition: onec_response.status == "ok"]
├─ yes → [Reply: "Баланс: {{onec_response.balance}}₽"]
└─ no → [Reply: "Не удалось получить данные. Обратитесь к менеджеру."]
Убедитесь, что сервер 1С доступен из сети, где развёрнут M-TEH. При работе в облаке может потребоваться
VPN или обратный прокси.