Имя: Пароль:
1C
1С v8
Копирование регистра накопления
0 LopesLeonid
 
15.12.14
14:22
Хочу скопировать записи из одного регистра накопления в другой такой же. Копирование происходит но не правильно. Если один регистратор делал несколько записей в регистре, то копирует последнюю его запись.
Почему так происходит?

Копирую так:
результат = выборка....
НаборЗаписей = РегистрыНакопления.НовыйРегистр.СоздатьНаборЗаписей();        НаборЗаписей.Отбор.Регистратор.Установить(результат.Регистратор);
Запись = НаборЗаписей.Добавить();                
ЗаполнитьЗначенияСвойств(Запись, результат);
НаборЗаписей.Записать(истина);
1 Otkr
 
15.12.14
14:23
А где чтение набора записей? Где цикл по обходу записей?
2 LopesLeonid
 
15.12.14
14:37
(1) а зачем мне её прочитывать?
у меня же записи в выборке
3 eklmn
 
гуру
15.12.14
14:40
нельзя Выборку пихать через ЗаполнитьЗначенияСвойств
4 LopesLeonid
 
15.12.14
14:40
Меня сейчас осенило и я написал как мне надо)
5 LopesLeonid
 
15.12.14
14:42
НаборЗаписей = РегистрыНакопления.НовыйРегистр.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(результат.Регистратор);                
                
НаборЗаписей2 = РегистрыНакопления.КопируемыРегистр.СоздатьНаборЗаписей();
НаборЗаписей2.Отбор.Регистратор.Установить(результат.Регистратор);
                
НаборЗаписей2.Прочитать();
Для каждого Запись2 Из НаборЗаписей2 Цикл
    Запись = НаборЗаписей.Добавить();
    ЗаполнитьЗначенияСвойств(Запись, Запись2);
КонецЦикла;                
        
НаборЗаписей.Записать(истина);
6 DmitryZzz
 
15.12.14
15:39
А почему бы вместо цикла. не сделать вот так?

НаборЗаписей.Прочитать();
НаборЗаписей.Загрузить(НаборЗаписей2.Выгрузить());

НаборЗаписей.Записать(Истина);
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой