Налаштування мультискладового обміну 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 дні.







