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







