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

Автоматизация · 10 мин

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

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

Подготовка: что нужно проверить перед выгрузкой

Торговые предложения в 1С — это характеристики номенклатуры: размер, цвет, объём и другие варианты одного товара. В 1С-Битрикс они выгружаются как SKU (SKU — stock keeping unit, товарная единица) и привязываются к родительскому товару. Чтобы обмен прошёл корректно, важно заранее согласовать структуру данных в обеих системах.

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

Во-вторых, проверьте версию конфигурации 1С и наличие модуля обмена с сайтом. Современные типовые конфигурации содержат встроенный обмен по протоколу CommerceML, для старых версий может потребоваться установка дополнительного модуля обмена. На стороне Битрикса должен быть установлен модуль «Интернет-магазин» и настроен инфоблок каталога.

Как работает обмен между 1С и Битрикс

Обмен строится на файлах формата CommerceML: 1С формирует XML-файлы (обычно import.xml с товарами и offers.xml с предложениями и ценами) и передаёт их на сайт через специальный скрипт обмена. Битрикс принимает файлы, распаковывает и пошагово импортирует данные в инфоблоки.

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

Сопоставление элементов происходит по внешнему коду (XML_ID), который 1С формирует из GUID номенклатуры и характеристики. Именно поэтому нельзя вручную менять внешние коды в Битриксе — при следующем обмене создадутся дубли.

Настройка обмена на стороне 1С

Откройте раздел настройки обмена с сайтом (в «1С:Управление торговлей» это обычно «Администрирование → Обмен с сайтами» или «CRM и маркетинг → Обмен с сайтом» в зависимости от версии). Создайте новый узел обмена и укажите адрес скрипта обмена вида https://ваш-сайт/bitrix/admin/1c_exchange.php, а также логин и пароль пользователя Битрикса с правами на обмен.

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

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

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

Настройка приёма данных на стороне Битрикс

В административной панели Битрикса перейдите в «Магазин → Интеграция с 1С» (или «Настройки → Интеграция с 1С» в зависимости от редакции). Здесь задаются параметры импорта: таймаут шага обмена, размер части файла, действия с элементами, отсутствующими в выгрузке (деактивировать, удалить или ничего не делать).

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

Создайте отдельного пользователя для обмена и включите его в группу с правом «Обмен с 1С». Не используйте учётную запись администратора: при компрометации пароля обмена ущерб будет ограничен. Проверьте, что на сервере хватает ресурсов — импорт больших каталогов чувствителен к лимитам времени выполнения PHP и объёму памяти.

Запуск обмена и проверка результата

Запустите обмен из 1С кнопкой «Выполнить обмен» или настройте регламентное задание для автоматической выгрузки по расписанию. Первый обмен рекомендуется делать полным, последующие — в режиме выгрузки изменений, чтобы сократить нагрузку и время.

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

Если предложения выгрузились, но на сайте не отображаются, проверьте настройки компонента каталога: он должен работать в режиме с торговыми предложениями, а шаблон — поддерживать выбор SKU.

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

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

Инфоблок торговых предложений
Норма

Предложения созданы, у каждого заполнена привязка к товару (CML2_LINK)

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

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

Цены и остатки
Норма

Совпадают с данными 1С по каждому SKU

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

Цена нулевая или остаток не выгружен — проверяйте тип цен и склады в отборе

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

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

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

Варианты не выводятся — проблема в шаблоне компонента, а не в обмене

Повторный обмен
Норма

Количество предложений не растёт, данные обновляются

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

Появляются дубли — нарушены внешние коды XML_ID

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

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

Вторая распространённая ситуация — дубли после повторного обмена. Они возникают, если в Битриксе вручную редактировали внешние коды, меняли инфоблок назначения или выгружали из разных узлов обмена. Лечение: очистить дубли, восстановить корректные XML_ID и закрепить один узел обмена как единственный источник данных.

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

Типичные ошибки
01
Выгрузка без включённых характеристик в виде номенклатуры — вместо SKU на сайте появляются простые товары без вариантов
02
Ручное редактирование внешних кодов (XML_ID) в Битриксе — при следующем обмене создаются дубли товаров и предложений
03
Режим «Удалить» для отсутствующих элементов при первом обмене — ошибка в отборе 1С может очистить весь каталог
04
Обмен под учётной записью администратора — риск компрометации полного доступа к сайту
05
Одинаковые наименования характеристик без уточнений — покупатель не может отличить варианты в списке выбора

Ограничения и альтернативные способы

Типовой обмен покрывает стандартные сценарии, но имеет границы: нестандартные свойства, несколько картинок у каждого SKU, сложные правила ценообразования часто требуют доработки на стороне 1С или Битрикса. Также типовой обмен односторонний по товарам — изменения каталога, сделанные вручную в Битриксе, не передаются обратно в 1С и могут быть перезаписаны.

Если типового обмена недостаточно, рассмотрите альтернативы: обмен через REST API Битрикса с собственной выгрузкой из 1С, промежуточную шину данных (файлы CSV/JSON на FTP) или готовые отраслевые модули интеграции. Такие решения гибче, но требуют разработки и сопровождения.

Сравнение вариантов обмена

Типовой обмен CommerceML

Подходит для стандартных каталогов; настраивается без программирования, но ограничен типовой структурой данных

Доработка типового обмена

Когда нужно добавить пару нестандартных полей; требует программиста 1С и аккуратного обновления конфигурации

Обмен через REST API

Для сложных сценариев и гибкой логики; требует разработки с двух сторон и постоянного сопровождения

Промежуточные файлы (CSV/JSON)

Простой вариант для редких выгрузок; нет автоматического контроля дублей и связей, много ручной работы

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

Итог

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

Выгрузка торговых предложений строится на связке «характеристики в 1С → инфоблок SKU в Битриксе» через обмен CommerceML. Ключевые условия успеха: включённые характеристики, корректная привязка инфоблоков, нетронутые внешние коды и тестовый обмен на малой группе товаров перед полной выгрузкой.

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

Почему после обмена товары есть, а торговых предложений нет?

Чаще всего в 1С у вида номенклатуры не включено использование характеристик или характеристики не заполнены у конкретных товаров. Проверьте также, что в настройках узла обмена характеристики отмечены к выгрузке. Если всё включено, откройте файл offers.xml из обмена — если предложений нет там, проблема на стороне 1С, а не Битрикса.

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

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

Что делать, если обмен обрывается на большом каталоге?

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

Как удалить дубли предложений после ошибочного обмена?

Найдите дубли по совпадающему набору свойств и привязке к одному товару, оставьте элемент с корректным внешним кодом из 1С, остальные удалите. Перед массовым удалением сделайте резервную копию. После очистки запустите контрольный обмен и убедитесь, что дубли не появляются снова.

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

Да, если эти данные приходят из 1С, они будут перезаписаны при очередном обмене. В настройках интеграции можно ограничить состав импортируемых полей, а часть контента (например, SEO-тексты) хранить в свойствах, которые не участвуют в обмене.

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

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