![]() |
![]() |
|
v7: Как перенести периодические реквизиты из 7.7 с помощью "Конвертации данных 2.0" | ☑ | ||
---|---|---|---|---|
0
Dwarrior
16.10.09
✎
12:48
|
Добрый день!
Есть задача - перелить данные между двумя почти похожими базами 7.7. Бухгалтерия, стандартная. Пользую для этого "КД2". Все вроде бы сопоставилось, но вот с периодическими реквизитами ерунда - переносятся только последние значения. А как перенести всю историю? Сам нарыл что - надо писать обработчики на каждое ПКО периодического реквизита. Так ли это? Можно это как-то автоматизировать? Или все-таки я изобретаю велосипед и все делается гораздо проще? Кто пробовал - поделитесь опытом? |
|||
1
Господин ПЖ
16.10.09
✎
12:51
|
>>Так ли это?
так. >>Можно это как-то автоматизировать? нафига? В какой регистр сведений надо заливать эти данные знают только телепаты |
|||
2
Dwarrior
16.10.09
✎
12:52
|
Господин ПЖ, у меня перенос между 7 и 7. Во второй базе такой же периодический реквизит, а не регистр сведений
|
|||
3
Господин ПЖ
16.10.09
✎
12:58
|
а... из 7.7 в 7.7. Читать книжку Бояркина, смотреть примеры. В кратце - писать доп. узлы для в элементе справочника типа "История" со значением и периодом. На стороне загрузки читать и устанавливать.
|
|||
4
Dwarrior
16.10.09
✎
13:00
|
спасибо, примерно понятно....
а как называется книжка Бояркина? может кто-то все-таки решал подобную проблему, может есть уже написанные обработчики, которые можно использовать?:) |
|||
5
Живой Ископаемый
16.10.09
✎
13:03
|
(4) Конвертация данных: обмен данными между прикладными решениями.
|
|||
6
Dwarrior
19.10.09
✎
14:03
|
Если кому требуется - решение из книги Бояркина:
в ПКО периодического свойства справочника пишутся два обработчика: 1. При выгрузке: Если Источник.ЭтоГруппа() = 0 Тогда Имя = "ЦенаПродажи"; Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект(Имя, Источник); УзелПериодического = СоздатьУзел("Периодический"); УстановитьАтрибут(УзелПериодического, "Имя", Имя); Если Периодический.ВыбратьЗначения()=1 Тогда Пока Периодический.ПолучитьЗначение()=1 Цикл Значение = Периодический.Значение; ДатаЗнач = Периодический.ДатаЗнач; УзелЗначения = СоздатьУзел("ПериодическоеЗначение"); УстановитьАтрибут(УзелЗначения, "ДатаЗнач", ДатаЗнач); УстановитьАтрибут(УзелЗначения, "Значение", Значение); ДобавитьПодчиненный(УзелПериодического, УзелЗначения); КонецЦикла; КонецЕсли; ДобавитьПодчиненный(Приемник, УзелПериодического); КонецЕсли; 2. При загрузке: Если Объект.ЭтоГруппа() = 0 Тогда УзлыПериодического = Узел.ВыбратьУзлы("Периодический"); Для СчУзлов = 0 По УзлыПериодического.КоличествоУзлов-1 Цикл УзелПериодического = УзлыПериодического.ПолучитьУзел(СчУзлов); Имя = УзелПериодического.ПолучитьАтрибут("Имя"); Периодический = СоздатьОбъект("Периодический"); Периодический.ИспользоватьОбъект(Имя, Объект); Выборка = УзелПериодического.ВыбратьУзлы("ПериодическоеЗначение"); Для Сч = 0 По Выборка.КоличествоУзлов-1 Цикл УзелЗначения = Выборка.ПолучитьУзел(Сч); ДатаЗнач = УзелЗначения.ПолучитьАтрибут("ДатаЗнач"); Значение = УзелЗначения.ПолучитьАтрибут("Значение"); Периодический.ДатаЗнач = ДатаЗнач; Периодический.Значение = Значение; Периодический.Записать(); КонецЦикла; КонецЦикла; КонецЕсли; Первый обработчик - выгружает историю периодики в отдельную структуру и сохраняет ее рядом с объектом в выгруженном файле. Второй - загружает эту историю. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |