КД, Перенос свойств объектов

Перенос реквизитов объектов из 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 с примерами и конфигурацией.