События 1С — наружу, с подписью и повторами
Отправить событие из 1С наружу несложно ровно до первой недоступной системы-получателя: дальше нужны очередь, повторы, журнал попыток и регламентное задание, которое всё это разгребает. HookPilot закрывает эту часть: 1С делает один запрос и забывает, а доставку, повторы и историю ведём мы.
Без карты можно проверить отправку через API в один эндпоинт. Для источника или подключения и получателя — Starter от 2 900 ₽/мес.
Как подключить
Каждая база 1С заводится отдельным источником и считается одним подключением.
- 1
Создайте источник с провайдером «Произвольный источник (HMAC)». Секрет подписи показывается один раз: сохраните его в константе или в параметрах сеанса базы.
- 2
В 1С соберите тело события как JSON через ЗаписьJSON и подпишите его: HMAC-SHA256 от тела на выданном секрете. В платформе это объект ХешированиеДанных с алгоритмом HMAC.
- 3
Отправьте POST на адрес приёма объектом HTTPСоединение. Положите подпись в заголовок X-HookPilot-Signature, а тип события в X-HookPilot-Event, например document.posted.
- 4
Подпишите эндпоинты на типы событий и проверьте приём в ленте принятого: там видно тело, тип и результат проверки подписи.
Что происходит после отправки
Ответ приходит сразу
База получает 200 в момент сохранения события, не дожидаясь системы-получателя. Проведение документа не висит на чужом таймауте, а регламентное задание не копит очередь.
Подпись считается от сырого тела
Подписывать нужно ровно ту строку, которая уходит по сети. Если перед отправкой тело переформатируется или дописывается BOM, подпись не сойдётся — это самая частая причина отказа.
Повторная отправка не двоится
Передайте в X-HookPilot-Event-Id идентификатор документа или GUID записи. Повторное проведение того же документа второго события не создаст, что важно при перепроведении месяца.
Доставка переживает обрыв связи
Если система-получатель не ответила, доставка повторяется до восьми раз почти за двое суток. Событие при этом лежит у нас целиком и доступно для ручного перезапуска.
Событие не пришло
Три причины, которые встречаются чаще остальных. Всё принятое видно в ленте принятого в кабинете вместе с типом и историей доставки.
Ответ 401, подпись не сходится
Чаще всего тело подписывается до кодирования в UTF-8 или после него по-разному. Подписывайте ровно тот двоичный буфер, который уходит в тело запроса, и сверьтесь с разбором в справке.
Ошибка соединения со стороны 1С
Проверьте, что на сервере базы установлены корневые сертификаты и HTTPS-соединение создаётся с указанием порта 443. На серверах без обновлённого хранилища сертификатов это типовая причина обрыва.
Событие принято, вебхука нет
Эндпоинт не подписан на отправленный тип. Откройте ленту принятого: там виден определённый тип каждого события и список эндпоинтов, в которые оно ушло.
Нужна ли доработка конфигурации?
Нужен один общий модуль с функцией отправки и вызов из нужных мест: подписки на события, обработчика проведения или регламентного задания. Типовые конфигурации при этом остаются на поддержке, правки умещаются в расширение.
Можно ли отправлять из файловой базы?
Да, если у машины есть выход в интернет. Для файловой базы отправку обычно вешают на регламентное задание, которое разбирает накопившуюся таблицу событий, чтобы не задерживать пользователя при записи.
Что делать, если 1С временно без интернета?
Накапливайте события в служебном регистре и отправляйте пачкой, когда связь появится. Идентификатор в X-HookPilot-Event-Id защитит от дублей, если часть пачки всё-таки ушла раньше.
Другие интеграции
Платёжные системы, маркетплейсы и любая система с подписанными вебхуками или HTTP API.