Skip to main content

Механизмы запуска синхронизации и их настройки

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

Для запуска процессов синхронизации (загрузки, выгрузки и передачи данных) используются различные триггеры как на стороне модуля, так и на стороне МойСклад.

В модуле используется 3 типа основных инициаторов (триггеров) запуска процессов синхронизации:

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

Вебхуки срабатывают при создании или изменении сущностей в МойСклад. К таким сущностям относятся элементы каталога (товары, модификации, комплекты), а также данные, связанные с заказами.

При срабатывании вебхука на сайт отправляется HTTP-запрос, который обрабатывается модулем и инициирует соответствующие процессы синхронизации.

Запрос представляет собой POST-запрос, содержащий информацию о событии: его тип и ссылку на изменённый объект. Например, при изменении наименования товара будет отправлен запрос со ссылкой на данный товар.

Модуль использует вебхуки для оперативной передачи данных при синхронизации товаров и заказов. Это позволяет не дожидаться выполнения циклической синхронизации (через cron), а поддерживать актуальность данных на сайте и в МойСклад в режиме, близком к реальному времени.

⚠️ Важно Для более подробного понимания принципов работы вебхуков в МойСклад рекомендуется обратиться к официальной документации МойСклад.

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

При первой установке модуля вебхуки не добавляются в МойСклад автоматически — их необходимо создать вручную.

Для этого после авторизации перейдите в раздел «Вебхуки и агенты». В данном разделе доступны несколько вкладок, две из которых предназначены для настройки вебхуков, необходимых для корректной работы модуля:

wh1.jpg

При добавлении вебхука в МойСклад указывается URL (ссылка), на который будет отправляться запрос. Для такой ссылки обязательно должен быть указан домен.

По умолчанию домен определяется на основании общих настроек 1С-Битрикс, однако для корректной работы рекомендуется явно указать его в поле «Основной домен».

Рекомендуется заполнять это поле во всех случаях при настройке вебхуков:

wh2.jpg

Типы обработки вебхуков

В модуле предусмотрено два режима обработки вебхуков. Режим можно указать в отдельном выпадающем списке в разделе настроек вебхуков:

wh3.jpg

1. Обработка без очереди.

В данном режиме вебхуки обрабатываются сразу при поступлении на сайт. Это наиболее быстрый способ, при котором изменения в МойСклад практически мгновенно отражаются на сайте.

Для настройки доступны дополнительные параметры:

"Количество одновременно обрабатываемых вебхуков":

wh4.jpg

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

wh5.jpg

Режим обработки вебхуков без очередей имеет ограничения:

  • при высокой нагрузке и большом количестве изменений возможны ошибки обработки;
  • часть вебхуков может быть пропущена и не обработана;
  • использование режима с включённой обработкой множественных вебхуков (вебхук полученный после группового редактирования элементов в МойСклад) на текущий момент не рекомендуется.

2. Обработка на очередях

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

Обработка выполняется:

  • через агенты 1С-Битрикс;
  • либо через cron (с использованием отдельного скрипта).

Дополнительно можно настроить количество вебхуков, обрабатываемых за один запуск:

wh6.jpg

Преимущества данного режима:

  • гарантированная обработка всех вебхуков;
  • отсутствие потери данных при высокой нагрузке;
  • стабильная работа при большом объёме изменений.

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

Как создать в МойСклад необходимые вебхуки

Для добавления всех необходимых вебхуков в МойСклад перейдите в раздел «Вебхуки и агенты», на вкладку «Основные настройки», и нажмите кнопку «Проверить/восстановить необходимые вебхуки».

После завершения процесса в блоках «Вебхуки заказов и контрагентов» и «Вебхуки товаров, оприходований и разделов» отобразится список всех добавленных вебхуков.

wh7.jpg

Менеджер вебхуков

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

В стандартном интерфейсе МойСклад отсутствует удобный инструмент для просмотра и управления вебхуками. Поэтому в модуле синхронизации реализован отдельный раздел — «Менеджер вебхуков»:

wh8.jpg

Данный функционал позволяет:

  • просматривать список всех вебхуков, зарегистрированных в МойСклад;
  • видеть, для какой сущности и действия настроен вебхук;
  • получать идентификатор вебхука и его URL;
  • редактировать существующие вебхуки;
  • удалять вебхуки, включая возможность массового удаления.

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

Для загрузки списка всех вебхуков, зарегистрированных в МойСклад, используйте кнопку «Загрузить все вебхуки»:

wh10.jpg

Для добавления нового вебхука предусмотрена кнопка «Добавить вебхук»:

wh9.jpg

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

wh12.jpg

Возможные проблемы с добавлением вебхуков:

1. Изменения домена сайта

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

Для корректной работы необходимо вручную обновить настройки вебхуков:

  1. Перейдите в раздел «Вебхуки и агенты» и на вкладке «Основные настройки» укажите новый домен в поле «Основной домен».
  2. Затем в «Менеджере вебхуков» удалите старые вебхуки, созданные для предыдущего домена.
  3. После этого нажмите кнопку «Проверить/восстановить необходимые вебхуки» на вкладке «Основные настройки», чтобы создать актуальные вебхуки с новым доменом.
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)