Как выгрузить характеристики номенклатуры из 1С УТ 10.3 в XML: подробное руководство

Программист 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При интеграции 1С:Управление торговлей 10.3 с интернет-магазинами (например, на базе OpenCart или Bitrix) часто возникает проблема, когда основные товары выгружаются корректно, а их характеристики (размеры обуви, цвета одежды и т.д.) отсутствуют в файлах import.xml или offers.xml. Рассмотрим подробно, почему это происходит и как настроить систему для корректной передачи данных.

Проверка базовых настроек модуля обмена

В первую очередь нам необходимо убедиться, что используемый модуль обмена (часто это стандартный модуль от Битрикс версии 6.x) настроен на работу с характеристиками. Разберем основные параметры, которые должны быть активированы.

Проанализируем вкладку настроек выгрузки товаров. В типовых решениях и модуле Битрикс существует флаг "Выгружать характеристики". Если этот флаг не установлен, система будет игнорировать подчиненный справочник характеристик и выгружать только "карточку-родитель". В некоторых редакциях конфигурации "Управление продажами" (на базе УТ 10.3) эта галка может находиться в дополнительных настройках дерева групп или в параметрах отбора.

Если в вашем интерфейсе отсутствует явная галка, это может означать использование устаревшей версии модуля или специфическую модификацию конфигурации. В таком случае проверим версию протокола CommerceML. Рассмотрим два варианта:

  1. CommerceML 2.05: Характеристики выгружаются как торговые предложения в файл offers.xml. Это наиболее стабильный вариант для большинства модулей интеграции OpenCart.
  2. CommerceML 2.07: Структура файла меняется, и характеристики могут быть упакованы в расширенные блоки. Если ваш парсер на сайте не поддерживает эту версию, данные не будут распознаны.

Анализ наличия цен и остатков по характеристикам

Самая распространенная техническая причина, по которой характеристики "пропадают" из выгрузки — это алгоритм фильтрации модуля. Модуль обмена Битрикс зачастую не включает характеристику в offers.xml, если по ней нет актуальных данных для продажи. Выясним это, проверив следующие моменты:

Остатки на складах: Если в настройках обмена включена опция "Выгружать только товары, имеющиеся на складах", то характеристики с нулевым остатком будут проигнорированы. Проверим отчет "Остатки товаров на складах" с детализацией до характеристики.

Цены номенклатуры: Это критически важный момент. В 1С УТ 10.3 цена может быть установлена на "Номенклатуру" в целом, а может быть детализирована до "Характеристики номенклатуры". Если в регистре сведений ЦеныНоменклатуры цена задана только для общего объекта, модуль обмена может посчитать, что конкретная характеристика (например, "размер 42") не имеет цены, и исключит её из выгрузки offers.xml.

Проанализируем ситуацию через консоль запросов, выполнив запрос к регистру цен:


ВЫБРАТЬ
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры,
    ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
ГДЕ
    ЦеныНоменклатурыСрезПоследних.Номенклатура = &ВыбраннаяНоменклатура

Если в результате запроса поле ХарактеристикаНоменклатуры пустое, значит цена установлена на товар в целом, и вам необходимо переопределить цены для каждой характеристики отдельно, либо изменить логику модуля обмена.

Проверка ведения учета по характеристикам в конфигурации

Иногда проблема кроется в самой структуре данных 1С. Выясним, включен ли учет по характеристикам для конкретных видов номенклатуры. Посмотрим на настройки справочника Номенклатура:

  1. Откроем карточку товара.
  2. Проверим наличие флага "Вести учет по характеристикам".
  3. Перейдем в справочник Виды номенклатуры. Убедимся, что для данного вида разрешено использование характеристик.

В модифицированных конфигурациях (как в вашем случае "Управление продажами" 1.2) разработчики могли изменить стандартные запросы модуля. Рассмотрим, как программно проверить, видит ли система характеристики. В модуле обмена за формирование списка характеристик обычно отвечает функция, собирающая данные из регистра СведенияНоменклатуры или ТоварыНаСкладах.

Использование отладки для поиска ошибки

Если визуальный осмотр настроек не помог, перейдем к использованию отладчика. Нам нужно найти место в коде модуля обмена, где формируется XML-структура торговых предложений. Поищем в модуле обработки обмена текст СтандартныеПредложения или ХарактеристикиТовара.

Рассмотрим пошагово процесс отладки:

  1. Установим точку останова в процедуре, отвечающей за выгрузку offers.xml.
  2. Запустим обмен и дождемся момента формирования структуры характеристик.
  3. Проанализируем таблицу значений, которая передается в функцию выгрузки. Если таблица пуста, значит, запрос к базе данных отработал некорректно или наложились фильтры (по остаткам, ценам или группам).

Часто в коде модуля Битрикс встречается условие, подобное этому:


Если НЕ ХарактеристикиИспользуются Тогда
    Продолжить;
КонецЕсли;

Проверьте значение переменной ХарактеристикиИспользуются. Она инициализируется на основе метаданных и настроек конкретного объекта номенклатуры.

Особенности интеграции с OpenCart

Важно помнить, что даже если 1С выгружает характеристики корректно в XML, OpenCart "из коробки" не всегда понимает, как их отобразить. Разберем, как это работает на стороне сайта:

Файл offers.xml содержит Торговые предложения. В терминологии OpenCart это чаще всего "Опции" или "Связанные опции". Чтобы размеры обуви из 1С превратились в выбираемые кнопки на сайте, на стороне OpenCart должен быть установлен модуль (например, Exchange.1C или аналоги), который умеет парсить блок ХарактеристикиТовара из CommerceML и создавать на их основе Options.

Если характеристики попадают в import.xml как свойства (Attributes), они будут отображены просто текстом в таблице характеристик, и выбрать размер при покупке будет невозможно. Проанализируйте ваш XML-файл вручную в текстовом редакторе. Если вы видите там блоки <Характеристика> с названиями ваших размеров, значит 1С работает верно, и проблему нужно искать в настройках импорта на стороне OpenCart.

Резюме и рекомендации

Подводя итог, для успешной выгрузки характеристик из УТ 10.3 выполним следующие действия:

  1. Убедимся, что в базе 1С для товара действительно созданы характеристики и по ним есть ненулевые остатки и установленные цены.
  2. В настройках обмена (модуль Битрикс) установим версию CommerceML 2.05.
  3. Проверим наличие флага выгрузки характеристик в настройках отбора.
  4. Если используется модифицированная конфигурация, проверим через отладчик, проходит ли номенклатура проверку на использование характеристик (ВестиУчетПоХарактеристикам).

Соблюдение этих шагов позволит вам добиться появления данных в XML и обеспечить корректную работу интернет-магазина с размерными сетками и другими вариативными параметрами товаров.

← На главную