Произвольный источник

События 1С — наружу, с подписью и повторами

Отправить событие из 1С наружу несложно ровно до первой недоступной системы-получателя: дальше нужны очередь, повторы, журнал попыток и регламентное задание, которое всё это разгребает. HookPilot закрывает эту часть: 1С делает один запрос и забывает, а доставку, повторы и историю ведём мы.

Без карты можно проверить отправку через API в один эндпоинт. Для источника или подключения и получателя — Starter от 2 900 ₽/мес.

Как подключить

Каждая база 1С заводится отдельным источником и считается одним подключением.

  1. 1

    Создайте источник с провайдером «Произвольный источник (HMAC)». Секрет подписи показывается один раз: сохраните его в константе или в параметрах сеанса базы.

  2. 2

    В 1С соберите тело события как JSON через ЗаписьJSON и подпишите его: HMAC-SHA256 от тела на выданном секрете. В платформе это объект ХешированиеДанных с алгоритмом HMAC.

  3. 3

    Отправьте POST на адрес приёма объектом HTTPСоединение. Положите подпись в заголовок X-HookPilot-Signature, а тип события в X-HookPilot-Event, например document.posted.

  4. 4

    Подпишите эндпоинты на типы событий и проверьте приём в ленте принятого: там видно тело, тип и результат проверки подписи.

Что происходит после отправки

Ответ приходит сразу

База получает 200 в момент сохранения события, не дожидаясь системы-получателя. Проведение документа не висит на чужом таймауте, а регламентное задание не копит очередь.

Подпись считается от сырого тела

Подписывать нужно ровно ту строку, которая уходит по сети. Если перед отправкой тело переформатируется или дописывается BOM, подпись не сойдётся — это самая частая причина отказа.

Повторная отправка не двоится

Передайте в X-HookPilot-Event-Id идентификатор документа или GUID записи. Повторное проведение того же документа второго события не создаст, что важно при перепроведении месяца.

Доставка переживает обрыв связи

Если система-получатель не ответила, доставка повторяется до восьми раз почти за двое суток. Событие при этом лежит у нас целиком и доступно для ручного перезапуска.

Ответ 401, подпись не сходится

Чаще всего тело подписывается до кодирования в UTF-8 или после него по-разному. Подписывайте ровно тот двоичный буфер, который уходит в тело запроса, и сверьтесь с разбором в справке.

Ошибка соединения со стороны 1С

Проверьте, что на сервере базы установлены корневые сертификаты и HTTPS-соединение создаётся с указанием порта 443. На серверах без обновлённого хранилища сертификатов это типовая причина обрыва.

Событие принято, вебхука нет

Эндпоинт не подписан на отправленный тип. Откройте ленту принятого: там виден определённый тип каждого события и список эндпоинтов, в которые оно ушло.

Частые вопросы

Остальное в базе знаний или в поддержке.

База знаний
Нужна ли доработка конфигурации?

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

Можно ли отправлять из файловой базы?

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

Что делать, если 1С временно без интернета?

Накапливайте события в служебном регистре и отправляйте пачкой, когда связь появится. Идентификатор в X-HookPilot-Event-Id защитит от дублей, если часть пачки всё-таки ушла раньше.

Другие интеграции

Платёжные системы, маркетплейсы и любая система с подписанными вебхуками или HTTP API.