Перенос данных между конфигурациями УТП и ERP часто сопряжен с усложнением структуры объектов. В системе ERP справочник Ресурсные спецификации тесно связан с механизмом Этапы производства, который в старых конфигурациях либо отсутствовал, либо был реализован иначе. Рассмотрим, как правильно организовать перенос и создание подчиненных записей.
Если необходимо передать дополнительные данные из карточки Номенклатура (например, подразделение), которых нет напрямую в Спецификации, мы можем воспользоваться механизмом параметров Конвертации данных 2.1.
При выгрузке правила для объекта Спецификации на стороне источника вычисляем нужное значение (например, подразделение).
Параметры.Вставить("ПодразделениеДляЭтапа", Объект.Номенклатура.Подразделение);
После загрузки для Ресурсная спецификация, считываем этот параметр и создаем объект Этап производства.Важно помнить, что объект Ресурсная спецификация в момент выполнения После загрузки уже существует в базе, что позволяет нам использовать его Ссылку как владельца для нового этапа.
Попытки создания сложных зависимых объектов «на лету» внутри правил выгрузки часто приводят к ошибкам из-за неполноты данных или отсутствия обязательных реквизитов (например, Рабочих центров). Поэтому профессиональный подход заключается в разделении задачи на два этапа:
Спецификаций и всей связанной Номенклатуры. В базе ERP создаются все необходимые объекты.Ресурсных спецификаций.Разберем, почему второй вариант является наиболее надежным:
При реализации создания Этапов производства обратите внимание на следующие моменты:
Во-первых, Этап производства в ERP — это не просто запись, а часть производственного процесса. При его создании через код в После загрузки или отдельной обработкой, обязательно используйте методы Объект.Записать() или создание через Документы.ЭтапПроизводства.СоздатьЭлемент() (или справочник, если используется справочная структура).
Во-вторых, если вы передаете подразделение, убедитесь, что оно корректно сопоставлено между базами. Если справочники Подразделения не идентичны, используйте Правила конвертации объектов для автоматического поиска по коду или наименованию.
В-третьих, если поиск владельца (Спецификации) вызывает ошибку, убедитесь, что объект Ресурсная спецификация был успешно записан. Используйте Объект.Ссылка только после вызова Записать().
Анализируя текущую задачу, мы приходим к выводу, что наиболее гибким методом является использование параметров для передачи контекста (если данные нужны для разового создания) или использование отложенного формирования данных после основного обмена. Это позволит избежать «замусоривания» правил Конвертации данных 2.1 и сделает процесс переноса более предсказуемым и легко поддерживаемым в будущем.