Настройка выгрузки остатков по складам из 1С:УТ в 1С-Битрикс
Остатки — самая «горячая» часть обмена. Цены меняются раз в день, номенклатура — раз в неделю, а остатки могут меняться каждые несколько минут в активном магазине. Неактуальный остаток = заказ товара, которого нет = недовольный клиент + ручная работа по отмене. Поэтому настройка выгрузки остатков требует отдельного внимания к частоте, точности и архитектуре складов.
Как остатки хранятся в УТ и передаются в Битрикс
В 1С:УТ 11 остатки хранятся в регистре накопления ТоварыНаСкладах. Остаток = приход − расход по каждому складу для каждой номенклатуры (и характеристики, если используется характеристический учёт).
В CommerceML остатки передаются в файле предложений (offers.xml) в теге Остатки:
<Предложение>
<Ид>товар-guid#характеристика-guid</Ид>
<Остатки>
<Остаток>
<ИдСклада>склад-guid</ИдСклада>
<Количество>15</Количество>
</Остаток>
<Остаток>
<ИдСклада>склад2-guid</ИдСклада>
<Количество>3</Количество>
</Остаток>
</Остатки>
</Предложение>
На стороне Битрикс каждый склад из УТ должен быть создан в Торговый каталог → Склады с совпадающим XML_ID (GUID склада из УТ). Битрикс суммирует остатки по всем складам или показывает по каждому отдельно — в зависимости от настроек.
Фильтрация складов: что передавать на сайт
Часто в УТ есть несколько складов: основной склад, производственный, брак, транзитный. На сайт нужен только остаток со склада отгрузки — не суммарный по всем.
В настройках узла обмена УТ выбираем конкретные склады для выгрузки. Это критически важно: если передать суммарный остаток включая «Брак» или «В пути» — покупатель увидит наличие товара, которого фактически нет в состоянии отгрузки.
Свободный остаток vs. физический. В УТ можно настроить выгрузку свободного остатка (физический минус зарезервированный). Это правильная практика: если 10 штук зарезервировано под существующие заказы, сайт должен показывать реально доступное количество.
Настройка в узле обмена: параметр «Остатки: учитывать резервы» — включить.
Мультискладовый учёт на сайте
Если у магазина несколько складов (разные города, несколько точек выдачи), покупатель может хотеть видеть наличие в каждом конкретном городе. Это требует передачи остатков в разрезе складов — не суммарного.
В Битрикс для этого нужно:
- Создать склады в торговом каталоге (соответствие GUID)
- В компоненте каталога включить отображение остатков по складам
- При оформлении заказа — предлагать самовывоз с того склада, где есть товар
Для сайта с несколькими точками выдачи остатки по складам — ключевая функциональность. XML-обмен поддерживает эту структуру нативно.
Частота обновления и техническая реализация
| Тип бизнеса | Рекомендуемая частота | Комментарий |
|---|---|---|
| Большой интернет-магазин (FMCG) | 5–10 мин | Высокая частота изменений |
| Средний магазин | 15–30 мин | Баланс нагрузка/актуальность |
| Магазин с медленным оборотом | 60 мин | Мебель, крупная техника |
| Оптовый склад | 30 мин | + ручная синхронизация при бронировании |
Реализация частого обмена остатками — через cron на сервере, а не через «автообмен» в интерфейсе Битрикс (он менее надёжен). Скрипт запуска обмена:
# Запуск обмена остатками каждые 15 минут
*/15 * * * * www-data /usr/bin/php /var/www/html/bitrix/modules/main/tools/cron_events.php
Или через прямой вызов обработчика обмена с параметром type=sale (только заказы) или type=catalog (каталог + остатки).
Резервирование при оформлении заказа
Когда покупатель оформляет заказ на Битрикс, нужно решить: резервировать ли товар немедленно (до оплаты) или только после подтверждения оплаты?
-
Немедленное резервирование: товар резервируется в Битрикс при создании заказа (статус «ожидает оплаты»). При передаче заказа в УТ — создаётся резерв в регистре
ТоварыВРезервеНаСкладах. Следующий обмен остатками вернёт актуальный свободный остаток уже с учётом резерва. -
Резервирование после оплаты: риск продать «воздух» при параллельных заказах, но меньше «висячих» резервов от незавершённых оплат.
Для большинства B2C магазинов — немедленное резервирование при создании заказа с автоматической отменой резерва через N часов, если оплата не поступила.
Кейс: склад с высокой оборачиваемостью
Оптово-розничный склад электроники: 15 тыс. позиций, пиковые дни — до 200 заказов в час. Проблема: при обмене остатками раз в 30 минут успевали оформиться 5–10 заказов на один товар, которого оставалось 1–2 штуки.
Решение: двухуровневая система. Обмен остатками — каждые 5 минут. Дополнительно — прямой запрос к HTTP-сервису УТ при добавлении товара в корзину: получаем актуальный остаток в реальном времени и показываем пользователю. Полный обмен (с номенклатурой) — раз в ночь.
HTTP-сервис УТ возвращает JSON с остатком за 150–300 мс. На высоконагруженных страницах результат кешируется на 60 секунд.







