Настройка мультискладового обмена 1С и 1С-Битрикс
Мультискладовый учёт актуален для магазинов с несколькими точками хранения: центральный склад, региональные склады, торговые точки с собственными запасами. Покупатель из Екатеринбурга должен видеть остатки склада в своём регионе, а не суммарный остаток по всем площадкам — это влияет как на корректность информации, так и на стоимость доставки.
Предварительные условия
Для работы мультискладового учёта в Битрикс требуется редакция «Малый бизнес» или выше. В «Старте» управление складами недоступно — есть только один виртуальный склад.
В 1С должен быть включён учёт по складам:
- УТ 11:
Администрирование → Склад и доставка → Несколько складов: Да - УТ 10:
Сервис → Настройка параметров учёта → Складской учёт → Вести учёт по складам
Настройка складов и XML-идентификаторов
В 1С каждый склад имеет уникальный идентификатор (GUID). В Битрикс каждый склад имеет поле «Внешний код (XML ID)». Совпадение этих значений — условие корректного распределения остатков:
Каталог → Склады → [склад] → Внешний код (XML ID) = GUID склада из 1С
Как получить GUID склада из 1С: в конфигураторе, либо через запрос ВЫБРАТЬ Ссылка.УникальныйИдентификатор ИЗ Справочник.Склады. Можно также взять из XML-файла обмена в теге <ИдСклада>.
Показ остатков по конкретному складу в карточке товара
Если покупатель должен видеть «в наличии в Москве: 5 шт., в Екатеринбурге: 12 шт.» — кастомная доработка компонента карточки товара. Данные берутся из \Bitrix\Catalog\StoreProductTable:
$storeRests = \Bitrix\Catalog\StoreProductTable::getList([
'filter' => ['=PRODUCT_ID' => $productId],
'select' => ['AMOUNT', 'STORE_ID', 'STORE.TITLE', 'STORE.ADDRESS'],
'order' => ['STORE.TITLE' => 'ASC'],
])->fetchAll();
foreach ($storeRests as $rest) {
if ($rest['AMOUNT'] > 0) {
echo $rest['STORE_TITLE'] . ': ' . $rest['AMOUNT'] . ' шт.';
}
}
Привязка склада к службе доставки
Связка «склад → зона доставки» решает вопрос откуда везти. Если покупатель из Екатеринбурга — предложить доставку с екатеринбургского склада с коротким сроком, а не с московского с 5-дневным транзитом.
Реализация в двух вариантах:
- Автоматически по региону покупателя — при определении региона по IP или выбору покупателем города, приоритетный склад берётся из справочника «склад → регионы обслуживания»
- Через выбор пункта самовывоза — каждый пункт = склад, покупатель явно выбирает откуда забрать
Отчётность по мультискладу
Менеджерам часто нужен сводный отчёт: какие товары есть только на одном складе, каких нет нигде. Базовый запрос:
SELECT
e.ID, e.NAME,
SUM(sp.AMOUNT) as total_amount,
COUNT(DISTINCT sp.STORE_ID) as stores_count
FROM b_iblock_element e
LEFT JOIN b_catalog_store_product sp ON sp.PRODUCT_ID = e.ID
WHERE e.IBLOCK_ID = :iblock_id
GROUP BY e.ID, e.NAME
ORDER BY total_amount ASC;
Сроки настройки
Настройка мультискладового обмена с привязкой XML-идентификаторов — 1 день. С кастомным показом остатков по складам и привязкой к зонам доставки — 2–4 дня.







