Имя: Пароль:
1C
 
Запись в регистр накопления
0 байт
 
29.07.10
09:21
Для Каждого Запись из ТЗ Цикл
        Движение = РегистрыНакопления.ДвижениеКарты.СоздатьНаборЗаписей();
        Движение.Отбор.Регистратор.Установить(Запись.Регистратор);
        ЗаписьРегистра = Движение.ДобавитьПриход();
        ЗаписьРегистра.Активность = Истина;
        ЗаписьРегистра.КодДок = Запись.КодДок;
        ЗаписьРегистра.Количество =Запись.Количество;
        ЗаписьРегистра.Номенклатура = Запись.Номенклатура;
        ЗаписьРегистра.НоменклатурнаяГруппа = Запись.НоменклатурнаяГруппа;
        ЗаписьРегистра.Организация = Запись.Организация;
        ЗаписьРегистра.Период = Запись.Период;
        ЗаписьРегистра.ПодразделениеОрганизации = Запись.ПодразделениеОрганизации;
        ЗаписьРегистра.Склад = Запись.Склад;
        Движение.Записать();
    КонецЦикла;

В Итоге в регистре только одна запись из 3-х, как сделать так чтобы были все записи?
1 butterbean
 
29.07.10
09:22
набор записей и отбор сделать ДО цикла
2 butterbean
 
29.07.10
09:22
(1)+ а запись после
3 байт
 
29.07.10
09:23
Регистратор из ТЗ идет
4 ASU_Diamond
 
29.07.10
09:24
(0) почитай про команду Записать(), у тебя при записи всё что в отборе удаляется
PS. прочитай про команду ЗаполнитьЗначенияСвойств()
5 butterbean
 
29.07.10
09:24
(3) тогда делай Прочитать() перед добавлением записи
6 байт
 
29.07.10
09:27
(5) примерную конструкцию можешь набрасать?
7 ASU_Diamond
 
29.07.10
09:27
Движение.Записать(Ложь);
8 ASU_Diamond
 
29.07.10
09:29
вообще проще так
Для Каждого Запись из ТЗ Цикл
        Движение = РегистрыНакопления.ДвижениеКарты.СоздатьНаборЗаписей();
        Движение.Отбор.Регистратор.Установить(Запись.Регистратор);
        ЗаписьРегистра = Движение.ДобавитьПриход();
        ЗаписьРегистра.Активность = Истина;
        ЗаполнитьЗначенияСвойств(ЗаписьРегистра,Запись);
        Движение.Записать(Ложь);
    КонецЦикла;
9 sda553
 
29.07.10
09:30
темпТЗ = ТЗ.Скопировать();
темпТЗ.Свернуть("Регистратор");
Для каждого строкаРегистратор Из темпТЗ Цикл
     СтрокиСЭтимРегистратором = ТЗ.НайтиСтроки(Новый Структура("Регистратор",строкаРегистратор.Регистратор));
     Движение = РегистрыНакопления.ДвижениеКарты.СоздатьНаборЗаписей();
     Движение.Отбор.Регистратор.Установить(Запись.Регистратор);
   Для каждого запись Из СтрокиСЭтимРегистратором Цикл
        ЗаписьРегистра = Движение.ДобавитьПриход();
        ЗаписьРегистра.Активность = Истина;
        ЗаписьРегистра.КодДок = Запись.КодДок;
        ЗаписьРегистра.Количество =Запись.Количество;
        ЗаписьРегистра.Номенклатура = Запись.Номенклатура;
        ЗаписьРегистра.НоменклатурнаяГруппа = Запись.НоменклатурнаяГруппа;
        ЗаписьРегистра.Организация = Запись.Организация;
        ЗаписьРегистра.Период = Запись.Период;
        ЗаписьРегистра.ПодразделениеОрганизации = Запись.ПодразделениеОрганизации;
        ЗаписьРегистра.Склад = Запись.Склад;
   КонецЦикла;
   Движение.Записать();
КонецЦикла;
10 sda553
 
29.07.10
09:31
(9)эээ... там ошибочка в 6 строке, надо
Движение.Отбор.Регистратор.Установить(строкаРегистратор.Регистратор);
11 ASU_Diamond
 
29.07.10
09:32
тут ещё такой вопрос: у документов до этого есть движения по регистру или нет?
12 байт
 
29.07.10
09:33
Спасибо (7)
13 байт
 
29.07.10
09:34
Всем Спасибо
14 байт
 
29.07.10
09:37
(11) могут быть!
15 ASU_Diamond
 
29.07.10
09:47
(14) их надо чистить или добавляешь к ним?
16 байт
 
29.07.10
09:48
надо чистить
17 ASU_Diamond
 
29.07.10
09:50
(16) тогда вариант (9) правильнее, в моем варианте не чистятся
18 байт
 
29.07.10
09:57
Круто спасибо)
19 байт
 
29.07.10
09:58
Скомбинировал:
    темпТЗ = ТЗ.Скопировать();
    темпТЗ.Свернуть("Регистратор");
    Для каждого строкаРегистратор Из темпТЗ Цикл
        СтрокиСЭтимРегистратором = ТЗ.НайтиСтроки(Новый Структура("Регистратор",строкаРегистратор.Регистратор));
        Движение = РегистрыНакопления.ДвижениеКарты.СоздатьНаборЗаписей();
        Движение.Отбор.Регистратор.Установить(строкаРегистратор.Регистратор);
        Для каждого запись Из СтрокиСЭтимРегистратором Цикл
            ЗаписьРегистра = Движение.ДобавитьПриход();
            ЗаписьРегистра.Активность = Истина;
            ЗаполнитьЗначенияСвойств(ЗаписьРегистра,Запись);
        КонецЦикла;
        Движение.Записать();
    КонецЦикла;