Настройка обмена данными 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 дня.







