Почему не выгружаются остатки и цены при обмене 1С:Управление торговлей 11 с 1С-Битрикс: Малый бизнес и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Интеграция между системами 1С:Управление торговлей 11 (УТ 11) и 1С-Битрикс: Малый бизнес — один из наиболее популярных сценариев построения систем электронной коммерции. Однако в процессе настройки выгрузки товаров пользователи и администраторы часто сталкиваются с неприятной проблемой: номенклатура, категории и изображения успешно переносятся на сайт, но цены и остатки товаров остаются пустыми.

В этой статье мы подробно разберем, почему возникает данная проблема, рассмотрим по шагам процесс её устранения и проанализируем неочевидные тонкости настройки как со стороны 1С:УТ 11, так и со стороны CMS 1С-Битрикс в редакции «Малый бизнес».

Шаг 1. Глобальная активация обмена с сайтом в 1С:УТ 11

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

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

  1. Перейдем в раздел НСИ и администрирование, затем выберем пункт Настройка интеграции и откроем подраздел Обмен с сайтом.
  2. Установим флаг (галочку) напротив опции Обмен с сайтом. Это действие активирует скрытые ранее реквизиты в справочниках и документах системы.
  3. Вернемся в наше Типовое соглашение (раздел CRM и маркетинг -> Типовые соглашения с клиентами). Теперь на форме соглашения появится необходимая нам галочка Доступно для обмена с сайтом. Обязательно установим её и запишем изменения.

Шаг 2. Проверка ограничений и настроек соглашения в 1С

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

  1. Сегмент клиентов: Проверьте, чтобы в используемом типовом соглашении поле Сегмент клиентов оставалось абсолютно пустым. Если там указан конкретный сегмент, правила обмена проигнорируют данное соглашение, и цены на сайт не попадут.
  2. Фактическое наличие зарегистрированных цен: Убедитесь, что цены по выбранному типу цен физически существуют в базе данных. Они должны быть зарегистрированы документом Установка цен номенклатуры на актуальную дату. Если цен в системе нет, то и выгружать будет нечего.
  3. Настройки узла обмена: В настройках самого узла обмена (на вкладке «Общие настройки» или в таблице отборов) проверьте строку отбора по соглашениям. Убедитесь, что там выбрано именно то типовое соглашение, в котором мы ранее активировали обмен с сайтом.
  4. Доступ внешних пользователей: В редких случаях системе требуется явное разрешение на работу с внешними потребителями данных. Перейдем в НСИ и администрирование -> Настройки пользователей и прав и проверим, активна ли опция Разрешить доступ внешним пользователям.

Шаг 3. Учет специфики редакции 1С-Битрикс «Малый бизнес»

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

Проблема №1: Ограничение на один тип цены и несовпадение UUID (Внешнего кода)

В «Малом бизнесе» разрешено использовать только один тип цены (базовый). При первой интеграции часто происходит рассинхронизация уникальных идентификаторов. 1С генерирует свой UUID для типа цен, а Битрикс при установке создает базовый тип цены со своим внутренним идентификатором. Поскольку создать второй тип цены Битрикс «Малый бизнес» не позволяет, приходящие из 1С цены с новым UUID просто отбрасываются.

Разберем по шагам, как решить эту проблему через синхронизацию внешних кодов:

  1. В настройках узла обмена в 1С временно переключим режим на Выгрузка в каталог на диске и запустим обмен.
  2. Откроем созданный локально файл цен (обычно это prices.xml или offers.xml) с помощью любого текстового редактора.
  3. Найдем тег <ТипыЦен> и скопируем уникальное строковое значение из тега <Ид> (оно выглядит как набор букв и цифр через дефисы).
  4. Перейдем в административную панель вашего сайта на Битриксе. Откроем раздел Магазин -> Настройки -> Цены -> Типы цен.
  5. Откроем для редактирования единственный базовый тип цены и найдем поле Внешний код. Вставим туда скопированный ранее UUID из XML-файла и сохраним настройки. Теперь Битрикс поймет, что приходящая из 1С цена относится именно к этому базовому типу.

Проблема №2: Выгрузка остатков по складам при односкладовом учете на сайте

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

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

Шаг 4. Методика диагностики: локализуем проблему

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

Метод 1. Анализ файлов выгрузки на локальном диске

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

Метод 2. Сохранение логов импорта на сервере Битрикса

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

  1. Подключимся к серверу сайта по FTP или через панель управления хостингом.
  2. Откроем файл конфигурации по пути /bitrix/php_interface/dbconn.php.
  3. Вставим в конец файла следующую PHP-строку:
    define("BX_CATALOG_IMPORT_1C_PRESERVE", true);
  4. Запустим обмен из 1С еще раз. Теперь все присланные файлы не будут удаляться автоматически. Их можно будет найти и детально изучить в папке сервера /upload/1c_catalog/. Это поможет визуально сопоставить структуру XML с ожидаемой структурой базы данных сайта.

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

← На главную