Тарифы Войти Начать бесплатно

Интеграция с 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 или обратный прокси.