Оглавление:
- Зачем интернет-магазину выгрузка товаров из 1С на сайт Битрикс
- Как устроен механизм обмена 1С и Битрикс
- Что нужно подготовить перед выгрузкой товаров из 1С в Битрикс интернет-магазин
- Настройка выгрузки на стороне сайта Битрикс
- Настройка обмена в 1С: как выгрузить каталог с сайта Bitrix пошагово
- 1С Битрикс признак выгрузки на сайт: как работают XML_ID и внешние коды
- Как выгрузить из 1С в уже существующий каталог Битрикс, а не создать дубли
- Выгрузка торговых предложений, свойств и справочников товаров
- Выгрузка заказов из Битрикс в 1С и обратно
- Топ ошибок при выгрузке из 1С на сайт и как их избежать
- Сколько стоит и сколько времени занимает настройка выгрузки 1С в Битрикс
- Мнение эксперта
- FAQ: ответы на частые вопросы
- Заключение
- Термины и сноски
Зачем интернет-магазину выгрузка товаров из 1С на сайт Битрикс
Обмен с 1С решает вполне конкретную задачу: избавить компанию от ручного ведения одного и того же каталога в двух системах. Штатный механизм умеет выгружать на сайт номенклатуру, торговые предложения, цены и остатки, а в обратную сторону — передавать в 1С заказы, оформленные покупателями. Это удобно ровно до тех пор, пока 1С остаётся «чистой», то есть близкой к типовой конфигурации: тогда обмен настраивается за пару часов и работает предсказуемо.
Проблема в том, что почти у каждой компании 1С модифицирована под свои процессы — добавлены нетиповые реквизиты, изменена структура номенклатуры, введены свои виды цен. И именно тогда выгрузка каталога с 1С на сайт Bitrix превращается из формальности в отдельный небольшой проект, где нужно свести воедино логику учётной системы и логику CMS. Чаще всего с этой задачей сталкиваются розничные и оптовые интернет-магазины, компании с товарными остатками на нескольких складах и бизнесы, которые параллельно выгружают тот же каталог на маркетплейсы — для них согласованность данных между 1С и сайтом становится критичной.
Как устроен механизм обмена 1С и Битрикс
Инициатором обмена всегда выступает 1С: она обращается к сайту по адресу вида http://ваш-сайт.ru/bitrix/admin/1c_exchange.php и передаёт данные через последовательные HTTP-запросы. Такая архитектура выбрана не случайно — даже если сайт скомпрометируют, обратного пути к учётной системе не будет, потому что сайт физически не умеет обращаться к 1С.
Сам обмен проходит через несколько этапов:
- авторизацию 1С на сайте;
- загрузку файлов во временную папку (обычно /upload/1c_catalog/, которая очищается перед каждой сессией);
- построчное чтение XML во временные таблицы;
- и финальную обработку данных с записью в инфоблоки.
Информация структурирована по стандарту CommerceML2 и разложена по нескольким файлам: import.xml содержит сами товары, разделы, свойства и типы цен, offers.xml — торговые предложения, prices.xml — цены на эти предложения, rests.xml — остатки, а references.xml — справочную информацию. Если хотя бы в одном из этих файлов идентификатор товара или предложения не совпадёт с идентификатором в соседнем файле, вы получите товар без цены или предложение без остатка — и такие рассинхроны встречаются чаще, чем хотелось бы.
Что нужно подготовить перед выгрузкой товаров из 1С в Битрикс интернет-магазин
Во-первых, проверьте редакцию Битрикса: полноценная выгрузка каталога через торговый обмен доступна начиная с редакции «Малый бизнес», в «Старте» этой функциональности просто нет. Во-вторых, скачайте и установите на стороне 1С модуль обмена — для типовых конфигураций 1С:УТ, 1С:КА или 1С:ERP он обычно уже встроен, для сильно доработанных баз модуль может потребовать донастройки силами программиста 1С.
И в-третьих, создайте на сайте отдельного технического пользователя с правами на обмен — использовать для этого учётку администратора сайта нежелательно по соображениям безопасности и удобства аудита логов. Этот пользователь и будет тем «мостиком», через который 1С будет авторизовываться при каждой сессии обмена.
Настройка выгрузки на стороне сайта Битрикс
Первый шаг на сайте — включить видимость технических настроек, которые по умолчанию скрыты. В административной панели откройте «Настройки» → «Настройки продукта» → «Настройки модулей» → «Информационные блоки» и поставьте флаг «Показывать код загрузки из внешних источников». Без этого шага вы просто не увидите нужные поля для внешнего кода инфоблока чуть позже.
Дальше переходим в раздел «Магазин» → «Настройки» → «Интеграция с 1С» и указываем, в какой именно инфоблок должна попадать номенклатура. Здесь стоит сразу включить три полезные опции:
- использовать настройки инфоблока для обработки изображений (чтобы не настраивать это дублирующе в двух местах);
- транслитерировать символьный код из названия при создании элементов; и разделов (это избавит от ошибок вида «обязательное поле “символьный код” не заполнено»);
- и — если номенклатура в 1С ведётся в разрезе характеристик — выгружать торговые предложения в отдельный инфоблок.
![]()
Важно: на сайте должен быть создан тип цены, который в точности соответствует виду цены, используемому в 1С для выгрузки — иначе цены на сайт просто не попадут, даже если весь остальной обмен пройдёт успешно.
Настройка обмена в 1С: как выгрузить каталог с сайта Bitrix пошагово
Настройка со стороны 1С начинается с раздела «НСИ и администрирование» → «Настройки синхронизации данных», где нужно включить флаг «Обмен данными с сайтами». Затем в разделе «CRM и маркетинг» создаётся типовое соглашение с клиентами — именно оно определяет, по какому виду цены будут выгружаться данные на сайт. В соглашении важно проверить три вещи: статус «Действует» и актуальный период действия, указанный вид цены на закладке «Условия продаж», и флаг «Доступно для обмена с сайтом» на закладке «Прочие условия».
После этого в «Узлах обмена с сайтами» создаётся новый узел с режимом «Выгрузка товаров», где в качестве адреса указывается тот самый скрипт 1c_exchange.php*. На закладке «Выгрузка товаров» находится идентификатор каталога — это значение стоит скопировать, потому что именно оно связывает конкретный каталог в 1С с конкретным инфоблоком на сайте. Если структура разделов на сайте должна отличаться от иерархии в 1С, здесь же, через кнопку «Настроить дерево групп», можно вручную привязать группы номенклатуры к нужным разделам сайта — это особенно полезно, когда витрина сайта логически устроена иначе, чем справочники в учётной системе.
1С Битрикс признак выгрузки на сайт: как работают XML_ID и внешние коды
Признак выгрузки на сайте в Битриксе — это, по сути, внешний код инфоблока, который должен совпадать с идентификатором каталога, скопированным на предыдущем шаге в 1С. Формируется он по такому шаблону: тип инфоблока (тот самый символьный код в квадратных скобках из настроек модуля «Интеграция с 1С») через дефис и идентификатор каталога, например, catalog-280af51d-ef93-11de-9de0-001c7e202cbc. Указывается это значение в поле «Внешний код» на карточке нужного инфоблока в разделе «Контент» → «Инфоблоки» → «Типы инфоблоков» → «Каталоги».
Если на сайте используются торговые предложения, у соответствующего инфоблока внешний код будет тот же, но с решёткой на конце — это тот самый признак, который говорит системе: «сюда выгружай характеристики, а не сами товары». Без верно проставленного признака выгрузки 1С будет либо создавать новый инфоблок вместо использования существующего, либо не находить, куда класть данные вовсе, и обмен просто завершится с ошибкой.
Как выгрузить из 1С в уже существующий каталог Битрикс, а не создать дубли
Отдельная и очень частая задача — это выгрузка из 1С в Bitrix в существующий каталог, когда сайт уже разработан и наполнен, а интеграцию с учётной системой подключают позже. Здесь важно не только правильно проставить внешний код инфоблока, как описано выше, но и учесть один нюанс: если в 1С есть группы номенклатуры с одинаковыми названиями в разных ветках (например, «Зима» и в разделе «Одежда», и в разделе «Обувь»), после транслитерации символьные коды у этих разделов совпадут, и один из них перестанет открываться.
Решение — на закладке «Поля разделов» карточки инфоблока снять флаги обязательности и уникальности для символьного кода, а на закладке «Инфоблок» переключить формирование ЧПУ с SECTION_CODE на SECTION_ID. После этого ссылки на разделы будут строиться по числовому идентификатору, и конфликтов между одинаково названными категориями больше не возникнет — сайт просто получит адреса вида /catalog/81/ вместо /catalog/zima/.
Выгрузка торговых предложений, свойств и справочников товаров
В логике 1С-Битрикс товарный каталог всегда состоит из двух уровней. Каталог товаров — это, по сути, аналог справочника «Номенклатура» в 1С: сюда попадают неизменные характеристики вроде артикула, бренда или типа изделия. Каталог предложений — это уже физические позиции с конкретной ценой, размером или цветом, то есть то, что реально можно положить в корзину. Прежде чем выгружать товары из 1С на сайт Битрикс, стоит заранее решить, где в 1С заведены торговые предложения и как они соотносятся с характеристиками номенклатуры.
Отдельная тонкость касается свойств типа «справочник» — например, цвета или материала. Если такое свойство выгружается как простой текст, карточка товара теряет возможность показывать красивую плитку с превью цвета краски или картинкой камня. Чтобы это работало корректно, свойство в 1С нужно связывать с HL-справочником* на сайте, а не с обычным текстовым полем — тогда при выгрузке подтянутся не только названия значений, но и их изображения.
Выгрузка заказов из Битрикс в 1С и обратно
Обмен работает в обе стороны. Заказы, оформленные покупателями, передаются в 1С по отдельному профилю обмена — обычно их настраивают раздельно для физических и юридических лиц, поскольку у них разный набор реквизитов. При настройке важно свести соответствие статусов заказа и валют между сайтом и учётной системой: если статус на сайте не найдёт пары в 1С, заказ либо не попадёт в базу, либо попадёт с неверным статусом, что для отдела продаж может быть неприятным сюрпризом.
Топ ошибок при выгрузке из 1С на сайт и как их избежать
Практика показывает, что абсолютное большинство сбоев сводится к нескольким повторяющимся причинам. Самая частая — это несовпадение идентификаторов между файлами обмена: если ID предложения в offers.xml не начинается с ID товара из import.xml, а ID в prices.xml и rests.xml не совпадают с ID предложения, товар выгрузится без цены и остатка, даже если формально обмен прошёл без ошибок. Вторая частая история — расхождение идентификаторов свойств и их значений между общим справочным файлом и файлами товаров: в результате нужные характеристики либо не появляются в карточке, либо появляются пустыми. Третья причина — несовпадение идентификатора типа цены из import.xml с типом цены, заведённым на сайте: в этом случае весь каталог выгрузится, а цены останутся нулевыми.
Отдельно стоит упомянуть ситуацию, когда после успешного на первый взгляд обмена товары внезапно деактивируются — как правило, это следствие настроенного в 1С отбора «остаток больше 0», который автоматически скрывает позиции без остатка на складе. Это не ошибка, а штатное поведение, но о нём стоит помнить, чтобы не тратить время на поиск несуществующей проблемы.
Сколько стоит и сколько времени занимает настройка выгрузки 1С в Битрикс
Цена и сроки сильно зависят от исходных данных. Если 1С близка к типовой конфигурации, а каталог сайта укладывается в 10 000 позиций, базовая настройка выгрузки с нуля обычно занимает от нескольких дней до недели и стоит в районе 40–50 тысяч рублей — именно такой порядок цифр фигурирует у большинства интеграторов на рынке. Ситуация меняется, если структура каталога в 1С принципиально отличается от структуры на сайте, если нужна первоначальная выгрузка данных не из 1С на сайт, а наоборот — с сайта в 1С, или если требуются доработки нетиповых полей и отчётов. В таких случаях смета формируется индивидуально, и разумно заранее обсудить с подрядчиком объём работ, а не ориентироваться на усреднённые цифры из чужих кейсов.
Мнение эксперта
— Александр Апраксин, совладелец и генеральный директор digital-агентства MWI (входит в ТОП-10 Рейтинга Рунета). Автор книги «50 способов увеличения продаж интернет-магазина». Ведущий подкаста «Маркетологи», автор Telegram-канала Апраксин Pro Бизнес. Практик с 15+ годами опыта в digital и eCommerce. Сайт компании: mwi.me.
Главная ошибка, которую я вижу из проекта в проект — это попытка настроить обмен как чисто техническую задачу, без синхронизации между 1С-программистом и веб-разработчиком. Штатный модуль действительно работает быстро, но стоит 1С хоть немного отойти от типовой конфигурации — а таких баз, по моим наблюдениям, большинство, — как обмен начинает требовать ручной донастройки. Я всегда рекомендую перед первым запуском выгрузки свести на одном экране структуру номенклатуры в 1С и структуру инфоблоков на сайте: пять минут сверки идентификаторов на старте экономят потом часы отладки уже после того, как каталог «поехал» и начал показывать не то, что нужно.
FAQ: ответы на частые вопросы
Можно ли выгрузить товары из 1С на сайт Битрикс без модуля обмена?
Технически да, через собственный API-интегратор или сторонние коннекторы, но это отдельная разработка со своей логикой валидации данных. Штатный модуль обмена CommerceML2 в большинстве случаев быстрее и надёжнее, если 1С не сильно доработана.
Как часто должна происходить выгрузка каталога — раз в час или в реальном времени?
Всё зависит от бизнес-процессов: для интернет-магазинов с активными остатками разумный интервал — от 15 минут до часа для цен и остатков, а полную выгрузку каталога с новыми товарами достаточно запускать 1–2 раза в сутки, чтобы не перегружать сервер.
Что делать, если после выгрузки товары не появились на сайте?
Первым делом проверить логи обмена в административной панели сайта, затем сверить, совпадает ли внешний код инфоблока с идентификатором каталога в 1С, и убедиться, что признак выгрузки проставлен корректно.
Можно ли выгружать из нескольких баз 1С в один каталог на сайте?
Да, для этого создаётся несколько узлов обмена с разными идентификаторами, но важно заранее продумать, как избежать конфликтов ID между разными базами — иначе один товар может «перезаписать» другой.
Как выгрузить только остатки и цены без полной перезагрузки каталога?
В настройках узла обмена в 1С есть отдельный режим выгрузки «Остатки и цены» — он работает быстрее полного обмена номенклатурой и не трогает уже загруженные разделы и свойства товаров.
Заключение
Выгрузка из 1С Битрикс на сайт — задача, которая на бумаге выглядит как настройка «в пару кликов», а на практике почти всегда требует внимания к деталям: совпадению идентификаторов, правильному соглашению с видом цены и корректному признаку выгрузки на инфоблоках. Именно эти детали отличают проект, где каталог обновляется тихо и без сюрпризов, от проекта, где менеджеры каждую неделю разбираются, почему пропали остатки или задублировались разделы. Если у вас уже есть настроенный обмен, но он ведёт себя нестабильно, или вы только планируете подключить 1С к сайту на Битриксе — не откладывайте аудит настроек до момента, когда ошибка обойдётся дороже, чем её профилактика.
Уже пытались настроить выгрузку из 1С на сайт Битрикс, но каталог всё равно живёт своей жизнью — с пропавшими ценами, дублями разделов или товарами без картинок?
Оставьте заявку — разберём вашу текущую настройку обмена и покажем, что можно исправить без пересборки каталога с нуля.Термины и сноски
* XML_ID (внешний код) — уникальный идентификатор, по которому сайт и 1С «узнают» один и тот же объект между собой при каждом обмене.
* CommerceML2 — стандарт формата XML-файлов, по которому 1С и Битрикс обмениваются информацией о товарах, ценах и заказах.
* HL-справочник — highload-блок в Битриксе, используемый для хранения значений свойств товара с возможностью прикрепления изображений.
* 1c_exchange.php — скрипт на сайте, к которому обращается 1С для выполнения всех этапов обмена данными.
на полезный блог MWI


