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