При настройке стандартного обмена между 1С:Предприятие и 1С-Битрикс специалисты часто сталкиваются с ситуацией, когда структура каталога и торговые предложения (SKU) создаются корректно, но значения конкретных характеристик (например, «Цвет» или «Размер») остаются пустыми. В административной панели Битрикса мы видим созданный «Пакет предложений» и сами свойства в инфоблоке, однако внутри конкретного предложения поля не заполнены. Проанализируем причины этой проблемы и разберем пошагово методы ее решения.
Прежде всего, нам необходимо понять, как данные хранятся в самой 1С. Одной из самых частых причин отсутствия значений является то, что характеристики заданы в 1С только в виде Наименования, а не в виде Дополнительных реквизитов. Выясним разницу: когда мы создаем характеристику, 1С позволяет просто написать строку «Красный, 42». Для Битрикса эта строка является просто названием объекта, но не конкретными значениями свойств Цвет и Размер.
Чтобы данные выгружались корректно, выполним следующие действия в 1С:
Если в 1С данные заполнены только в поле «Наименование», модуль обмена просто не найдет структурированной информации для заполнения тегов свойств в XML-файле.
Для диагностики проблемы всегда полезно выполнить выгрузку в локальный каталог и изучить содержимое файлов. Рассмотрим структуру файла offers.xml, который отвечает за торговые предложения. В этом файле должна присутствовать секция <Свойства> внутри каждого предложения <Предложение>. Если вы видите, что тег <Значение> пуст, например:
<Свойство>
<Ид>743a6ace-32d1-11eb-a2c9-d8cb8a10ec11</Ид>
<Значение></Значение>
</Свойство>
Это прямое свидетельство того, что модуль обмена на стороне 1С не смог сопоставить данные. Если же в секции <СвойстваОфферов> (метаданные) описания есть, а в самих предложениях значений нет, стоит обратить внимание на версию протокола CommerceML (CML). Попробуем переключить версию выгрузки с 2.05 на 2.07 или наоборот в настройках узла обмена в 1С. В разных версиях протокола и модуля обмена механизм формирования узла <ЗначенияСвойств> может отличаться.
Рассмотрим понятие «Справочник», которое часто упоминается в контексте обмена. В терминологии Битрикса это означает работу с Highload-инфоблоками (HL-блоками). Рассмотрим ситуацию: в 1С свойство «Цвет» — это не просто текст, а ссылка на другой справочник. В этом случае при выгрузке передается не слово «Красный», а уникальный идентификатор (GUID) этого цвета.
Чтобы Битрикс понял эти данные, выполним настройку:
Важный момент: если в Битриксе свойство уже создано вручную с типом «Список», а 1С пытается отправить данные как для справочника, произойдет конфликт типов, и значения не будут записаны. В такой ситуации рекомендуется удалить свойство в Битриксе и позволить модулю обмена создать его заново с правильными параметрами.
Выясним причину, по которой Битрикс может игнорировать входящие данные, даже если они есть в XML. Вся синхронизация строится на внешних кодах — XML_ID. Каждое свойство (Цвет, Размер) имеет свой уникальный код. Посмотрим на это глазами системы: если в XML-файле свойство имеет ID 12345, а в Битриксе у свойства «Цвет» прописан код color_prop, система решит, что это разные свойства, и не запишет значение.
Проанализируем настройки свойств в Битриксе:
<Ид> из файла offers.xml.Иногда проблема оказывается чисто визуальной. Данные в базе Битрикса есть, но они не отображаются в карточке товара или предложения. Это происходит потому, что в Битриксе настраиваемый интерфейс. Проверим это:
В современных версиях модуля обмена от Битрикс для 1С существует расширенная таблица настройки свойств. Разберем, на что там обратить внимание. В таблице для каждого свойства можно указать флаг «Не выгружать в предложения». Проанализируем это: если по ошибке этот флаг установлен для характеристики, она будет выгружаться в основной инфоблок товаров, где для нее нет места, и полностью игнорироваться в инфоблоке предложений.
Также проверим настройку «Выгружать значения свойств в предложения». Она должна быть активна. В некоторых конфигурациях модуля 1С эта галка находится на вкладке «Предложения» или «Дополнительные настройки».
Если после всех проверок характеристики все еще остаются пустыми, рекомендуем выполнить «чистую» выгрузку:
XML_ID, что в 90% случаев решает проблему рассинхронизации.Помните, что ключевым фактором успеха является использование механизма Дополнительных реквизитов в 1С. Без них характеристики остаются для системы обычным текстом, который невозможно автоматически распределить по разным полям базы данных.