Синхронизация данных между 1С и сайтом на платформе Bitrix — это стандартная задача, которая, тем не менее, часто сопровождается техническими сложностями. Типичная ситуация: номенклатура успешно выгружается, создавая структуру каталога, но поля цен и остатков остаются пустыми. В этой статье мы подробно разберем, почему так происходит, и пройдем по всем этапам настройки, чтобы данные отображались корректно.
Разберем основной механизм, по которому Bitrix понимает, к какому товару, складу или типу цены относятся данные из XML-файла. Для системы управления сайтом название склада или типа цены (например, «Розничная на Смольном») является лишь человекочитаемым заголовком. Внутренняя логика обмена строится на использовании внешних кодов (они же XML_ID).
Проанализируем типичную ошибку: пользователь вручную меняет название типа цены на сайте на то, которое указано в 1С. Это не помогает, потому что 1С при выгрузке передает уникальный идентификатор (GUID) объекта. Рассмотрим, как это работает:
offers.xml этот идентификатор помещается в тег Ид.Важный вывод: Чтобы цены и остатки «привязались», в поле «Внешний код» в настройках Bitrix нужно вставлять не название, а именно UID (УИД) из 1С. В последних версиях модулей обмена от Битрикс для 1С существует специальный реквизит Б_Идентификатор, который по умолчанию совпадает с UID.
Выясним, где именно в административной панели сайта нужно вносить изменения. Нам необходимо убедиться, что идентификаторы типов цен и складов синхронизированы.
Для типов цен: Перейдем в раздел Магазин -> Настройки -> Типы цен. Найдем нужный тип цены и проверим поле «Внешний код». Если там указано BASE или произвольное название, а 1С передает GUID, данные не загрузятся. Необходимо скопировать UID из 1С (его можно найти в ссылке объекта или через консоль запросов) и вставить в это поле.
Для складов: Аналогично перейдем в Магазин -> Складской учет -> Склады. В карточке склада поле «Внешний код» должно строго соответствовать идентификатору магазина/склада в 1С. Если вы используете расширение для обмена, проверьте вкладку настройки складов — там часто есть таблица сопоставления, где можно явно указать, какой склад 1С соответствует складу на сайте.
Иногда данные физически попадают в базу данных сайта, но не отображаются в публичной части. Проанализируем настройки модуля «Торговый каталог».
Рассмотрим по шагам, что нужно проверить в настройках инфоблока каталога:
Посмотрим на настройки узла обмена в самой 1С. Часто причина кроется в том, что данные просто не включаются в файл выгрузки.
Разберем основные моменты в настройках расширения или стандартного модуля:
GUID, который не совпадет с тем, что вы уже прописали на сайте вручную.2.07 или выше. В старых версиях (например, 2.05) структура передачи остатков по складам отличается, что может приводить к ошибкам парсинга на стороне сайта.Если настройки кажутся верными, но результат не достигнут, перейдем к «тяжелой артиллерии» — анализу логов и файлов обмена. Это самый надежный способ выяснить причину проблемы.
Выполним выгрузку из 1С не напрямую на сайт, а в локальный каталог на диске. Найдем файл offers.xml и откроем его любым текстовым редактором. Поищем в файле конкретный товар по его артикулу или наименованию. Нас интересует структура внутри тега товара:
<Цены>
<Цена>
<ИдТипаЦены>fa389865-6490-11e8-80db-00155d013e02</ИдТипаЦены>
<ЦенаЗаЕдиницу>1500</ЦенаЗаЕдиницу>
<Валюта>RUB</Валюта>
</Цена>
</Цены>
<Склады>
<Склад>
<Ид>b2c5e533-552d-11e7-80c3-00155d013e02</Ид>
<Количество>10</Количество>
</Склад>
</Склады>
Проанализируем полученные данные. Если в файле ИдТипаЦены или Ид склада не совпадают с тем, что вы ввели в поле «Внешний код» на сайте — это и есть причина проблемы. Если же данных <Цены> или <Склады> в файле вообще нет, значит, проблему нужно искать в настройках фильтров выгрузки на стороне 1С (например, цена не установлена документом «Установка цен номенклатуры» или товар не входит в остатки по выбранным складам).
Напоследок рассмотрим ситуацию, когда в административной панели сайта данные появились (вы видите цифры в карточке товара), а в самом интернет-магазине — нет. В этом случае выполним следующие действия:
Таким образом, последовательная проверка цепочки «Данные в 1С -> Настройки выгрузки -> Файл XML -> Внешние коды в Bitrix -> Настройки каталога на сайте» позволяет гарантированно решить проблему пустых остатков и цен.