При настройке и кастомизации интеграции интернет-магазина с типовой конфигурацией 1С:Управление торговлей 11 разработчики часто ищут привычные правила конвертации данных (КД 2.0 или КД 3.0), чтобы добавить выгрузку новых реквизитов или скорректировать логику формирования каталога. Разберем архитектурные особенности обмена с сайтом, выясним причину отсутствия классических правил и определим, где именно в конфигурации заложена логика выгрузки.
В отличие от межсистемного обмена между базами 1С (где задействован регистр сведений ПравилаДляОбменаДанными и конвертация EnterpriseData), типовой обмен с веб-сайтом в УТ 11 реализован по стандарту CommerceML (CML 2.x / 3.x).
Проанализируем ключевые компоненты механизма обмена с интернет-магазином:
ОбменССайтом — фиксирует состав объектов, участвующих в интеграции, и отвечает за регистрацию изменений элементов справочников и документов.ОбменССайтом, ОбменССайтомСервер, ОбменССайтомПереопределяемый и ОбменССайтомСобытия содержат программный код, который обходит выборку данных и формирует файлы выгрузки (import.xml, offers.xml, rests.xml, prices.xml) с помощью объекта ЗаписьXML.Когда требуется передать на сайт новое поле товара, рассмотрим два основных варианта реализации: через стандартные свойства или через доработку кода.
Если для номенклатуры требуется выгрузить произвольное поле (например, бренд, цвет, материал или объем), наиболее простым и надежным решением является использование механизма типовых дополнительных реквизитов:
ДополнительныеРеквизитыИСведения.<ЗначенияСвойств> файла import.xml.Большинство современных CMS с поддержкой протокола CommerceML автоматически считывают эти свойства и распределяют их в соответствующие поля и фильтры на стороне веб-витрины без необходимости изменять код 1С.
Если реквизит добавлен в метаданные справочника СправочникСсылка.Номенклатура или требуется изменить логику формирования тегов XML, разберем по шагам процесс доработки:
ОбменССайтом (или используемой обработки выгрузки) и добавляем новый реквизит в набор данных-запрос и структуру полей.ОбменССайтомСервер или переопределяемых модулях интеграции. Рекомендуется выполнять эти изменения через расширение конфигурации.ЗаписьXML.Для того чтобы убедиться в корректности выгружаемых полей и исключить ошибки на стороне сайта, разберем процедуру локального тестирования:
import.xml в текстовом редакторе.