Механизмы запуска синхронизации и их настройки
Функционал модуля синхронизации охватывает различные этапы бизнес-процессов, связанных с заказами и каталогом товаров.
Для запуска процессов синхронизации (загрузки, выгрузки и передачи данных) используются различные триггеры как на стороне модуля, так и на стороне МойСклад.
В модуле используется 3 типа основных инициаторов (триггеров) запуска процессов синхронизации:
1. Вебхуки МойСклад
Вебхуки срабатывают при создании или изменении сущностей в МойСклад. К таким сущностям относятся элементы каталога (товары, модификации, комплекты), а также данные, связанные с заказами.
При срабатывании вебхука на сайт отправляется HTTP-запрос, который обрабатывается модулем и инициирует соответствующие процессы синхронизации.
Запрос представляет собой POST-запрос, содержащий информацию о событии: его тип и ссылку на изменённый объект. Например, при изменении наименования товара будет отправлен запрос со ссылкой на данный товар.
Модуль использует вебхуки для оперативной передачи данных при синхронизации товаров и заказов. Это позволяет не дожидаться выполнения циклической синхронизации (через cron), а поддерживать актуальность данных на сайте и в МойСклад в режиме, близком к реальному времени.
⚠️ Важно Для более подробного понимания принципов работы вебхуков в МойСклад рекомендуется обратиться к официальной документации МойСклад.
Настройка вебхуков расположена на странице обязательных настроек модуля обмена с МС.
При первой установке модуля вебхуки не добавляются в МойСклад автоматически — их необходимо создать вручную.
Для этого после авторизации перейдите в раздел «Вебхуки и агенты». В данном разделе доступны несколько вкладок, две из которых предназначены для настройки вебхуков, необходимых для корректной работы модуля:
При добавлении вебхука в МойСклад указывается URL (ссылка), на который будет отправляться запрос. Для такой ссылки обязательно должен быть указан домен.
По умолчанию домен определяется на основании общих настроек 1С-Битрикс, однако для корректной работы рекомендуется явно указать его в поле «Основной домен».
Рекомендуется заполнять это поле во всех случаях при настройке вебхуков:
Типы обработки вебхуков
В модуле предусмотрено два режима обработки вебхуков. Режим можно указать в отдельном выпадающем списке в разделе настроек вебхуков:
1. Обработка без очереди.
В данном режиме вебхуки обрабатываются сразу при поступлении на сайт. Это наиболее быстрый способ, при котором изменения в МойСклад практически мгновенно отражаются на сайте.
Для настройки доступны дополнительные параметры:
"Количество одновременно обрабатываемых вебхуков":
"Синхронизировать множественные вебхуки" — используется при массовом редактировании данных в МойСклад:
Режим обработки вебхуков без очередей имеет ограничения:
- при высокой нагрузке и большом количестве изменений возможны ошибки обработки;
- часть вебхуков может быть пропущена и не обработана;
- использование режима с включённой обработкой множественных вебхуков (вебхук полученный после группового редактирования элементов в МойСклад) на текущий момент не рекомендуется.
2. Обработка на очередях
В этом режиме все входящие вебхуки сначала сохраняются в базе данных, после чего обрабатываются последовательно.
Обработка выполняется:
- через агенты 1С-Битрикс;
- либо через cron (с использованием отдельного скрипта).
Дополнительно можно настроить количество вебхуков, обрабатываемых за один запуск:
Преимущества данного режима:
- гарантированная обработка всех вебхуков;
- отсутствие потери данных при высокой нагрузке;
- стабильная работа при большом объёме изменений.
Несмотря на то, что обработка происходит не мгновенно, данный режим является рекомендуемым для использования.
Как создать в МойСклад необходимые вебхуки
Для добавления всех необходимых вебхуков в МойСклад перейдите в раздел «Вебхуки и агенты», на вкладку «Основные настройки», и нажмите кнопку «Проверить/восстановить необходимые вебхуки».
После завершения процесса в блоках «Вебхуки заказов и контрагентов» и «Вебхуки товаров, оприходований и разделов» отобразится список всех добавленных вебхуков.
Менеджер вебхуков
При работе с вебхуками часто возникает необходимость получить информацию о том, какие вебхуки уже добавлены в МойСклад, с какими доменами они связаны и для каких сущностей настроены.
В стандартном интерфейсе МойСклад отсутствует удобный инструмент для просмотра и управления вебхуками. Поэтому в модуле синхронизации реализован отдельный раздел — «Менеджер вебхуков»:
Данный функционал позволяет:
- просматривать список всех вебхуков, зарегистрированных в МойСклад;
- видеть, для какой сущности и действия настроен вебхук;
- получать идентификатор вебхука и его URL;
- редактировать существующие вебхуки;
- удалять вебхуки, включая возможность массового удаления.
Менеджер вебхуков предоставляет удобный интерфейс для полного контроля и управления вебхуками, используемыми в интеграции.
Для загрузки списка всех вебхуков, зарегистрированных в МойСклад, используйте кнопку «Загрузить все вебхуки»:
Для добавления нового вебхука предусмотрена кнопка «Добавить вебхук»:
При необходимости удаления нескольких вебхуков можно выбрать нужные записи с помощью чекбоксов — после этого появится дополнительная кнопка для их удаления.
Возможные проблемы с добавлением вебхуков:
1. Изменения домена сайта
При смене домена сайта могут возникнуть проблемы с работой функционала, связанного с вебхуками. Это связано с тем, что информация о вебхуках, включая используемый домен, хранится на стороне МойСклад и не обновляется автоматически при изменении домена сайта.
Для корректной работы необходимо вручную обновить настройки вебхуков:
- Перейдите в раздел «Вебхуки и агенты» и на вкладке «Основные настройки» укажите новый домен в поле «Основной домен».
- Затем в «Менеджере вебхуков» удалите старые вебхуки, созданные для предыдущего домена.
- После этого нажмите кнопку «Проверить/восстановить необходимые вебхуки» на вкладке «Основные настройки», чтобы создать актуальные вебхуки с новым доменом.
3. Ошибка при добавлении/восстановлении вебхуков
При создании вебхуков (в частности, при использовании функции «Проверить/восстановить необходимые вебхуки») в интерфейсе модуля могут отображаться ошибки, полученные от МойСклад.
В большинстве случаев такие ошибки связаны с ограничениями на создание вебхуков, установленными в МойСклад.
Согласно документации МойСклад, комбинация параметров entityType (сущность), action (действие) и url (адрес обработчика) должна быть уникальной. При этом для одной комбинации сущности и действия допускается не более 5 вебхуков с различными URL.
Например, для сущности «Заказ покупателя» и действия «создание» можно создать не более 5 вебхуков (с разными адресами).
В связи с этим ошибка может возникать, если в вашей учётной записи МойСклад уже созданы вебхуки с такими же параметрами (например, для других сайтов или интеграций). В этом случае модуль не сможет добавить новые вебхуки, так как будет превышено допустимое количество.
Рекомендуется проверить существующие вебхуки в МойСклад и при необходимости удалить неиспользуемые или дублирующие записи. Сделать это можно через «Менеджер вебхуков», доступный в административной части модуля.
Удаление вебхуков
Если вам больше не требуются вебхуки, используемые в МойСклад, или необходимо временно отключить связанные с ними бизнес-процессы (в том числе процессы модуля синхронизации), вы можете удалить такие вебхуки через «Менеджер вебхуков», доступный в разделе «Вебхуки и агенты» в настройках модуля.
Возможные блокировки вебхуков со стороны МоегоСклада
В некоторых случаях, даже при наличии настроенных вебхуков в МойСклад, они могут не срабатывать. Это означает, что при изменении сущности (например, товара или заказа) запрос на сайт не отправляется.
Чаще всего такая ситуация связана с деактивацией вебхука.
Согласно документации МойСклад, при отправке вебхука система ожидает получить HTTP-ответ со статусом 200 или 204 в течение 1500 мс. Если корректный ответ не получен, выполняется несколько повторных попыток отправки. Если все попытки завершаются неудачно, вебхук считается неотработанным и в дальнейшем может быть деактивирован.
Деактивация вебхука означает, что он остаётся в системе МойСклад, но перестаёт срабатывать (становится неактивным).
Определить это можно в «Менеджере вебхуков» модуля:
- активные вебхуки выделены зеленым цветом;
- деактивированные вебхуки подсвечиваются красным цветом.
Что делать при деактивации вебхук?
Если вебхук был деактивирован, рекомендуется:
- Удалить неактивный вебхук через «Менеджер вебхуков»;
- Перейти во вкладку «Основные настройки»;
- Нажать кнопку «Проверить/восстановить необходимые вебхуки» для повторного создания вебхуков.
Причины деактивации:
На практике наиболее частая причина — временная недоступность сайта. Если в момент отправки вебхука сайт не отвечал (например, из-за проблем с сервером или сетью), МойСклад не получал корректный ответ и в результате мог деактивировать вебхук.
2. События в 1С-Битрикс
События возникают при создании или изменении сущностей на сайте (например, заказов). При их срабатывании запускаются процессы выгрузки данных в МойСклад.
Модуль синхронизации использует ряд событий 1С-Битрикс для запуска обмена, в том числе:
- события создания и изменения заказов;
- события обновления пользователей;
- события, связанные с добавлением отгрузок и оплат по заказам
3. Циклические процессы (планировщик)
Отдельные методы синхронизации выполняются по расписанию.
для полноценной работы модуля нужно перевести выполнение агентов на cron.
Такие процессы могут запускаться:
- через агенты 1С-Битрикс;
- через cron (с использованием отдельного скрипта).
Циклический запуск используется для выполнения регулярной синхронизации и обработки накопленных данных.
Основные функции модуля работают через события (вебхуки). Но для полноценной работы модуля нужно перевести выполнение агентов на cron. А именно крон нужно настроить обязательно для:
- одноразовой и циклической синхронизации товаров и остатков;
- синхронизации заказов на агентах (если нужно, они изначально настроены на вебхуки);
- синхронизации скидок. Выполнение агентов можно настроить через постановку агентов на CronTab так и через выполнение агентов на крон.
Для выполнения агентов на крон нужно поставить обязательно файл
<адрес сайта>/bitrix/services/design2u.syncms/cron_aprix.php в планировщике на выполнение каждую минуту.
Второй способ: Для постановки выполнения агентов на CronTab нужно сделать настройки следуя шагам инструкции от Битрикс.
Видео: 1С-Битрикс. Ставим выполнение агентов на крон (CronTab)










