Перейти к основному содержимому

Вебхуки и события

У обмена ровно два источника, и оба только ставят задачу в очередь:

  • события Битрикс24 — сделку, контакт или компанию создали либо изменили: задача на выгрузку;
  • вебхуки МойСклад — изменился заказ или контрагент: задача на загрузку.

Опроса API по расписанию нет: модуль узнаёт об изменениях в момент, когда они произошли. Это и быстрее, и бережнее к лимитам МойСклад.

События Битрикс24

Модуль подписан на шесть событий CRM: добавление и изменение сделок, контактов и компаний. Обработчики регистрируются автоматически при установке, их список виден на странице «События модуля» в разделе диагностики.

Переключатели на этой странице существуют для диагностики: отключение нужно, когда техподдержка просит временно остановить конкретный обработчик. Выключенное событие не останавливает обмен целиком и ничего не удаляет — оно лишь перестаёт создавать задачи, и правки в CRM тихо перестают доезжать до МойСклад.

Событие срабатывает не на каждое сохранение: если изменение приехало из МойСклад, модуль распознаёт собственную запись и не отправляет её обратно.

Вебхуки МойСклад

Вебхук — способ МойСклад сообщить модулю, что заказ или контрагент изменились. Без вебхуков обмен работает только в одну сторону: из Битрикс24 в МойСклад.

Настройка состоит из двух независимых частей:

Файл-обработчик на вашем сервере

Адрес, по которому МойСклад будет стучаться. Модуль разворачивает обработчик сам из интерфейса и прописывает ему доступ, а затем проверяет реальным запросом, что адрес отвечает, — ходить на сервер по FTP не нужно. Целевое состояние: файл установлен и доступ разрешён.

«Доступ не настроен» — самая частая причина неработающего импорта

Если у обработчика нет доступа, Битрикс отдаёт МойСкладу форму логина вместо ответа, и уведомления просто не доходят — при этом в МойСклад вебхуки выглядят созданными. Модуль прописывает разрешение сам, сделав резервную копию файла доступов.

Вебхуки в аккаунте МойСклад

Записи в вашем аккаунте, указывающие на адрес обработчика. Модуль создаёт недостающие одной кнопкой. Целевое состояние — девять вебхуков: три сущности на три действия (создание, изменение, удаление).

Секретный ключ модуль генерирует сам: по нему он отличает настоящие уведомления от посторонних запросов.

Смена секретного ключа обесценивает все вебхуки

Ключ входит в адрес вебхука, поэтому после его замены ранее созданные хуки продолжают вести на старый адрес и перестают работать. Лечится повторным обновлением хуков — но забыть об этом нельзя, иначе импорт молча остановится.

Удаление в МойСклад не переносится в CRM

Вебхуки на действие «Удаление» регистрируются, но модуль их сознательно пропускает: удаление заказа или контрагента в МойСклад не удаляет ничего в Битрикс24. Это защита от потери данных, а не сбой настройки.

Что нужно от сервера

  • Публично доступный адрес на сайте портала — для приёма уведомлений МойСклад.
  • Агенты Битрикс на cron — для обработки очереди. См. настройку агентов.