Настройка виконання властивостей товарів з 1С в 1С-Bitrix
Властивості товарів (реквізити карточки) передаються з 1С в Bitrix в блоці <СвойстваТовара> файлу import.xml. Це одна з найчастіше потребуючих настройки частин обміну: в 1С та Bitrix структура даних різна, та автоматичне сопоставлення працює не завжди коректно.
Структура властивостей в CommerceML
В import.xml властивості товара виглядають так:
<Товар>
<Ид>GUID</Ид>
<ЗначенияСвойств>
<ЗначениеСвойства>
<ИдСвойства>GUID-свойства</ИдСвойства>
<Значение>Червоний</Значение>
</ЗначениеСвойства>
</ЗначенияСвойств>
</Товар>
Класифікатор властивостей (що за властивість, тип даних, допустимі значення) передається на початку import.xml в блоці <Свойства>. При першому обміні Bitrix створює властивості автоматично — якщо вони не існують.
Маппінг властивостей
В адміністративній частині Bitrix: Каталог → Настройки обміну з 1С → Сопоставлення властивостей. Тут визначається, в яку властивість інфоблока Bitrix потрапляє кожна властивість з 1С.
Сопоставлення відбувається за XML_ID властивості інфоблока: при створенні властивості автоматично в поле XML_ID записується GUID властивості з 1С. Якщо властивість уже існує — потрібно вручну заповнити XML_ID у настройках властивості інфоблока.
Для перегляду та редагування: Інфоблоки → [потрібний інфоблок] → Властивості → XML_ID кожної властивості.
Типи даних та їх зберігання
| Тип в 1С | Властивість інфоблока Bitrix | Таблиця |
|---|---|---|
| Строка | Тип «Строка» | b_iblock_element_prop_s{N} |
| Число | Тип «Число» | b_iblock_element_prop_s{N} |
| Булево (Так/Ні) | Тип «Список» (Y/N) або «Прапор» | b_iblock_element_prop_s{N} |
| Довідник (список значень) | Тип «Список» | b_iblock_property_enum |
Довідники (списки значень) — окрема історія. У 1С вони зберігаються як перечисління з GUID. У Bitrix — як b_iblock_property_enum з XML_ID. При першому обміні Bitrix створює елементи перечисління автоматично. При наступних — сопоставляє за XML_ID.
Множинні властивості
Якщо властивість у 1С може мати кілька значень (наприклад, «Застосовність» — список моделей, для яких підходить запчастина), у Bitrix створюємо множинну властивість. В b_iblock_property поле MULTIPLE = Y. Значення зберігаються в b_iblock_element_prop_m{N}.
При обміні кілька тегів <ЗначениеСвойства> з одним <ИдСвойства> — Bitrix повинен обробляти їх як множинне значення. Якщо стандартний імпорт цього не робить — доповнюємо через OnIBlockChange.
Постобробка через події
Якщо стандартного маппінгу недостатньо (наприклад, потрібно перетворити значення — перевести артикул у верхній регістр, доповнити опис), використовуємо подію:
AddEventHandler('iblock', 'OnBeforeIBlockElementUpdate', function(&$arFields) {
if ($arFields['IBLOCK_ID'] == CATALOG_IBLOCK_ID) {
// Кастомна обробка перед збереженням
}
});
Властивості торгових пропозицій
Властивості SKU (колір, розмір — ті, за якими формуються торгові пропозиції) передаються в offers.xml, а не в import.xml. Їхня структура аналогічна, маппінг настроюється для інфоблока торгових пропозицій окремо.
Що перевірити при настройці
-
XML_IDвластивості інфоблока збігається з GUID властивості з 1С - Тип властивості в Bitrix відповідає типу даних з 1С
- Для довідників елементи перечисління мають правильні
XML_ID - Для множинних властивостей встановлено прапор
MULTIPLE = Y







