Добрый день, выгрузка из конфигурации на ОФ (ут 10.3) в конфу на УФ (УНФ 1.6).
Переношу с помощь "алгоритма" в котором все получаю, но проблем в том, что не знаю как обратится к конкретному допреквизиту в УНФ.
код отрабатывает нормально,
КоллекцияОбъектов = Новый ТаблицаЗначений;
КоллекцияОбъектов.Колонки.Добавить("Значение");
КоллекцияОбъектов.Колонки.Добавить("Свойство");
Запрос = Новый Запрос("
|ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Значение,
| ЗначенияСвойствОбъектов.Свойство.Наименование как Наименование
| ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
| ГДЕ
| ЗначенияСвойствОбъектов.Объект = &Объект");
Запрос.УстановитьПараметр("Объект", Источник.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Выборка.Наименование = "Доп реквизит" тогда
НоваяСтрока1 = КоллекцияОбъектов.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока1, Выборка);
ДопСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Доп реквизит)";
НоваяСтрока1.Значение = Выборка.Значение;
НоваяСтрока1.Свойство = ДопСвойство;
КонецЕсли;
КонецЦикла;
Показать
но при выгрузке разумеется ругается на "ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения" так как этого нет в конфе УТ,
если в "НоваяСтрока1.Свойство" прописать текст, то не находит при загрузке данных.
Подскажите пожалуйста, как перенести данные в свой Дополнительный реквит ?
(1) я с УТ 10.3 дела не имел, но недавно мне приходилось загружать номенклатуру с допреквизитами в УТ 11.4, вдруг как-то смогу помочь...
В УТ 11.4 есть Справочник.НаборыДополнительныхРеквизитовИСведений, и как я понимаю в нём хранятся реквизиты и сведения по владельцам (Справочники и Документы). Есть справочник ЗначенияСвойствОбъектов, как я понимаю, он хранит доступные значения допреквизитов. Есть ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения (которых нет в УТ 10.3, как вы упомянули), оно связующее звено между двумя предыдущими упомянутыми справочниками.
(11) Допреквизит подчинён какому-либо объекту метаданных. Сначала надо в Справочник.НаборыДополнительныхРеквизитовИСведений найти объект метаданных к которому принадлежит допреквизит. Искать, я думаю, лучше всего через наименование и родителя. Но думаю наименования будет достаточно. Например:
Спр= Справочники.НаборыДополнительныхРеквизитовИСведений.НайтиПоНаименованию("Обувь (Для характеристик)", Истина);
После этого можно перебрать табличную часть ДополнительныеРеквизиты циклом:
ТЧ = Спр.ДополнительныеРеквизиты;
Для каждого Элем из ТЧ цикл
Если Элем.Свойство.Наименование = "Размер (Обувь (Для характеристик))" Тогда
Сообщить(Элем.Свойство);
КонецЕсли;
КонецЦикла;
И, в принципе, этот Элем и будет ссылкой на допреквизит. ДополнительныеРеквизиты.Свойство по типу это ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.
Или если через запрос, вот так вот:
ВЫБРАТЬ
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка КАК Ссылка,
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.НомерСтроки КАК НомерСтроки,
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Свойство КАК Свойство,
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.ПометкаУдаления КАК ПометкаУдаления
ИЗ
Справочник.НаборыДополнительныхРеквизитовИСведений.ДополнительныеРеквизиты КАК НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты
ГДЕ
НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Ссылка = &Ссылка
И НаборыДополнительныхРеквизитовИСведенийДополнительныеРеквизиты.Свойство = &Свойство
Создайте ПКО с полем поиска Наименование, и передавайте в него структуру с нужным набором полей и главное заполненным полями для поиска.
еще можно прям напрямую сделать ПКО конвертации Ссылки на Свойство в План видов характеристик, и передавать саму ссылку на Свойство, то тогда они должны совпадать между базами.
(6) доп. реквизиты в УНФ хранятся в табличной части справочника, в УТ храниться в регистре, вытянуть значение из УТ я могу, но не могу понять как обратиться к уже созданному доп реквизиту, или может доп реквизит можно создать программно при загрузке?
(8) так будет слишком сложно, но можете передать доп реквизиты в виде параметра и заполнить их в объекте приемнике при загрузке. либо второй вариант сделать свою выгрузку справочника и передавать вместо ссылки справочника структуру с необходимыми свойствами согласно ПКО приемника. как пример в моих правилах по ЗУПУ так много что сделано, это проще в реализации хоть и сложнее по пониманию механизма.