Торговля и Склад · 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Включите учёт по характеристикам и заведите характеристики у товаров
- 2Создайте или откройте узел обмена с сайтом, укажите адрес и учётные данные
- 3Включите выгрузку предложений (характеристик) в настройках обмена
- 4Настройте отбор товаров, виды цен и склады для выгрузки
- 5Выполните полный обмен и проверьте результат на сайте
Настройка каталога на стороне Битрикса
В административной части Битрикса откройте настройки инфоблоков: «Контент» → «Инфоблоки» → «Типы инфоблоков» → «Каталоги». Инфоблок товаров должен быть помечен как торговый каталог, и у него должен быть указан связанный инфоблок торговых предложений. Если связи нет, предложения из offers.xml импортировать некуда — обмен завершится с ошибкой или предложения будут проигнорированы.
Связь создаётся через свойство инфоблока предложений: добавьте свойство типа «Привязка к элементам» с кодом CML2_LINK, указывающее на инфоблок товаров. При типовой установке интернет-магазина эта структура создаётся автоматически, но при самостоятельной настройке её часто приходится делать вручную.
Свойства характеристик (цвет, размер и т.п.) создайте в инфоблоке предложений до обмена или дайте обмену создать их автоматически. Автоматически созданные свойства получают служебные коды и нередко не выводятся в умном фильтре и карточке — после первого обмена проверьте их настройки: активность, отображение в фильтре, тип (список, справочник).
Проверка результата обмена
После полного обмена откройте карточку товара на сайте: в ней должен появиться выбор варианта (размер, цвет), а при переключении варианта должны меняться цена и доступность. В административной части проверьте инфоблок торговых предложений: каждое предложение должно быть привязано к своему товару и содержать цену и остаток.
Полезно проверить и сами файлы обмена. Включите в настройках обмена на стороне Битрикса сохранение файлов обмена либо выгрузите пакет из 1С в каталог вместо сайта. Откройте offers.xml: у предложений с вариантами идентификатор должен содержать символ «#», а в блоке характеристик — значения свойств вариации.
Как проверить результат
Содержит GUID#GUID для позиций с характеристиками
Все идентификаторы без «#» — характеристики не выгрузились
Есть выбор варианта, цена меняется при переключении
Одна цена без вариантов или дубли карточек
У предложения заполнено свойство привязки к товару
Предложения есть, но товар «пустой» — привязка не сработала
Типовые ошибки и способы их устранения
Самая частая проблема — предложения выгрузились, но товары на сайте пустые. Причина обычно в рассинхронизации идентификаторов: товар в import.xml и ссылка на него в offers.xml не совпадают. Такое бывает после смены узла обмена, пересоздания инфоблока или ручной правки XML. Лечится полной выгрузкой в очищенный инфоблок либо повторной привязкой через обработку.
Вторая типовая ситуация — дубли: товар существует и как отдельная карточка, и как предложение. Это происходит, когда сначала выполнили обмен без характеристик, а потом включили их. Старое «простое» предложение не совпадает по идентификатору с новым и остаётся на сайте. Удалите устаревшие предложения вручную или деактивируйте их.
Третья группа проблем — производительность и обрывы обмена на больших каталогах. Если обмен падает по таймауту, уменьшите размер порции выгрузки в настройках обмена, выгружайте изменения вместо полной выгрузки и проверьте ограничения хостинга на время выполнения скрипта и размер POST-запроса.
Ограничения и альтернативные схемы
Штатный обмен не умеет объединять в одну карточку разные товары 1С без характеристик. Если в учёте каждый цвет заведён отдельной позицией номенклатуры без характеристик, на сайте они останутся отдельными товарами. Варианты решения: перевести учёт на характеристики (правильный путь) либо использовать нештатные доработки обмена, которые группируют товары по признаку — это уже доработка, требующая тестирования.
Когда типового модуля не хватает — нужна выгрузка в несколько сайтов, нестандартная структура свойств, кастомная логика цен — применяют расширенные модули обмена или собственную выгрузку через REST API Битрикса. Такой путь даёт гибкость, но перекладывает поддержку формата и обработку ошибок на вашу команду.
Как выбрать действие
Частые вопросы
Почему предложения выгрузились, но в карточке товара варианты не выбираются?
Чаще всего свойства характеристик созданы обменом автоматически и не настроены для вывода: проверьте в настройках свойств инфоблока предложений, что они активны, участвуют в фильтре и отмечены для отображения в карточке. Также убедитесь, что шаблон компонента каталога поддерживает вывод SKU.
Можно ли выгрузить как предложения товары без характеристик?
Да, они попадут в инфоблок предложений как простые предложения без значений вариации — по одному предложению на товар. Но объединить несколько разных товаров в одну карточку таким способом нельзя: для этого нужны характеристики.
После включения характеристик на сайте появились дубли. Что делать?
Идентификатор предложения изменился (добавилась часть после «#»), поэтому старое предложение не обновилось, а рядом создалось новое. Найдите в инфоблоке предложений устаревшие записи без значений характеристик и удалите или деактивируйте их, предварительно сделав резервную копию.
Обмен обрывается по таймауту на большом каталоге. Как стабилизировать?
Уменьшите размер порции выгрузки в настройках обмена, переключитесь на выгрузку только изменений, проверьте лимиты хостинга на время выполнения скрипта и размер запроса. При необходимости выгружайте пакет в файлы и импортируйте его на сайте отдельно.
Где посмотреть, что именно 1С отправила на сайт?
Настройте в узле обмена выгрузку в каталог на диске вместо сайта и откройте сформированные import.xml и offers.xml в текстовом редакторе. По ним видно, какие товары, характеристики, цены и остатки реально попали в пакет, что позволяет отделить проблемы на стороне 1С от проблем импорта в Битриксе.
Что важно запомнить
Товар становится предложением благодаря характеристикам в 1С и включённой выгрузке предложений в узле обмена. На стороне Битрикса нужна связка инфоблоков товаров и предложений через свойство CML2_LINK. Добавление характеристик после первой выгрузки меняет идентификаторы и создаёт дубли — старые предложения удаляйте вручную, а полный обмен всегда проверяйте на копии сайта.