Такая фигня, хочется с ней до конца разобраться..она касается не только регистров, но и таблиц(когда обходим строки и удаляем ненужные)
Допустим у нас есть набор записей регистра, в нем 7 движений "расход" и 7 "приход". Нужно удалить все "приходы".
Если делаем так...
Для каждого движение из Движения.ПартииТоваровНаСкладах цикл
Если движение.ВидДвижения=ВидДвиженияНакопления.Приход Тогда
Движения.ПартииТоваровНаСкладах.Удалить(движение);
КонецЕсли;
КонецЦикла;
...то в итоге в наборе остается 3 "прихода". Происходит это, понятно, потому что при удалении i-го элемента его место занимает i+1 элемент, который не проходит проверку на условие.
Самое простое решение на скорую руку получается такое:
а=0;
Пока а <= Движения.ПартииТоваровНаСкладах.Количество()-1 Цикл
Если Движения.ПартииТоваровНаСкладах[а].ВидДвижения = ВидДвиженияНакопления.Приход Тогда
Движения.ПартииТоваровНаСкладах.Удалить(Движения.ПартииТоваровНаСкладах[а]);
а=а-1;
КонецЕсли;
а=а+1;
КонецЦикла;
Выглядит довольно криво, а делать это надо много где... знает кто-нибудь другой вариант?Спосибо.