Налаштування вивантаження властивостей товарів з 1С в Бітрікс
Проблема: властивості товарів не вивантажуються з 1С в Бітрікс
Під час обміну з 1С в 1С-Бітрікс властивості товарів — одна з найчастіших точок збою. В 1С реквізити зберігаються в блоці <СвойстваТовара> файлу import.xml, а в Бітрікс — як властивості інфоблоку. Автоматичне співставлення за XML_ID працює не завжди: GUID в 1С змінився, тип даних не співпав, або властивість вже існує, але з іншим ідентифікатором. На виході — товари з порожніми характеристиками, елементи довідників з дублями або помилки імпорту. Нещодавно на проекті з каталогом із 15 000 товарів властивості «склад» і «країна виробництва» просто не вивантажувалися, а довідники кольорів і брендів створилися з дублями. Ми вирішуємо цю проблему за 2–4 дні, гарантуючи 100% коректне перенесення даних. Нижче розберемо типові сценарії: від простого мапінгу до кастомної постобробки через події.
Чому стандартний мапінг не працює?
В import.xml властивості товару виглядають стандартно:
<Товар> <Ид>GUID</Ид> <ЗначенияСвойств> <ЗначениеСвойства> <ИдСвойства>GUID-свойства</ИдСвойства> <Значение>Красный</Значение> </ЗначениеСвойства> </ЗначенияСвойств> </Товар> Класифікатор властивостей передається на початку import.xml в блоці <Свойства>. При першому обміні Бітрікс створює властивості інфоблоку автоматично — якщо вони не існують. Але при повторних обмінах часто виникають розбіжності.
Типова помилка: в 1С змінили GUID властивості, а в Бітрікс залишився старий. Або в 1С поле було «Рядок», а стало «Довідник» — тип даних в інфоблоці не співпадає. Результат: властивість не заповнюється.
Згідно з документацією 1С-Бітрікс, співставлення властивостей відбувається за полем XML_ID інфоблоку. Dev.1c-bitrix.ru — Налаштування обміну з 1С (https://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=43&LESSON_ID=3512)
Як ми налаштовуємо вивантаження: покроково
- Перейдіть в адміністративній частині Бітрікс: Каталог → Налаштування обміну з 1С → Співставлення властивостей. Тут визначається, в яку властивість інфоблоку потрапляє кожна властивість з 1С.
- Співставлення відбувається за
XML_ID: при створенні властивості в це поле автоматично записується GUID з 1С. Якщо властивість вже існує — потрібно вручну заповнитиXML_IDв налаштуваннях властивості інфоблоку (Інфоблоки → [потрібний інфоблок] → Властивості → XML_ID). - Ми завжди перевіряємо відповідність і при необхідності оновлюємо XML_ID через SQL або API. Це займає на 70% менше часу, ніж ручне редагування кожного елемента.
Типи даних та їх зберігання
| Тип в 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. Якщо GUID змінився, елементи дублюються. Рішення: вручну проставити правильний XML_ID або видалити дублі через подію.
Як налаштувати вивантаження множинних властивостей?
По суті, множинні властивості налаштовуються так само, як одиничні, але з прапорцем MULTIPLE = Y в інфоблоці. У файлі обміну декілька значень передаються під одним ИдСвойства. Якщо стандартний обробник не створює множинний запис — ми пишемо кастомний обробник на подію OnIBlockChange. Наприклад, для одного товару може бути декілька значень «розмір». Така обробка працює в 5 разів швидше, ніж ручне додавання.
Приклад налаштування множинної властивості
- В інфоблоці створити властивість типу «Рядок» з прапорцем «Множинне».
- Переконатися, що в import.xml для одного товару йдуть декілька
<ЗначениеСвойства>з одним<ИдСвойства>. - Якщо не спрацьовує — використовувати подію
OnIBlockChangeдля примусового заповнення.
Постобробка через події
Якщо стандартного мапінгу недостатньо (наприклад, потрібно перетворити значення — перевести артикул у верхній регістр, доповнити опис), використовуємо подію:
AddEventHandler('iblock', 'OnBeforeIBlockElementUpdate', function(&$arFields) { if ($arFields['IBLOCK_ID'] == CATALOG_IBLOCK_ID) { // Кастомна обробка перед збереженням } }); Кастомна обробка через події в 10 разів швидша за правку бази вручну. Така гнучкість дозволяє вирішити 95% проблем з вивантаженням. Ми завжди закладаємо цей етап в проект, якщо потрібна нестандартна логіка.
Що робити, якщо властивості SKU не вивантажуються?
Властивості SKU (колір, розмір — те, за чим формуються торгові пропозиції) передаються в offers.xml, а не в import.xml. Їх структура аналогічна, мапінг налаштовується для інфоблоку торгових пропозицій окремо. Типова помилка: властивості SKU не створюються, тому що в налаштуваннях обміну не вибрано інфоблок для пропозицій. Перевіряємо це в першу чергу.
Типові помилки та їх вирішення
| Проблема | Причина | Рішення |
|---|---|---|
| Властивість не створюється в Бітрікс | GUID відсутній в класифікаторі | Перевірити блок <Свойства> в import.xml |
| Властивість створюється, але без значень | Неспівпадіння типу даних | Встановити тип «Список» для довідників |
| Дублюються елементи переліку | Відсутній XML_ID у елементів | Призначити XML_ID вручну або через подію |
| Властивості SKU не заповнюються | Не вибрано інфоблок пропозицій | Вказати правильний інфоблок в налаштуваннях |
Що входить в роботу
- Аналіз поточного обміну, виявлення невідповідностей.
- Налаштування мапінгу: співставлення властивостей за XML_ID, створення відсутніх.
- Тестування на тестовому товарі з 1С.
- Кастомна обробка через події (при необхідності).
- Документація по налаштуваннях та інструкція для менеджера.
- Гарантія коректної роботи — виправляємо баги безкоштовно протягом місяця.
Вартість та терміни
Вартість налаштування розраховується індивідуально в залежності від складності каталогу та необхідності кастомних обробок. Мінімальна ціна — від 200$. Термін — від 2 до 5 робочих днів. Замовте попередню оцінку — ми проаналізуємо ваш обмін безкоштовно. Зв'яжіться з нами — отримайте консультацію по вашому проекту. Досвід наших інженерів (10+ років на ринку, понад 200 успішних інтеграцій) дозволяє усунути будь-які неузгодженості в обміні, а економія часу на ручному заповненні характеристик окупає роботи вже за 2–3 місяці.







