Синхронизация данных между 1С:Управление торговлей 11 и 1С-Битрикс — процесс многогранный, и отсутствие цен на сайте при наличии их в учетной системе является одной из самых распространенных проблем. Разберем ситуацию, когда в настройках обмена флаг «Выгружать цены» установлен, виды цен созданы, но на стороне сайта каталог остается «пустым» в плане стоимостных показателей. Проанализируем технические нюансы настройки типовых соглашений, прав доступа и логику сопоставления объектов через уникальные идентификаторы GUID.
В современных версиях конфигурации Управление торговлей 11 механизмы выгрузки цен тесно завязаны на справочнике Типовые соглашения с клиентами. Если мы просто создадим вид цены (например, «Прайс-лист»), этого будет недостаточно для модуля обмена. Система должна понимать, на каких условиях эта цена предоставляется внешним пользователям сайта.
Рассмотрим порядок действий для проверки соглашений:
Вид цены.Одной из наиболее неочевидных причин отсутствия цен в файле выгрузки является признак доступности данных для внешней среды. Выясним причину: 1С защищает коммерческую информацию, и пока мы явно не разрешим использование соглашения для внешних систем, данные не попадут в XML-пакет.
Разберем, как включить необходимую опцию:
В карточке типового соглашения должен быть установлен флаг Доступно внешним пользователям. Однако часто пользователи сталкиваются с тем, что этого поля просто нет в интерфейсе. Это связано с настройками функциональных опций программы.
Проделаем следующие шаги:
Проанализируем настройки самого модуля обмена с сайтом. Даже если соглашение настроено идеально, оно должно попасть в «фильтр» выгрузки. Посмотрим на настройки узла обмена:
Совет: Рекомендуется использовать именно «Типовые соглашения», так как индивидуальные соглашения привязаны к конкретному партнеру и могут некорректно обрабатываться при анонимном просмотре сайта пользователями.
Выясним техническую сторону вопроса: как Битрикс понимает, какую цену из файла prices.xml положить в конкретный тип цены на сайте? Модуль обмена от Битрикс использует в качестве идентификатора типа цены (ИдТипаЦены) GUID типового соглашения из 1С, а не идентификатор самого вида цены.
Рассмотрим пример из XML-файла выгрузки:
<Цена>
<Представление>23 999 RUB за шт</Представление>
<ИдТипаЦены>00d3ee01-673b-11e8-80c5-00224d7fb1fc</ИдТипаЦены>
<ЦенаЗаЕдиницу>23999</ЦенаЗаЕдиницу>
<Валюта>RUB</Валюта>
</Цена>
Чтобы цены «сели» в существующий на сайте тип цен (например, «BASE» или «Розничная»), выполним следующие действия:
GUID нашего соглашения. Это можно сделать программно или с помощью консоли запросов.GUID соглашения из 1С (тот самый ИдТипаЦены из примера выше).Проанализируем ситуацию, если цены все еще не отображаются. Существует два тонких момента, связанных с заполнением полей в 1С:
Сегмент партнеров должно оставаться пустым. Если там указан конкретный сегмент, 1С может посчитать эту цену «закрытой» для общей выгрузки, так как она предназначена только для определенной группы контрагентов.RUB. Это критично для корректного парсинга файлов import.xml и prices.xml.Если данные успешно переданы (вы видите обновленные цены в админке сайта), но покупатели их не видят, проверим настройки прав на самом сайте:
Подводя итог, можно сказать, что корректная выгрузка цен — это всегда связка из трех составляющих: Действующее типовое соглашение, Разрешение на доступ внешним пользователям и Сопоставление Внешнего кода (GUID). Пройдя по этим шагам, мы обеспечим стабильную передачу актуальной стоимости товаров на витрину интернет-магазина.