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