К статье
Практический материал

Торговля и Склад · 11 мин

Выгрузка товаров как предложений из 1С в Битрикс

Как настроить выгрузку товаров из 1С в 1С-Битрикс в виде торговых предложений: CommerceML, offers.xml, настройка обмена, типовые ошибки и проверка результата.

Когда каталог в 1С содержит товары с характеристиками — размерами, цветами, фасовкой, — на сайте под управлением 1С-Битрикс они должны отображаться как торговые предложения одного товара, а не как отдельные карточки. Для этого обмен настраивается так, чтобы позиции номенклатуры с характеристиками выгружались в файл предложений offers.xml, а не только в файл товаров import.xml.

Типовой обмен 1С с Битриксом работает по протоколу CommerceML. В нём товар и предложение — разные сущности: товар описывает карточку (название, описание, картинки, свойства), а предложение — конкретный вариант покупки с ценой, остатком и набором значений характеристик. Если выгрузить всё как товары, покупатель увидит дубли карточек «Футболка красная», «Футболка синяя» вместо одной карточки с выбором цвета.

Задача решается штатными средствами: модулем обмена с сайтом в 1С и настройками инфоблоков торгового каталога в Битриксе. Ниже — порядок настройки на стороне 1С, требования к структуре каталога на сайте, проверка результата и разбор типовых ошибок, из-за которых предложения не создаются или создаются некорректно.

Как устроен обмен: товары и предложения в CommerceML

При обмене 1С формирует два основных файла. Файл import.xml содержит классификатор (группы, свойства) и каталог товаров. Файл offers.xml содержит предложения: для каждого предложения указывается идентификатор, связь с товаром, цены, остатки и значения характеристик. Битрикс при импорте раскладывает эти данные по двум инфоблокам: товары — в инфоблок каталога, предложения — в инфоблок торговых предложений (SKU).

Связь предложения с товаром в CommerceML строится через составной идентификатор вида GUID_товара#GUID_характеристики. Часть до символа «#» ссылается на товар в import.xml, часть после — уникально определяет конкретный вариант. Если характеристик у позиции нет, выгружается простой идентификатор без решётки, и такая позиция на сайте становится простым товаром без вариантов.

Из этого следует главное практическое правило: чтобы позиция попала в offers.xml как предложение с вариантами, в 1С у неё должна быть заведена характеристика. Номенклатура без характеристик выгружается в предложения как «простое предложение» — оно тоже попадает в инфоблок SKU, но без значений свойств вариации.

Подготовка номенклатуры в 1С

Сначала проверьте, что в 1С включён учёт по характеристикам. В «1С:Управление торговлей» и «1С:Комплексная автоматизация» это делается в настройках учёта номенклатуры: нужно включить использование характеристик номенклатуры, а в виде номенклатуры указать, что характеристики используются — общие для вида или индивидуальные для товара.

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

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

Настройка узла обмена с сайтом в 1С

Откройте настройку обмена с сайтом (в типовых конфигурациях — раздел «Администрирование» → «Обмен с сайтами» либо «CRM и продажи» → «Обмен с сайтом», название зависит от конфигурации). Если узла ещё нет, создайте его: укажите адрес вида https://сайт/bitrix/admin/1c_exchange.php, логин и пароль пользователя сайта с правами на обмен.

На вкладке выгрузки товаров включите режим выгрузки предложений. В типовом модуле обмена есть отдельный признак «Выгружать предложения (характеристики)» — без него файл offers.xml формируется без характеристик, и все варианты схлопываются в одно предложение. Также проверьте отбор: в него должны попадать и сами товары, и их характеристики.

Настройте выгрузку цен и остатков: укажите виды цен и склады, которые участвуют в обмене. Если на сайте несколько типов цен (розница, опт), каждый тип сопоставляется виду цен в 1С отдельно в таблице соответствия цен.

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

Настройка каталога на стороне Битрикса

В административной части Битрикса откройте настройки инфоблоков: «Контент» → «Инфоблоки» → «Типы инфоблоков» → «Каталоги». Инфоблок товаров должен быть помечен как торговый каталог, и у него должен быть указан связанный инфоблок торговых предложений. Если связи нет, предложения из offers.xml импортировать некуда — обмен завершится с ошибкой или предложения будут проигнорированы.

Связь создаётся через свойство инфоблока предложений: добавьте свойство типа «Привязка к элементам» с кодом CML2_LINK, указывающее на инфоблок товаров. При типовой установке интернет-магазина эта структура создаётся автоматически, но при самостоятельной настройке её часто приходится делать вручную.

Свойства характеристик (цвет, размер и т.п.) создайте в инфоблоке предложений до обмена или дайте обмену создать их автоматически. Автоматически созданные свойства получают служебные коды и нередко не выводятся в умном фильтре и карточке — после первого обмена проверьте их настройки: активность, отображение в фильтре, тип (список, справочник).

Проверка результата обмена

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

Полезно проверить и сами файлы обмена. Включите в настройках обмена на стороне Битрикса сохранение файлов обмена либо выгрузите пакет из 1С в каталог вместо сайта. Откройте offers.xml: у предложений с вариантами идентификатор должен содержать символ «#», а в блоке характеристик — значения свойств вариации.

Контрольные точки

Как проверить результат

Идентификатор предложения в offers.xml
Норма

Содержит GUID#GUID для позиций с характеристиками

Тревожный признак

Все идентификаторы без «#» — характеристики не выгрузились

Карточка товара на сайте
Норма

Есть выбор варианта, цена меняется при переключении

Тревожный признак

Одна цена без вариантов или дубли карточек

Привязка предложений
Норма

У предложения заполнено свойство привязки к товару

Тревожный признак

Предложения есть, но товар «пустой» — привязка не сработала

Типовые ошибки и способы их устранения

Самая частая проблема — предложения выгрузились, но товары на сайте пустые. Причина обычно в рассинхронизации идентификаторов: товар в import.xml и ссылка на него в offers.xml не совпадают. Такое бывает после смены узла обмена, пересоздания инфоблока или ручной правки XML. Лечится полной выгрузкой в очищенный инфоблок либо повторной привязкой через обработку.

Вторая типовая ситуация — дубли: товар существует и как отдельная карточка, и как предложение. Это происходит, когда сначала выполнили обмен без характеристик, а потом включили их. Старое «простое» предложение не совпадает по идентификатору с новым и остаётся на сайте. Удалите устаревшие предложения вручную или деактивируйте их.

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

Типичные ошибки
01
Не включена выгрузка характеристик в узле обмена — все варианты схлопываются в одно предложение
02
У инфоблока товаров нет связанного инфоблока предложений — offers.xml некуда импортировать
03
Характеристики добавлены после первой выгрузки — на сайте появляются дубли предложений
04
Свойства характеристик созданы обменом автоматически и не выведены в фильтр — покупатель не может подобрать вариант
05
В отбор обмена не попали характеристики — предложения выгружаются без значений вариации

Ограничения и альтернативные схемы

Штатный обмен не умеет объединять в одну карточку разные товары 1С без характеристик. Если в учёте каждый цвет заведён отдельной позицией номенклатуры без характеристик, на сайте они останутся отдельными товарами. Варианты решения: перевести учёт на характеристики (правильный путь) либо использовать нештатные доработки обмена, которые группируют товары по признаку — это уже доработка, требующая тестирования.

Когда типового модуля не хватает — нужна выгрузка в несколько сайтов, нестандартная структура свойств, кастомная логика цен — применяют расширенные модули обмена или собственную выгрузку через REST API Битрикса. Такой путь даёт гибкость, но перекладывает поддержку формата и обработку ошибок на вашу команду.

Маршрут решения

Как выбрать действие

У товаров заведены характеристики в 1СДостаточно типового обмена: включите выгрузку предложений и настройте связку инфоблоков
Каждый вариант — отдельная позиция номенклатуры без характеристикСначала переведите учёт на характеристики, иначе объединить карточки штатно не получится
Нужна нестандартная логика цен или несколько сайтовРассмотрите доработку обмена или выгрузку через REST API с привлечением разработчика

Частые вопросы

Почему предложения выгрузились, но в карточке товара варианты не выбираются?

Чаще всего свойства характеристик созданы обменом автоматически и не настроены для вывода: проверьте в настройках свойств инфоблока предложений, что они активны, участвуют в фильтре и отмечены для отображения в карточке. Также убедитесь, что шаблон компонента каталога поддерживает вывод SKU.

Можно ли выгрузить как предложения товары без характеристик?

Да, они попадут в инфоблок предложений как простые предложения без значений вариации — по одному предложению на товар. Но объединить несколько разных товаров в одну карточку таким способом нельзя: для этого нужны характеристики.

После включения характеристик на сайте появились дубли. Что делать?

Идентификатор предложения изменился (добавилась часть после «#»), поэтому старое предложение не обновилось, а рядом создалось новое. Найдите в инфоблоке предложений устаревшие записи без значений характеристик и удалите или деактивируйте их, предварительно сделав резервную копию.

Обмен обрывается по таймауту на большом каталоге. Как стабилизировать?

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

Где посмотреть, что именно 1С отправила на сайт?

Настройте в узле обмена выгрузку в каталог на диске вместо сайта и откройте сформированные import.xml и offers.xml в текстовом редакторе. По ним видно, какие товары, характеристики, цены и остатки реально попали в пакет, что позволяет отделить проблемы на стороне 1С от проблем импорта в Битриксе.

Итог

Что важно запомнить

Товар становится предложением благодаря характеристикам в 1С и включённой выгрузке предложений в узле обмена. На стороне Битрикса нужна связка инфоблоков товаров и предложений через свойство CML2_LINK. Добавление характеристик после первой выгрузки меняет идентификаторы и создаёт дубли — старые предложения удаляйте вручную, а полный обмен всегда проверяйте на копии сайта.