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

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

Переход с устаревшей конфигурации 1С:Управление торговлей 10.3 на современную 11.4 часто сопровождается трудностями в интеграции с интернет-магазинами. Одной из наиболее острых проблем является выгрузка комплектов. Если в старой версии за счет кастомизации обмен работал корректно, то в новой версии 11.4 пользователи часто обнаруживают, что наборы превращаются на сайте в обычные товары без состава. Рассмотрим подробно, почему это происходит и как настроить корректную передачу данных.

***

Разберемся в терминологии: Наборы в 1С vs Комплекты в Битрикс

Прежде чем приступать к техническим настройкам, проанализируем разницу в логике двух систем. Это критически важно, так как именно здесь кроется корень большинства ошибок обмена.

В 1С:Управление торговлей 11.4 основным объектом является Набор номенклатуры. Это виртуальная сущность, которая не хранится на складе как отдельная коробка, а собирается в момент оформления заказа или отгрузки. Для набора в 1С настраиваются Варианты комплектации, где указывается список комплектующих.

В 1С-Битрикс ситуация сложнее, там существует два типа составных товаров:

  1. Набор: это маркетинговый инструмент. Это просто список товаров, которые предлагаются вместе (часто со скидкой). Остатки набора не зависят жестко от остатков комплектующих на стороне сайта в реальном времени.
  2. Комплект: это товар, физическое наличие которого на сайте напрямую зависит от наличия его составляющих. Если один из товаров комплекта закончился, комплект становится недоступным для покупки.

Проблема в том, что стандартный модуль обмена часто не знает, в какую именно сущность Битрикса нужно преобразовать Набор номенклатуры из 1С, и выгружает его как обычный Товар (Item).

***

Шаг 1: Настройка вида номенклатуры в 1С

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

***

  1. Зайдем в справочник Виды номенклатуры.
  2. Для типа номенклатуры выберем значение Набор.
  3. В настройках укажите способ расчета цены. Для корректной выгрузки на сайт рекомендуется выбирать вариант, когда цена набора складывается из цен комплектующих, либо назначается на набор в целом, но при этом у комплектующих тоже должны быть цены.
  4. Проверьте, чтобы в карточке набора был заполнен список комплектующих в соответствующей вкладке.

***

Шаг 2: Использование официального модуля обмена от Битрикс

Выясним причину, по которой штатная синхронизация «из коробки» может давать сбой. Встроенный в УТ 11.4 функционал обмена с сайтами ориентирован на универсальный формат CommerceML, который не всегда корректно интерпретирует наборы.

Рекомендуем установить отдельный модуль обмена от компании Битрикс (версии 7.x и выше). После установки модуля в интерфейсе 1С появится расширенное окно настроек обмена. Рассмотрим ключевые настройки:

В настройках выгрузки номенклатуры найдите раздел, отвечающий за наборы и комплекты. Там необходимо установить флаг "Выгружать наборы номенклатуры". В последних версиях модуля можно выбрать, как именно интерпретировать набор 1С на стороне сайта: как "Набор" или как "Комплект".

Шаг 3: Технический анализ XML-файла (import.xml)

Если программист на стороне сайта утверждает, что «данные не приходят», нам нужно проверить содержимое файла обмена. Рассмотрим структуру узла, который отвечает за комплектующие. В корректном файле import.xml для товара-набора должен присутствовать блок Комплектующие.

Пример структуры (концептуально):


<Товар>
    <Ид>ИД_НАБОРА</Ид>
    <Наименование>Набор кухонный</Наименование>
    <Комплектующие>
        <Комплектующее>
            <Ид>ИД_ТОВАРА_1</Ид>
            <Наименование>Стол</Наименование>
            <Количество>1</Количество>
        </Комплектующее>
        <Комплектующее>
            <Ид>ИД_ТОВАРА_2</Ид>
            <Наименование>Стул</Наименование>
            <Количество>4</Количество>
        </Комплектующее>
    </Комплектующие>
</Товар>

Если в вашем файле этого блока нет, значит, модуль обмена 1С «схлопывает» набор до обычного товара. В этом случае потребуется либо доработка модуля обмена через Расширения конфигурации, либо использование сторонних модулей.

Шаг 4: Использование специализированных решений (BXmaker и аналоги)

Как было отмечено в обсуждении на форуме, существует проверенное решение — модуль BXmaker. Комплекты из 1с. Рассмотрим, какие задачи он решает:

Посмотрим на ситуацию со стороны программиста Битрикс: если стандартный компонент catalog.element не видит состав набора, ему приходится писать кастомный код для парсинга XML. Использование готового модуля избавляет от этой необходимости, так как он расширяет стандартную процедуру импорта catalog_import_setup.php.

Проблема цен и остатков: на что обратить внимание

Проанализируем еще один важный момент. Наборы в УТ 11.4 не имеют собственного остатка на складе. В Битриксе же для отображения кнопки "Купить" товар должен иметь положительный остаток (если не включена разрешенная продажа при отсутствии товара).

Существует два пути решения проблемы остатков:

  1. На стороне 1С: Написать расширение, которое перед выгрузкой будет виртуально рассчитывать остаток набора (как Мин(ОстатокКомплектующего / КоличествоВНаборе)) и записывать его в файл обмена.
  2. На стороне Битрикса: Настроить компонент так, чтобы он игнорировал собственный остаток набора и анализировал остатки входящих в него товаров. Это более правильный путь с точки зрения актуальности данных.

Подводя итог, можно сказать: чтобы комплекты из 1С:УТ 11.4 успешно выгружались на Битрикс, необходимо обеспечить соответствие Вида номенклатуры, использовать актуальный модуль обмена от разработчиков Битрикс и убедиться, что в XML-пакете передается узел Комплектующие. Если штатные средства не справляются с вашими специфическими требованиями (например, сложная логика цен), стоит рассмотреть специализированные модули из Маркетплейса Битрикс.

← На главную