Как в Конвертации данных 3.0 найти справочник-получатель и настроить перенос спецификаций

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

При переходе с конфигурации «Конвертация данных 2.0» на версию 3.0 многие разработчики сталкиваются с трудностями в понимании логики сопоставления объектов. В КД 2.0 связь была прямой: «Объект источника — Объект приемника». В КД 3.0 архитектура изменилась — теперь обмен происходит через промежуточный слой в виде универсального формата EnterpriseData (XDTO). В этой статье мы разберем, как именно определить, в какой объект попадают данные в базе-приемнике, и почему возникают сложности с переносом спецификаций из Бухгалтерии предприятия 3.0 в ERP.

Поиск объекта-получателя в интерфейсе КД 3.0

Для того чтобы понять, куда «приземляются» данные при загрузке, нам необходимо проанализировать правила в конфигурации «Конвертация данных 3.0». Давайте разберем этот процесс по шагам:

  1. Откроем информационную базу КД 3.0 и перейдем в список «Правила конвертации объектов» (ПКО).
  2. Найдем нужное нам правило. Если мы анализируем загрузку, нас интересуют ПКО с суффиксом _Получение (например, Справочник_СпецификацииНоменклатуры_Получение).
  3. Внутри карточки ПКО обратим внимание на поле «Объект конфигурации». Именно в этом поле жестко указывается справочник, документ или другой объект метаданных информационной базы-получателя, в который КД запишет данные из XDTO-пакета.

Важный нюанс: если поле Объект конфигурации осталось пустым, это означает, что прямого сопоставления нет. В таком случае логика получения данных реализована программно через «Алгоритмы» или специализированные обработчики событий (например, При поиске или После загрузки). Проанализируем эти обработчики, чтобы найти код, отвечающий за создание или поиск объекта в базе.

Особенности обмена спецификациями между БП 3.0 и ERP

Рассмотрим конкретную ситуацию: перенос спецификаций номенклатуры. Проблема часто заключается не в самой КД 3, а в архитектурной пропасти между системами. Выясним причину, почему данные могут «пропадать» при переносе:

Из-за этой разницы в типовом формате EnterpriseData (тип Справочник.СпецификацииНоменклатуры) данные из БП могут просто не проходить валидацию в ERP. Например, если в ERP ресурсная спецификация требует обязательного заполнения статуса «В разработке» или указания производственного подразделения, а этих данных нет в БП, объект может быть проигнорирован системой загрузки или создан некорректно.

Анализ программного кода в Модуле менеджера обмена

Иногда настройки в самой конфигурации КД 3.0 не дают полной картины, так как правила могут инициализироваться программно. Разберем, как проверить это внутри самой ERP:

Проанализируем модуль менеджера обмена. Для этого в конфигураторе ERP найдем общий модуль (или модуль менеджера), отвечающий за обмен через универсальный формат. Нас интересует процедура ДополнитьПравилаКонвертацииОбъектов.


// Пример того, как программно описывается ПКО в модуле менеджера
Процедура ДополнитьПравилаКонвертацииОбъектов(ПравилаКонвертации) Экспорт
    
    Правило = ПравилаКонвертации.Добавить();
    Правило.Имя = "СпецификацииНоменклатуры";
    Правило.ОбъектДанных = "Справочник.РесурсныеСпецификации"; // Здесь указывается приемник
    Правило.ОбъектФормата = "Справочник.СпецификацииНоменклатуры";
    
КонецПроцедуры

Если вы видите, что в правилах указан ОбъектДанных, отличный от ожидаемого, значит, система выполняет трансформацию «на лету». Если же в коде или в КД 3 связь не прописана, значит, спецификации в данной версии обмена просто не поддерживаются как входящий объект.

Как обеспечить корректный перенос спецификаций

Если стандартная синхронизация не закрывает вашу потребность, мы рекомендуем использовать один из следующих подходов:

1. Использование расширения для перехвата данных

В ERP можно создать расширение, в котором переопределить обработку входящего XDTO-пакета Справочник.СпецификацииНоменклатуры. Мы можем программно заполнить недостающие реквизиты (например, назначить основной статус или заполнить фиктивный этап производства), чтобы объект стал валидным для ERP.

2. Доработка ПКО в КД 3.0

Если вы используете собственную поставку правил обмена, разберем алгоритм доработки:

  1. Создайте новое ПКО для получения данных.
  2. В качестве объекта-получателя выберите Справочник.РесурсныеСпецификации.
  3. В таблице «Правила конвертации свойств» (ПКС) настройте маппинг полей. Помните, что состав БП 3.0 (номенклатура, количество) должен попадать в табличную часть МатериалыИУслуги в ERP.

3. Ручной перенос через промежуточные файлы

Если синхронизация нужна разово для запуска системы, иногда проще выгрузить данные из БП 3.0 в Excel и воспользоваться типовой обработкой «Загрузка данных из файла» в ERP, предварительно подготовив структуру под требования ресурсных спецификаций.

Резюме: Чтобы увидеть, куда переносятся данные в КД 3.0, всегда проверяйте поле Объект конфигурации в ПКО_Получение. Если спецификации не переносятся из БП в ERP, это обусловлено не ошибкой в программе, а фундаментальным различием в структуре производственных данных этих систем. Для решения задачи потребуется либо программная доработка модуля менеджера обмена, либо использование специализированных правил конвертации.

← На главную