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

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет IT и автоматизация бизнеса
← На главную

При организации обмена данными между 1С:Управление торговлей 10.3 (или УПП 1.3) и сайтом на платформе 1С-Битрикс разработчики часто сталкиваются с ситуацией, когда стандартные реквизиты (например, артикул или наименование) выгружаются корректно, а дополнительные характеристики, такие как «Бренд», «Размер» или «Материал», на сайте не появляются. При этом в самом XML-файле данные могут присутствовать, но Битрикс их «не видит» или не знает, куда их сопоставить.

В этой статье мы подробно разберем механику работы стандарта CommerceML 2, выясним причину игнорирования свойств и научимся правильно передавать габариты товаров для торгового каталога.

Анализ структуры обмена: почему обычные узлы не работают

Рассмотрим ситуацию, когда программист пытается добавить данные напрямую в узел товара, например, так:


<Товар>
    <Артикул>тест</Артикул>
    <Бренд>Адидас</Бренд>
    <Размер>10</Размер>
</Товар>

Проанализируем этот подход. Тег Артикул является стандартным для схемы CommerceML, поэтому Битрикс его распознает. Однако теги Бренд и Размер не являются частью базовой спецификации для узла Товар. Система обмена Битрикса просто проигнорирует неизвестные ей теги. Чтобы сайт «увидел» эти данные, они должны передаваться либо как ЗначенияРеквизитов, либо как ЗначенияСвойств. Причем для работы со свойствами (фильтры, характеристики) критически важно соблюдать двухэтапную структуру передачи.

Шаг 1: Объявление свойств в Классификаторе

Выясним главную причину проблемы: Битрикс не создаст свойство «на лету» просто потому, что увидел его в карточке товара. Сначала свойство должно быть описано в секции Классификатор, которая обычно находится в начале файла import.xml. Здесь мы сообщаем сайту, какие типы данных мы будем передавать и какие у них Ид (GUID).

Рассмотрим пример правильного описания свойства в классификаторе:


<Классификатор>
    <Свойства>
        <Свойство>
            <Ид>c5c6d005-7bda-4c91-9418-fb3db83d7c35</Ид>
            <Наименование>Производитель</Наименование>
            <ТипыЗначений>
                <ТипЗначений>
                    <Тип>Справочник</Тип>
                    <Описание>Справочник ссылка: Значения свойств объектов</Описание>
                    <ВариантыЗначений>
                        <ВариантЗначения>
                            <Ид>4597a7b4-3b4a-11e5-8025-001e67078c59</Ид>
                            <Наименование>Atek Makina</Наименование>
                        </ВариантЗначения>
                    </ВариантыЗначений>
                </ТипЗначений>
            </ТипыЗначений>
        </Свойство>
    </Свойства>
</Классификатор>

Важный момент: Если свойство имеет тип «Справочник» (как «Бренд»), то в классификаторе должны быть перечислены все возможные значения. Если тип «Строка» или «Число», секция ВариантыЗначений не требуется.

Шаг 2: Передача значений свойств в карточке товара

После того как мы описали свойство в классификаторе, мы можем сослаться на него в блоке конкретного товара. Мы используем Ид свойства из классификатора и указываем конкретное значение.

Разберем, как это выглядит в XML для товара:


<Товар>
    <Ид>755860ea-7d06-11df-8e3e-00034732d068</Ид>
    <Наименование>Стенд для правки дисков</Наименование>
    <ЗначенияСвойств>
        <ЗначенияСвойства>
            <Ид>c5c6d005-7bda-4c91-9418-fb3db83d7c35</Ид>
            <Значение>4597a7b4-3b4a-11e5-8025-001e67078c59</Значение>
        </ЗначенияСвойства>
    </ЗначенияСвойств>
</Товар>

Обратите внимание, что в поле Значение для справочных свойств передается не текст «Atek Makina», а именно Ид этого значения, ранее описанный в классификаторе. Если свойство текстовое, то передается просто строка.

Выгрузка габаритов товара (Длина, Ширина, Высота)

Рассмотрим вторую часть вопроса: как передать габариты так, чтобы они попали в Торговый каталог Битрикса (вкладка «Параметры»). Габариты в Битриксе — это не просто свойства инфоблока, это поля складского учета.

Для их передачи чаще всего используется механизм ЗначенияРеквизитов. Посмотрим на пример заполнения в XML:


<ЗначенияРеквизитов>
    <ЗначениеРеквизита>
        <Наименование>Вес</Наименование>
        <Значение>1.5</Значение>
    </ЗначениеРеквизита>
    <ЗначениеРеквизита>
        <Наименование>Длина</Наименование>
        <Значение>500</Значение>
    </ЗначениеРеквизита>
    <ЗначениеРеквизита>
        <Наименование>Ширина</Наименование>
        <Значение>300</Значение>
    </ЗначениеРеквизита>
    <ЗначениеРеквизита>
        <Наименование>Высота</Наименование>
        <Значение>200</Значение>
    </ЗначениеРеквизита>
</ЗначенияРеквизитов>

Нюанс настройки: Чтобы эти реквизиты «сели» в нужные поля на сайте, в настройках модуля интеграции на стороне Битрикса (или в настройках внешнего модуля в 1С) необходимо указать соответствие. В последних версиях модуля обмена от Битрикс есть отдельная вкладка для сопоставления веса и габаритов.

Рекомендация по использованию модуля обмена

В типовых конфигурациях УТ 10.3 и УПП 1.3 встроенный модуль обмена часто является устаревшим и поддерживает только базовые функции CommerceML. Рассмотрим преимущества установки внешнего модуля обмена от компании Битрикс:

  1. Гибкая настройка свойств: Вы можете визуально выбрать, какие дополнительные сведения, дополнительные реквизиты или свойства характеристик должны выгружаться как свойства инфоблока.
  2. Поддержка Highload-блоков: Для справочных свойств (например, «Бренд» с картинкой) модуль умеет создавать Highload-справочники на сайте автоматически.
  3. Выгрузка характеристик: Модуль корректно преобразует «Характеристики номенклатуры» из 1С в «Торговые предложения» (SKU) на сайте, разделяя общие свойства товара и свойства конкретного предложения (размер, цвет).
  4. Управление габаритами: В модуле реализован удобный интерфейс для сопоставления полей веса и размеров, что избавляет от необходимости править код выгрузки в самой конфигурации 1С.

Итоги и чек-лист для проверки

Подведем итог. Если вы дорабатываете выгрузку программно или настраиваете стандартный модуль, проверьте следующие пункты:

  1. Наличие в классификаторе: Убедитесь, что ваше новое свойство («Бренд», «Размер») один раз описано в блоке Классификатор с уникальным Ид.
  2. Формат передачи: Проверьте, что данные передаются внутри узла ЗначенияСвойств, а не как произвольные XML-теги.
  3. Соответствие типов: Если в 1С это справочник, передавайте Ид значения. Если строка — передавайте текст.
  4. Символьные коды на сайте: После первой выгрузки зайдите в админ-панель Битрикса (Контент -> Инфоблоки -> Свойства) и убедитесь, что свойства создались. Рекомендуется вручную прописать им «Символьный код» (например, BRAND), если это не сделала 1С, для удобства работы разработчиков сайта.
  5. Единицы измерения: Для габаритов помните, что 1С может хранить их в сантиметрах, а Битрикс по умолчанию ожидает миллиметры. Проверьте этот момент в настройках модуля или при формировании XML.

Использование правильной структуры CommerceML гарантирует, что ваши данные будут корректно интерпретированы сайтом, а фильтры по брендам и размерам заработают автоматически сразу после обмена.

← На главную