Интеграция между системами 1С:Управление торговлей 11 (УТ 11) и 1С-Битрикс: Малый бизнес — один из наиболее популярных сценариев построения систем электронной коммерции. Однако в процессе настройки выгрузки товаров пользователи и администраторы часто сталкиваются с неприятной проблемой: номенклатура, категории и изображения успешно переносятся на сайт, но цены и остатки товаров остаются пустыми.
В этой статье мы подробно разберем, почему возникает данная проблема, рассмотрим по шагам процесс её устранения и проанализируем неочевидные тонкости настройки как со стороны 1С:УТ 11, так и со стороны CMS 1С-Битрикс в редакции «Малый бизнес».
Выясним первоочередную причину, с которой часто сталкиваются пользователи при первоначальной настройке. Для того чтобы цены товаров выгружались, в программе 1С должно быть создано и настроено Типовое соглашение с клиентами. Но просто создать соглашение недостаточно — в его свойствах должен быть активен флаг Доступно для обмена с сайтом.
Если вы открыли соглашение и не обнаружили этого флага, причина кроется в отключенной глобальной настройке обмена. Выполним следующие действия для исправления ситуации:
Обмен с сайтом. Это действие активирует скрытые ранее реквизиты в справочниках и документах системы.Типовое соглашение (раздел CRM и маркетинг -> Типовые соглашения с клиентами). Теперь на форме соглашения появится необходимая нам галочка Доступно для обмена с сайтом. Обязательно установим её и запишем изменения.Даже при включенной опции обмена выгрузка цен может блокироваться внутренними проверками и фильтрами 1С. Проанализируем ключевые параметры соглашения, которые могут повлиять на результат:
Сегмент клиентов оставалось абсолютно пустым. Если там указан конкретный сегмент, правила обмена проигнорируют данное соглашение, и цены на сайт не попадут.Установка цен номенклатуры на актуальную дату. Если цен в системе нет, то и выгружать будет нечего.Разрешить доступ внешним пользователям.Редакция Битрикса «Малый бизнес» имеет свои программные и лицензионные ограничения, которые напрямую влияют на успешность интеграции с 1С. Рассмотрим две основные проблемы, связанные с этой редакцией:
Проблема №1: Ограничение на один тип цены и несовпадение UUID (Внешнего кода)
В «Малом бизнесе» разрешено использовать только один тип цены (базовый). При первой интеграции часто происходит рассинхронизация уникальных идентификаторов. 1С генерирует свой UUID для типа цен, а Битрикс при установке создает базовый тип цены со своим внутренним идентификатором. Поскольку создать второй тип цены Битрикс «Малый бизнес» не позволяет, приходящие из 1С цены с новым UUID просто отбрасываются.
Разберем по шагам, как решить эту проблему через синхронизацию внешних кодов:
Выгрузка в каталог на диске и запустим обмен.prices.xml или offers.xml) с помощью любого текстового редактора.<ТипыЦен> и скопируем уникальное строковое значение из тега <Ид> (оно выглядит как набор букв и цифр через дефисы).Внешний код. Вставим туда скопированный ранее UUID из XML-файла и сохраним настройки. Теперь Битрикс поймет, что приходящая из 1С цена относится именно к этому базовому типу.Проблема №2: Выгрузка остатков по складам при односкладовом учете на сайте
Если в 1С у вас ведется детальный учет по нескольким складам (например, в отборах обмена указан конкретный склад или, наоборот, настроена детальная выгрузка по складам), а на сайте в Битриксе складской количественный учет настроен как единый, система может не распределить остатки. Для редакции «Малый бизнес» рекомендуется передавать суммарный остаток.
Чтобы избежать ошибок распределения, в настройках обмена 1С на вкладке выгрузки остатков снимите флаг Выгружать остатки по складам. В этом случае 1С самостоятельно просуммирует остатки по всем разрешенным складам и передаст на сайт единое общее количество для каждой позиции номенклатуры.
Если после выполнения всех настроек остатки и цены все равно не отображаются на сайте, нам необходимо точно выяснить, на каком этапе происходит сбой — при формировании файлов в 1С или при их импорте на стороне Битрикса. Проанализируем эту ситуацию с помощью двух проверенных методов диагностики:
Метод 1. Анализ файлов выгрузки на локальном диске
Изменим в настройках интеграции в 1С адрес назначения с удаленного сайта на локальную папку компьютера. Запустим процесс выгрузки и проверим содержимое каталога:
rests.xml, prices.xml или offers.xml отсутствуют вовсе, либо внутри них блоки <Цены> и <Количество> пусты — проблема гарантированно на стороне 1С. Следует заново перепроверить проведение документов установки цен, остатки на складах на дату выгрузки и правильность наложения фильтров в узле обмена.Метод 2. Сохранение логов импорта на сервере Битрикса
По умолчанию 1С-Битрикс удаляет временные XML-файлы после завершения процедуры импорта, что сильно затрудняет диагностику. Мы можем заставить систему сохранять файлы обмена для детального анализа. Для этого выполним следующее:
/bitrix/php_interface/dbconn.php.define("BX_CATALOG_IMPORT_1C_PRESERVE", true);
/upload/1c_catalog/. Это поможет визуально сопоставить структуру XML с ожидаемой структурой базы данных сайта.Совместное применение этих шагов и методов диагностики позволит вам быстро локализовать проблему отсутствия цен или остатков при обмене и восстановить корректную синхронизацию вашего интернет-магазина с учетной системой 1С.