При обновлении конфигураций (например, при переходе с редакции 2.2 на 2.4 или более свежие релизы «1С:Комплексная автоматизация» и «1С:ERP») разработчики и администраторы нередко сталкиваются со сбоем регламентного обмена с интернет-магазином. В журнале регистрации или при ручном запуске процесса возникает исключение:
{ОбщийМодуль.ОбменССайтом.Модуль(658)}: Ошибка при вызове метода контекста (Выполнить)
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек1.Настройки,,,
по причине:
Ошибка компоновки макета
по причине:
Поле не найдено "Номенклатура.ВидНоменклатуры"
Разберем причины возникновения этой ошибки, выясним, где хранятся макеты и настройки обмена, а также рассмотрим пошаговые способы восстановления корректной выгрузки каталога товаров.
Проанализируем механизм формирования данных для выгрузки. Типовой обмен с сайтом использует механизм компоновки данных (СКД). Процесс выгрузки строится следующим образом:
СхемаКомпоновкиДанных.КомпоновщикНастроек1.Настройки).КомпоновщикМакета.Выполнить() объединяет схему с пользовательскими настройками в готовый макет компоновки.Если в процессе обновления конфигурации разработчики типового решения изменили структуру СКД (переименовали псевдонимы полей запроса, изменили группировки или пути к реквизитам), а в существующем узле обмена остались старые сериализованные отборы, метод компоновки падает с ошибкой. Платформа не может сопоставить сохраненное в узле поле Номенклатура.ВидНоменклатуры с доступными полями обновленной схемы.
Посмотрим, где физически расположены используемые компоненты:
ПланыОбмена → ОбменССайтом (или аналогичный узел специализированного модуля интеграции).Макеты расположены схемы компоновки данных, отвечающие за формирование выгрузки каталога товаров, цен, остатков и заказов.Это самый простой и быстрый способ, не требующий внесения изменений в код или структуру метаданных. Разберем его по шагам:
Если очистка фильтров не помогла избавиться от невалидных скрытых настроек в структуре узла, применим создание нового элемента:
Если конфигурация дорабатывалась или схема выгрузки была изменена программистом, необходимо проверить корректность самой СКД. Рассмотрим порядок действий:
ОбменССайтом.ВидНоменклатуры присутствует в выборке таблицы номенклатуры и не переопределено некорректным псевдонимом.Если типовой функционал обмена в конфигурации устарел или регулярно дает сбои при обновлениях релиза, рекомендуется использовать специализированный официальный модуль интеграции для вашей CMS (например, модуль обмена с 1С-Битрикс).
Установка такого модуля в виде отдельного расширения конфигурации (.cfe) изолирует механизмы обмена от типовых объектов конфигурации, упрощает обновление метаданных и предоставляет более гибкие инструменты управления выгрузкой каталога и заказов.