КД, Перенос свойств объектов
Перенос реквизитов объектов из 77 в свойства в 8 с помощью конфигурации «Конвертация данных»
ПВД
ВходящиеДанные = СоздатьОбъект("СписокЗначений");
// Преобразование в конкретный справочник
// Для этого случая должен быть определено правило конвертации справочника Регионы
Если ПустоеЗначение(Объект.Регион) = 0 Тогда
ВходящиеДанные.Установить("Объект", Объект);
ВходящиеДанные.Установить("Свойство", "Регион");
ВходящиеДанные.Установить("НазначениеСвойства", "Справочник_Контрагенты");
ВходящиеДанные.Установить("Значение", Объект.Регион);
ВходящиеДанные.Установить("ТипПриемника", "СправочникСсылка.Регионы");
ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ЗначенияСвойствОбъектов");
КонецЕсли;
// Преобразование в общий справочник
Если ПустоеЗначение(Объект.Регион) = 0 Тогда
ВходящиеДанные.Установить("Объект", Объект);
ВходящиеДанные.Установить("Свойство", "Регион");
ВходящиеДанные.Установить("НазначениеСвойства", "Справочник_Контрагенты");
ВходящиеДанные.Установить("Значение", Строка(Объект.Регион));
ВыгрузитьПоПравилу(,, ВходящиеДанные,, "ЗначенияСвойствОбъектов");
КонецЕсли;
ПКО «ЗначенияСвойствОбъектов»
ПКС «Объект», ПолучатьИзВходящихДанных
Событие «Перед выгрузкой»
ОбъектИсточник = ВходящиеДанные.Получить("Объект");
НазначениеСвойства = ВходящиеДанные.Получить("НазначениеСвойства");
Если ТипЗначенияСтр(ОбъектИсточник) = "Справочник" Тогда
// В типовых правилах Бух77 > БП8 определено несколько правил для
// контрагентов и договоров
Если ОбъектИсточник.Вид() = "Контрагенты" Тогда
ИмяПКО = "Контрагенты";
ИначеЕсли ОбъектИсточник.Вид() = "Договоры" Тогда
ИмяПКО = "ДоговорыКонтрагентов";
Иначе
ИмяПКО = "";
Номер = НайтиПравило(ОбъектИсточник, ИмяПКО);
Если Номер > 0 Тогда
ИмяПКО = мТаблицаПравилКонвертацииОбъектов.ПолучитьЗначение(Номер, "Код");
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПКС «Свойство», правило «СвойстваОбъектов», ПолучатьИзВходящихДанных
Событие «Перед выгрузкой»
ИсходящиеДанные = ВходящиеДанные;
ПКС «Значение», правило «ЗначенияСвойствОбъектов_Значения», ПолучатьИзВходящихДанных
Событие «Перед выгрузкой»
ИсходящиеДанные = ВходящиеДанные;
Если ПустоеЗначение(ВходящиеДанные.Получить("ТипПриемника")) = 0 Тогда
ТипПриемника = ВходящиеДанные.Получить("ТипПриемника");
ИмяПКО = "";
Номер = НайтиПравило(ВходящиеДанные.Получить("Значение"), ИмяПКО);
Если Номер > 0 Тогда
ИмяПКО = мТаблицаПравилКонвертацииОбъектов.ПолучитьЗначение(Номер, "Код");
КонецЕсли;
Иначе
// Для чисел, дат и строк
ТипПриемника = ТипЗначенияСтр(ВходящиеДанные.Получить("Значение"));
ИмяПКО = "";
КонецЕсли;
Конвертация произвольных значений в справочник «ЗначенияСвойствОбъектов»
ПКО "ЗначенияСвойствОбъектов_Значения"
ПКС «Владелец», ПолучатьИзВходящихДанных, Поиск
Событие «Перед выгрузкой»
Значение = ВходящиеДанные.Получить("Свойство");
ИсходящиеДанные = ВходящиеДанные;
ПКС «Наименование», Поиск Событие «Перед выгрузкой»
Значение = Строка(Источник);
ПКО "СвойстваОбъектов"
ПКС «НазначениеСвойства», ПолучатьИзВходящихДанных, Поиск
ПКС «Наименование», Поиск
Событие «Перед выгрузкой»
Значение = Источник;
ПКО "СвойстваОбъектов"
ПКС «НазначениеСвойства», ПолучатьИзВходящихДанных, Поиск
ПКС «Наименование», Поиск
Событие «Перед выгрузкой»
Значение = Источник;
Демопример для Бух77 > УТ10.3
http://acsent.nm.ru/files/others/PerenosSvoistv.zip
P.S. Желающие более подбробно изучить КД могут почитать книгу 4601546049094 «1С:Предприятие 8. Конвертация данных: обмен данным между прикладными решениями» Издательство 1С-Питер. 195 стр + CD с примерами и конфигурацией.
