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

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

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

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

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

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

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

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

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

На стороне Битрикса проверьте, что установлены модули «Интернет-магазин» (sale) и «Торговый каталог» (catalog), и создан инфоблок каталога. Также убедитесь, что сайт доступен по HTTPS из сети, где работает 1С: если 1С находится в локальной сети, а сайт — на внешнем хостинге, проблем обычно нет, но обратный вариант потребует настройки доступа.

Отдельно проверьте учётную запись для обмена. В Битриксе создайте отдельного пользователя (не администратора), включите его в группу с правом «Выполнение обмена данными с 1С» — обычно это группа «Обмен с 1С» или аналогичная, создаваемая при установке модуля. Использование отдельной учётной записи упрощает аудит и позволяет отозвать доступ, не ломая другие интеграции.

Конфигурация 1СУТ, УНФ, КА или ERP

Наличие раздела «Обмен с сайтами» в администрировании

Модули Битриксаsale и catalog установлены

Раздел «Marketplace — Установленные решения»

Учётная запись обменаОтдельный пользователь

Право на выполнение обмена, без прав администратора

Доступность сайтаHTTPS из сети 1С

Открыть URL обмена в браузере с сервера 1С

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

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

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

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

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

Порядок настройки узла обмена
  1. 1
    Создайте пользователя обмена в Битриксе с правом на обмен с 1С
  2. 2
    В 1С откройте «Администрирование — Обмен с сайтами» и создайте узел
  3. 3
    Укажите URL https://site.ru/bitrix/admin/1c_exchange.php, логин и пароль
  4. 4
    Нажмите «Проверить соединение» и устраните ошибки авторизации
  5. 5
    Настройте отбор товаров, склады и соответствие типов цен
  6. 6
    Выполните первую полную выгрузку и проверьте каталог на сайте
  7. 7
    Включите расписание и режим выгрузки изменений

Настройка со стороны Битрикса

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

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

Проверьте ограничения сервера: обмен передаёт большие XML-файлы, поэтому лимиты upload_max_filesize, post_max_size и время выполнения скрипта должны быть достаточными. Битрикс поддерживает пошаговую выгрузку (передачу файла частями), что снижает требования к лимитам — этот режим включается в настройках интеграции.

Запуск выгрузки и расписание

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

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

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

Проверка результата выгрузки

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

Журнал обмена — главный инструмент диагностики. В 1С смотрите протокол в форме узла обмена, в Битриксе — логи в разделе интеграции с 1С. Там фиксируются ошибки авторизации, превышения лимитов, проблемы обработки файлов. Успешный обмен завершается статусом «success» в ответе сайта.

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

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

Товары в инфоблоке
Норма

Разделы и позиции созданы, цены и остатки совпадают с 1С

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

Товары без цен, дубли разделов, пустые остатки

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

Статус success, без ошибок обработки файлов

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

Ошибки авторизации, таймауты, отказ в импорте

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

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

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

Битые ссылки на картинки или их отсутствие

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

Выгрузка изменений проходит быстро, без дублей

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

Каждый обмен создаёт дубликаты товаров

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

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

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

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

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

Альтернативные способы передачи товаров

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

Варианты выгрузки товаров

Штатный обмен CommerceML

Подходит для типовых УТ, УНФ, КА, ERP. Минимум настройки, поддержка цен, остатков и заказов. Ограничение — жёсткая структура данных

Выгрузка в CSV/XML через обработку

Ручная или регламентная выгрузка файла с последующим импортом в Битрикс. Гибкий состав полей, но нет автоматической синхронизации и обмена заказами

REST API Битрикса

Для нестандартной логики и самописных конфигураций. Требует разработки на стороне 1С, зато полный контроль над данными

Готовые модули из маркетплейса

Расширенные сценарии (несколько сайтов, кастомные свойства). Зависимость от стороннего разработчика и стоимость модуля

Выбор зависит от масштаба и требований. Для типового магазина с одной 1С и одним сайтом штатный обмен — оптимальное решение. К разработке через API стоит переходить только когда стандартный механизм объективно не справляется с задачей.

Итог

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

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

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

Какой URL указывать для обмена в 1С?

Стандартный адрес скрипта обмена — https://ваш-сайт.ru/bitrix/admin/1c_exchange.php. Если административный раздел переименован, замените bitrix на актуальное имя папки. Проверить доступность можно, открыв этот адрес в браузере: должна появиться строка с текстом вроде «failure» и приглашением к авторизации — это нормальное поведение для запроса без параметров.

Почему после обмена на сайте появились дубли товаров?

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

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

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

Как часто нужно выполнять обмен?

Зависит от скорости изменения данных. При активной торговле выгрузку изменений обычно запускают каждые 15–60 минут, полную выгрузку — раз в сутки вне пиковой нагрузки. Если цены и остатки меняются редко, достаточно нескольких обменов в день. Слишком частая полная выгрузка создаёт лишнюю нагрузку на сайт.

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

Включите в настройках интеграции с 1С пошаговую выгрузку и уменьшите размер одного пакета данных. Проверьте лимиты PHP на хостинге: upload_max_filesize, post_max_size, max_execution_time. Для очень больших каталогов также помогает разделение выгрузки на несколько узлов обмена по группам товаров.

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

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