Обмен остатками и ценами — самая частая по интенсивности часть интеграции с 1С: если каталог обновляется раз в сутки, то остатки и цены логично синхронизировать значительно чаще, иначе покупатель увидит в наличии товар, которого на складе уже нет.
Разберём, чем облегчённый обмен остатками отличается от полной выгрузки каталога, как настроить отдельное расписание именно для него и какие проблемы возникают, когда частый обмен накладывается на тяжёлые операции сайта.
Полный обмен и обмен только остатками
| Полный обмен каталогом | Обмен остатками и ценами | |
|---|---|---|
| Что передаётся | Товары, разделы, свойства, картинки | Только количество и цена |
| Объём данных | Большой | Небольшой |
| Частота | Раз в сутки или реже | Каждые 15–30 минут |
| Нагрузка на сервер | Высокая | Низкая при правильной настройке |
Разделение на два независимых потока — ключевая идея этой части обмена. Не нужно гонять весь каталог с картинками каждые пятнадцать минут ради обновления количества на складе — 1С умеет выгружать облегчённый файл только с изменившимися остатками и ценами.
Настройка расписания
На стороне 1С для облегчённой выгрузки настраивается отдельное
регламентное задание с собственным интервалом, независимым от полного
обмена каталогом. На стороне сайта дополнительных настроек обычно
не требуется — облегчённая выгрузка обрабатывается тем же обработчиком
1c_exchange.php, что и полный обмен, просто с меньшим объёмом
файла на каждый сеанс.
Нужна помощь с Битрикс?
Что важно на стороне сайта
- Кеш каталога должен обновляться после обмена. Если страницы товаров кешируются надолго, изменённая цена может не появиться на витрине сразу после успешного обмена.
- Фасетный индекс должен пересчитываться корректно. При частом обмене остатками важно, чтобы пересчёт индекса не создавал избыточную нагрузку на каждое небольшое изменение — это одна из типичных проблем при работе умного фильтра на активно обновляемом каталоге.
- Товары с нулевым остатком должны корректно скрываться или помечаться — в зависимости от бизнес-логики: одни магазины прячут отсутствующие товары полностью, другие показывают их с пометкой «под заказ».
Конфликт частого обмена с обменом заказами
Если оба потока — заказы в 1С и остатки на сайт — настроены с близкими интервалами, обработчик обмена может запускаться почти непрерывно. На сервере с ограниченными ресурсами это способно создать постоянную фоновую нагрузку, заметную даже при небольшом объёме данных за один сеанс.
Практический подход — развести интервалы: например, остатки каждые 15 минут, а обмен заказами каждые 30, со смещением по времени, чтобы два процесса не запускались одновременно.
Диагностика рассинхронизации
Если остатки на сайте расходятся с реальными:
- Проверьте журнал обмена — выполняется ли облегчённая выгрузка вообще.
- Проверьте, не отключено ли регламентное задание в 1С после какого-то сбоя.
- Проверьте кеширование страниц каталога — не показывает ли витрина устаревшую версию.
- Сверьте остаток конкретного товара напрямую в базе, минуя кеш и фильтры.
Последний пункт помогает разделить две принципиально разные проблемы: данные физически не дошли до сайта или данные дошли, но не отображаются из-за кеша. Решаются они по-разному, и без этой проверки легко потратить время не на ту причину.
Частые ошибки
- Остатки гоняются вместе с полным каталогом. Ненужная нагрузка на сервер при каждом обновлении количества.
- Кеш каталога не сбрасывается после обмена. Актуальные данные есть в базе, но витрина показывает устаревшую версию.
- Интервалы обмена остатками и заказами совпадают. Два тяжёлых процесса накладываются друг на друга.
- Нет отдельного мониторинга для облегчённого обмена. Сбой в нём заметен только тогда, когда покупатель жалуется на несовпадение наличия.
Итог
Обмен остатками и ценами разумно выделять в отдельный, лёгкий и частый поток — независимо от полной выгрузки каталога с картинками и описаниями. Такое разделение снижает нагрузку на сервер и позволяет держать данные о наличии актуальными почти в реальном времени.
Главное, что стоит проверить при настройке: разведены ли по времени разные потоки обмена и сбрасывается ли кеш каталога после каждого успешного сеанса — иначе даже правильно настроенный частый обмен не даст видимого эффекта на витрине.
