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

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

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

Шаг 1. Анализируем использование соглашений в УТ 11

В современных версиях конфигурации Управление торговлей 11 механизмы выгрузки цен тесно завязаны на справочнике Типовые соглашения с клиентами. Если мы просто создадим вид цены (например, «Прайс-лист»), этого будет недостаточно для модуля обмена. Система должна понимать, на каких условиях эта цена предоставляется внешним пользователям сайта.

Рассмотрим порядок действий для проверки соглашений:

  1. Перейдем в раздел CRM и маркетинг — Типовые соглашения с клиентами.
  2. Проверим наличие действующего соглашения. Если его нет, создадим новое.
  3. Убедимся, что в соглашении на вкладке «Условия продаж» выбран нужный Вид цены.
  4. Важный нюанс: Статус соглашения обязательно должен быть установлен в значение Действует. Соглашения в статусе «Не согласовано» или «Закрыто» игнорируются модулем выгрузки.

Шаг 2. Настройка прав доступа для внешних пользователей

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

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

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

Проделаем следующие шаги:

  1. Перейдем в НСИ и администрирование — Настройка НСИ и разделов — Администрирование — Настройки пользователей и прав.
  2. Развернем подраздел Внешние пользователи и установим галочку Разрешить доступ внешним пользователям.
  3. После этого вернемся в типовое соглашение — заветный флаг должен появиться на форме. Установим его и запишем изменения.

Шаг 3. Настройка фильтров в узле обмена

Проанализируем настройки самого модуля обмена с сайтом. Даже если соглашение настроено идеально, оно должно попасть в «фильтр» выгрузки. Посмотрим на настройки узла обмена:

  1. Откроем Узлы обмена с сайтами.
  2. На вкладке Выгрузка товаров найдем таблицу настроек отбора.
  3. Нам необходимо убедиться, что в отборах по номенклатуре или в дополнительных настройках указано именно то соглашение, которое мы подготовили на предыдущих этапах.

Совет: Рекомендуется использовать именно «Типовые соглашения», так как индивидуальные соглашения привязаны к конкретному партнеру и могут некорректно обрабатываться при анонимном просмотре сайта пользователями.

Шаг 4. Синхронизация GUID и внешних кодов

Выясним техническую сторону вопроса: как Битрикс понимает, какую цену из файла prices.xml положить в конкретный тип цены на сайте? Модуль обмена от Битрикс использует в качестве идентификатора типа цены (ИдТипаЦены) GUID типового соглашения из 1С, а не идентификатор самого вида цены.

Рассмотрим пример из XML-файла выгрузки:


<Цена>
    <Представление>23 999 RUB за шт</Представление>
    <ИдТипаЦены>00d3ee01-673b-11e8-80c5-00224d7fb1fc</ИдТипаЦены>
    <ЦенаЗаЕдиницу>23999</ЦенаЗаЕдиницу>
    <Валюта>RUB</Валюта>
</Цена>

Чтобы цены «сели» в существующий на сайте тип цен (например, «BASE» или «Розничная»), выполним следующие действия:

  1. В 1С узнаем GUID нашего соглашения. Это можно сделать программно или с помощью консоли запросов.
  2. В административной панели 1С-Битрикс перейдем в Магазин — Настройки магазина — Типы цен.
  3. Найдем нужный тип цены и в поле Внешний код вставим GUID соглашения из 1С (тот самый ИдТипаЦены из примера выше).
  4. Сохраним настройки и запустим повторную выгрузку.

Шаг 5. Проверка сегментации и валют

Проанализируем ситуацию, если цены все еще не отображаются. Существует два тонких момента, связанных с заполнением полей в 1С:

  1. Сегмент партнеров: В типовом соглашении поле Сегмент партнеров должно оставаться пустым. Если там указан конкретный сегмент, 1С может посчитать эту цену «закрытой» для общей выгрузки, так как она предназначена только для определенной группы контрагентов.
  2. Коды валют: Убедимся, что символьный код валюты в 1С (раздел Настройки валют) совпадает с кодом в Битриксе. Например, вместо «руб.» в 1С должен быть указан международный код RUB. Это критично для корректного парсинга файлов import.xml и prices.xml.

Шаг 6. Настройки на стороне Битрикса после загрузки

Если данные успешно переданы (вы видите обновленные цены в админке сайта), но покупатели их не видят, проверим настройки прав на самом сайте:

  1. В настройках типа цены на сайте (Магазин -> Типы цен) проверим колонки «Кто может видеть цену» и «Кто может покупать по этой цене».
  2. Убедимся, что установлены галочки для групп «Все пользователи» и «Незарегистрированные пользователи».
  3. Не забудем сбросить кэш сайта после внесения изменений в настройки цен, так как Битрикс может отображать старые данные из кеша компонентов.

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

← На главную