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

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

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

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

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

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

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

Подготовка: что проверить до настройки обмена

Прежде чем настраивать выгрузку, убедитесь, что ваша конфигурация 1С содержит встроенный обмен с сайтом. В УТ 11, КА 2, ERP 2 и УНФ он находится в разделе администрирования или интеграции и называется «Обмен с сайтами» / «Синхронизация с сайтом». Если конфигурация старая или самописная, потребуется установить модуль обмена, который публикует 1С-Битрикс для соответствующих версий платформы.

Проверьте версию «1С-Битрикс: Управление сайтом» и наличие лицензии с модулем интернет-магазина. На сайте должен быть доступен скрипт приёма данных — обычно это /bitrix/admin/1c_exchange.php. Откройте этот адрес в браузере: если страница запрашивает авторизацию или отвечает служебным текстом, точка обмена доступна; если отдаётся ошибка 403/404, проверьте настройки веб-сервера и права на файл.

Приведите в порядок сам справочник номенклатуры: у товаров должны быть заполнены наименования, единицы измерения, ставки НДС, а для выгрузки картинок — прикреплённые изображения. Товары без цен выгрузятся, но на сайте будут отображаться некорректно, поэтому заранее установите цены по нужному виду цен документом «Установка цен номенклатуры».

Создание узла обмена с сайтом в 1С

Откройте раздел обмена с сайтами и создайте новую настройку. Укажите название узла, например «Выгрузка в Битрикс». В поле адреса сайта введите полный URL скрипта обмена, включая протокол: https://ваш-сайт/bitrix/admin/1c_exchange.php. Задайте логин и пароль пользователя сайта с правами на выполнение обмена — обычно это администратор или отдельный технический пользователь, входящий в группу с правом «Обмен с 1С».

Нажмите «Проверить соединение». Если 1С сообщает об успешной авторизации, связь настроена. Ошибки на этом этапе чаще всего связаны с неверным логином/паролем, блокировкой по IP на стороне хостинга, редиректом с http на https, который 1С не всегда корректно обрабатывает, или ограничением доступа к файлу обмена в .htaccess.

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

Настройка отбора товаров, цен и остатков

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

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

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

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

Выполнение выгрузки и режимы обмена

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

Обмен можно запускать вручную кнопкой «Выполнить обмен» или по расписанию через регламентное задание. Для автоматического обмена в настройках узла укажите расписание, например выгрузку изменений каждые 15–30 минут и полную выгрузку ночью, когда нагрузка на сайт минимальна.

Если сайт недоступен из 1С напрямую (закрытая сеть, ограничения безопасности), доступен альтернативный режим — выгрузка в каталог на диске. 1С сохранит XML-файлы и картинки в указанную папку, после чего их можно вручную импортировать в Битрикс через раздел «Магазин → Импорт данных» или скрипт импорта CommerceML.

Способы выгрузки

Онлайн-обмен через скрипт сайта

Основной способ: 1С сама передаёт данные на сайт. Подходит для регулярной синхронизации, требует доступности сайта из 1С.

Выгрузка в файлы CommerceML

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

Обмен через REST/API или доработку

Индивидуальная интеграция для нестандартных сценариев. Требует разработки и сопровождения, оправдана при сложной логике каталога.

Проверка результата на стороне Битрикса

После завершения обмена откройте в административной части Битрикса раздел «Контент → Инфоблоки → Типы инфоблоков → Каталог». Должны появиться инфоблок товаров и инфоблок торговых предложений (если в 1С используются характеристики). Проверьте, что разделы соответствуют иерархии групп 1С, а товары попали в свои разделы.

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

Проверьте картинки: они должны отображаться в карточках товаров. Если изображения не выгрузились, убедитесь, что в 1С файлы картинок доступны (не битые ссылки на внешние пути) и что на сайте хватает дискового пространства и лимитов PHP на приём архива с файлами.

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

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

Протокол обмена в 1С
Норма

«Обмен данными успешно завершён», без ошибок приёма ответов сайта

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

Ошибки авторизации, таймауты, «Невозможно разобрать ответ сервера»

Количество товаров
Норма

Число элементов в инфоблоке совпадает с количеством в отборе 1С

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

На сайте заметно меньше или больше позиций, появились дубли

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

Цены и остатки на сайте совпадают с 1С по выборочным позициям

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

Цены нулевые или устаревшие, остатки не соответствуют складам

Картинки товаров
Норма

Изображения отображаются в карточках

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

Карточки без изображений при наличии картинок в 1С

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

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

Дубли товаров и разделов возникают, когда обмен выполнялся повторно после ручного изменения каталога на сайте или после смены настроек идентификации. Типовой обмен сопоставляет элементы по внешнему коду (GUID из 1С); если внешние коды были очищены или инфоблок пересоздан, сопоставление теряется. Лечение — очистка каталога на тестовой копии и повторная полная выгрузка.

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

Типичные ошибки
01
Первая выгрузка сразу на боевой сайт — риск дублей и порчи существующего каталога
02
Отбор всего справочника без фильтра — на сайт попадают услуги, архивные и служебные позиции
03
Невыбранный вид цен или отсутствие цен на дату обмена — товары на сайте без цены
04
Игнорирование протокола обмена — ошибки копятся, а расхождения обнаруживаются поздно
05
Ручное редактирование выгруженных товаров на сайте без учёта того, что следующий обмен перезапишет изменения

Регулярная синхронизация и сопровождение

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

Периодически сверяйте протоколы обмена и контрольные суммы: количество товаров, дату последнего успешного обмена. Настройте уведомление ответственному при ошибках регламентного задания, чтобы «молчаливый» сбой обмена не привёл к продаже товаров по устаревшим остаткам.

Итог

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

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

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

Можно ли выгрузить номенклатуру из 1С в Битрикс24?

Да, но это другой сценарий: для Битрикс24 используется отдельный механизм синхронизации товаров CRM, а не обмен с сайтом через 1c_exchange.php. В коробочной и облачной версиях Битрикс24 есть интеграция с 1С через типовые приложения и обмен товарами каталога CRM.

Почему обмен зависает или обрывается на большом каталоге?

Чаще всего из-за лимитов хостинга: max_execution_time, memory_limit, ограничения на размер POST-запроса. Уменьшите размер пакета в настройках обмена 1С, включите zip-сжатие файлов обмена и при необходимости попросите хостера увеличить лимиты для скрипта обмена.

Как выгрузить только часть товаров, а не весь справочник?

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

Что делать, если после обмена появились дубли товаров?

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

Выгружаются ли картинки и файлы товаров?

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

Можно ли настроить обмен без доработок в самописной конфигурации?

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