|
Удаление проводок из регистра бухгалтерии |
☑ |
0
geka-geka
06.04.12
✎
12:56
|
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ПроводкиРегистратора = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ПроводкиРегистратора.Отбор.Регистратор.Значение = ВыборкаДетальныеЗаписи.Ссылка;
ПроводкиРегистратора.Прочитать();
Для Каждого Проводка Из ПроводкиРегистратора Цикл
Если Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПустаяСсылка() Тогда
ПроводкиРегистратора.Удалить(Проводка);
КонецЕсли;
КонецЦикла;
ПроводкиРегистратора.Записать();
КонецЦикла;
Такой цикл удаляет не все проводки с незаполненным СчетКт. Почему?
|
|
1
Cube
06.04.12
✎
12:58
|
Скорее, он просто удаляет через одну запись))))
|
|
2
geka-geka
06.04.12
✎
12:59
|
В документе 10 ненужных проводок, удалил 8.
|
|
3
Cube
06.04.12
✎
12:59
|
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ПроводкиРегистратора = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
ПроводкиРегистратора.Отбор.Регистратор.Значение = ВыборкаДетальныеЗаписи.Ссылка;
ПроводкиРегистратора.Прочитать();
ПроводкиРегистратора.Очистить();
ПроводкиРегистратора.Записать();
КонецЦикла;
|
|
4
Cube
06.04.12
✎
13:00
|
+(3) Ой))) Ступил))
|
|
5
geka-geka
06.04.12
✎
13:00
|
(3) Не все нужно удалять, а только если СчетКт не заполнен
|
|
6
geka-geka
06.04.12
✎
13:02
|
Запустил второй раз: из 2х оставил одну
|
|
7
Spieluhr
06.04.12
✎
13:03
|
Для Каждого Проводка Из ПроводкиРегистратора Цикл
это ошибка. через индекс нужно обходить. Вы же удаляете строку - и естественно прыгает через 1...
|
|
8
Cube
06.04.12
✎
13:04
|
(5) Короче, смысл в том, что когда ты удаляешь строку, то после этого перепрыгиваешь через одну. То есть тебе нужно что-то вроде:
Сч = 0;
Пока Сч <= ПроводкиРегистратора.Количество() Цикл
Проводка = ПроводкиРегистратора[Сч];
Если Проводка.СчетКт = ПланыСчетов.Хозрасчетный.ПустаяСсылка() Тогда
ПроводкиРегистратора.Удалить(Проводка);
Иначе
Сч = Сч + 1;
КонецЕсли;
КонецЦикла;
|
|
9
Spieluhr
06.04.12
✎
13:05
|
(8) в точку!
|
|
10
geka-geka
06.04.12
✎
13:17
|
Спасибо. Сработало.
|
|