Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Как перенести периодические реквизиты из 7.7 с помощью "Конвертации данных 2.0"

v7: Как перенести периодические реквизиты из 7.7 с помощью
Я
   Dwarrior
 
16.10.09 - 12:48
Добрый день!

Есть задача - перелить данные между двумя почти похожими базами 7.7. Бухгалтерия, стандартная. Пользую для этого "КД2". Все вроде бы сопоставилось, но вот с периодическими реквизитами ерунда - переносятся только последние значения. А как перенести всю историю?
Сам нарыл что - надо писать обработчики на каждое ПКО периодического реквизита. Так ли это? Можно это как-то автоматизировать? Или все-таки я изобретаю велосипед и все делается гораздо проще?
Кто пробовал - поделитесь опытом?
 
 
   Господин ПЖ
 
1 - 16.10.09 - 12:51
>>Так ли это?
так.

>>Можно это как-то автоматизировать?
нафига? В какой регистр сведений надо заливать эти данные знают только телепаты
   Dwarrior
 
2 - 16.10.09 - 12:52
Господин ПЖ, у меня перенос между 7 и 7. Во второй базе такой же периодический реквизит, а не регистр сведений
   Господин ПЖ
 
3 - 16.10.09 - 12:58
а... из 7.7 в 7.7. Читать книжку Бояркина, смотреть примеры. В кратце - писать доп. узлы для в элементе справочника типа "История" со значением и периодом. На стороне загрузки читать и устанавливать.
   Dwarrior
 
4 - 16.10.09 - 13:00
спасибо, примерно понятно....
а как называется книжка Бояркина?

может кто-то все-таки решал подобную проблему, может есть уже написанные обработчики, которые можно использовать?:)
   Живой Ископаемый
5 - 16.10.09 - 13:03
(4) Конвертация данных: обмен данными между прикладными решениями.
   Dwarrior
 
6 - 19.10.09 - 14:03
Если кому требуется - решение из книги Бояркина:

в ПКО периодического свойства справочника пишутся два обработчика:
1. При выгрузке:
Если Источник.ЭтоГруппа() = 0 Тогда
    Имя = "ЦенаПродажи";
    Периодический = СоздатьОбъект("Периодический");    
    Периодический.ИспользоватьОбъект(Имя, Источник); 
    УзелПериодического = СоздатьУзел("Периодический");
    УстановитьАтрибут(УзелПериодического, "Имя", Имя);
    
    Если Периодический.ВыбратьЗначения()=1 Тогда    
        
        Пока Периодический.ПолучитьЗначение()=1 Цикл    
            
            Значение = Периодический.Значение; 
            ДатаЗнач = Периодический.ДатаЗнач; 
            
            УзелЗначения = СоздатьУзел("ПериодическоеЗначение");
            
            УстановитьАтрибут(УзелЗначения, "ДатаЗнач", ДатаЗнач);
            УстановитьАтрибут(УзелЗначения, "Значение", Значение);
            
            ДобавитьПодчиненный(УзелПериодического, УзелЗначения);
            
        КонецЦикла;
        
    КонецЕсли;
    
    ДобавитьПодчиненный(Приемник, УзелПериодического);
КонецЕсли;


2. При загрузке:
Если Объект.ЭтоГруппа() = 0 Тогда
    УзлыПериодического = Узел.ВыбратьУзлы("Периодический");             
    Для СчУзлов = 0 По УзлыПериодического.КоличествоУзлов-1 Цикл
        УзелПериодического = УзлыПериодического.ПолучитьУзел(СчУзлов);             
        Имя = УзелПериодического.ПолучитьАтрибут("Имя");
        Периодический = СоздатьОбъект("Периодический");
        Периодический.ИспользоватьОбъект(Имя, Объект);
        Выборка = УзелПериодического.ВыбратьУзлы("ПериодическоеЗначение");
        Для Сч = 0 По Выборка.КоличествоУзлов-1 Цикл
            УзелЗначения = Выборка.ПолучитьУзел(Сч);
            ДатаЗнач = УзелЗначения.ПолучитьАтрибут("ДатаЗнач");
            Значение = УзелЗначения.ПолучитьАтрибут("Значение");
            Периодический.ДатаЗнач = ДатаЗнач;
            Периодический.Значение = Значение;
            Периодический.Записать();
        КонецЦикла;
    КонецЦикла;
КонецЕсли;

Первый обработчик - выгружает историю периодики в отдельную структуру и сохраняет ее рядом с объектом в выгруженном файле. Второй - загружает эту историю.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.