Имя: Пароль:
1C
1С v8
Изменение движений документа (регистр накопления)
0 ksandr_mrg
 
26.03.13
08:13
Сосбтвенно код:

Пока Выборка2.Следующий() Цикл
       
       ДокументКорректировки = Выборка2.Ссылка1.ПолучитьОбъект();
       
       ДвиженияАвансы = ДокументКорректировки.Движения.Авансы;
       ДвиженияАвансы.Прочитать();
       Сообщить(строка(Выборка2.Ссылка1.Абонент) + " " +строка(ДвиженияАвансы.Количество()));
       Для Каждого  ДвижениеАвансы из ДвиженияАвансы Цикл
           ДвижениеАвансы.Сумма =  ?(Выборка2.Сумма2 > 0, Выборка2.Сумма2, -Выборка2.Сумма2);
           
       КонецЦикла;
       //ДвиженияАвансы.Записать();
       
       ДвиженияВзаиморасчеты = ДокументКорректировки.Движения.ВзаиморасчетыВДГО;
       ДвиженияВзаиморасчеты.Прочитать();
       Для каждого ДвижениеВзаиморасчеты из ДвиженияВзаиморасчеты цикл
           ДвижениеВзаиморасчеты.Сумма = ?(Выборка2.Сумма2 > 0, Выборка2.Сумма2, -Выборка2.Сумма2);
       КонецЦикла;
       //ДвиженияВзаиморасчеты.Записать();
       
       ДвиженияДолги = ДокументКорректировки.Движения.Долги;
       ДвиженияДолги.Прочитать();
       Для каждого ДвижениеДолги из ДвиженияДолги цикл
           ДвижениеДолги.Сумма = ?(Выборка2.Сумма2 > 0, Выборка2.Сумма2, -Выборка2.Сумма2);
       КонецЦикла;    
       //ДвиженияДолги.Записать();
       
       ДвиженияВзаиморасчеты.Записать();
       ДвиженияАвансы.Записать();
       ДвиженияДолги.Записать();

КонецЦикла;


В выборке получаем набор документов, движения которых нужно изменить, всё бы ничего, НО почему-то в регистре АВАНСЫ, где до применения обработки всего 1 движение почему-то выскакивает второе, т.е. по сути я его не создаю, а просто перебираю имеющееся и меняю значение в нём, а оно создаёт к имеющемуся движению новое. А что самое интересное такое происходит только с Авансами, во Взаиморасчётах и Долгах всё отрабатывает так как должно, т.е. просто изменяет значение в том движение, которое имеется. Вопрос - ПОЧЕМУ?!717
1 butterbean
 
26.03.13
08:17
посмотри в модуле набора записей регистра Авансы
2 ksandr_mrg
 
26.03.13
08:22
(1) посмотри что? %)
3 butterbean
 
26.03.13
08:24
(2) ну вдруг там добавляются записи
4 ksandr_mrg
 
26.03.13
08:26
Сообщить(строка(Выборка2.Ссылка1.Абонент) + " " +строка(ДвиженияАвансы.Количество()));

для каждого документа 1 строка, т.е. до модификации в регистре Авансы всего 1 движение, откуда берется 2ое не понятно, нигде же его не создаю, а просто при переборе имеющихся меняю 1 реквизит.
5 ksandr_mrg
 
26.03.13
08:52
up
6 ДенисЧ
 
26.03.13
08:54
Попробуй .Записать(Истина)...
7 ksandr_mrg
 
26.03.13
09:25
Таже песня
8 КонецЕсли
 
26.03.13
18:24
в (1) смотрел?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн