Налаштування обміну даними 1С і 1С-Бітрікс через CommerceML
CommerceML 2.08 — стандарт обміну між 1С та 1С-Бітрікс. XML-формат описує структуру каталогу, характеристики товарів, ціни, залишки та замовлення. Розуміння структури файлів критично для діагностики проблем і тонкого налаштування — більшість збоїв виникають саме через неправильне розуміння того, що куди потрапляє.
Структура файлів CommerceML
Повний обмін складається з кількох файлів, що передаються послідовно:
-
import0_1.xml— структура каталогу: групи, властивості, типи характеристик, класифікатори -
import0_2.xml,import0_3.xml... — товари (розбиті по N штук при пакетному вивантаженні) -
offers0_1.xml— пропозиції: ціни по видах та залишки по складах -
orders.xml— замовлення з сайту в 1С (напрямок від сайту до 1С)
Важливо розуміти: import*.xml та offers*.xml — різні потоки. Каталог можна синхронізувати раз на добу, а залишки та ціни — кожні 15 хвилин, налаштувавши окремі регламентні завдання в 1С.
Налаштування параметрів обміну в 1С-Бітрікс
Налаштування → Налаштування продуктів → Інтернет-магазин:
- Кількість елементів у файлі: 1000–5000 для великих каталогів, щоб уникнути таймаутів PHP при розборі одного великого XML
- Використовувати zip-архівування: знижує обсяг передачі в 3–5 разів, обов'язково для повільних каналів або віддаленого хостингу
- Період обміну замовленнями: «з дати останнього обміну» — оптимальний варіант, не тягне повторно старі замовлення
- Використовувати торгові пропозиції (SKU): увімкнути, якщо товари мають варіанти за характеристиками
Маппінг властивостей
Ключовий крок — відповідність властивостей номенклатури 1С властивостям елементів інфоблоку на сайті. При першому обміні Бітрікс створює властивості автоматично з кодами виду PROP_12345 або латинізованими іменами з 1С. Це веде до нечитабельної структури:
PROP_15234 = "Колір"
PROP_15235 = "Розмір"
PROP_15236 = "Матеріал"
Правильний підхід: до першого обміну створити властивості вручну з читабельними кодами (COLOR, SIZE, MATERIAL), а в обробнику події OnIBlockElementBeforeAdd прописати маппінг з автогенерованих імен у потрібні коди.
Авторизація для обміну
CommerceML-обмін працює через HTTP Basic Auth. Користувач для обміну повинен:
- Входити до групи з правами на запис до інфоблоку каталогу
- Мати доступ до компоненту обміну (
/bitrix/admin/1c_exchange.php) - Не бути заблокованим (часта причина раптових збоїв після ротації паролів)
Створити окремого користувача лише для обміну — не використовувати обліковий запис адміністратора.
Перевірка коректності обміну
Після налаштування — перевірити журнал обміну в Бітрікс:
Магазин → Журнал обміну з 1С
Помилки «Не знайдено властивість» або «Тип даних не збігається» вказують на проблеми маппінгу. Помилка HTTP 500 при завантаженні файлу — дивитися PHP error_log та /bitrix/modules/iblock/tools/. Повна відсутність записів у журналі — обмін не доходить до сайту, перевіряти мережеві налаштування та авторизацію.
Терміни налаштування
Налаштування обміну через CommerceML для стандартної конфігурації УТ — 4–8 годин. З нестандартними властивостями, маппінгом характеристик та налаштуванням торгових пропозицій — 1–2 дні.







