Имя: Пароль:
1C
1С v8
Как кошерно удалить строки в документе по условию?
0 Shur1cIT
 
18.10.13
11:13
проблема в том что при удалении строки в цикле происходит позиционирование на следующую строку в цикле которое не обрабатывается условием, в 7.7 ставили знак перехода на условие в случае удаления строки ,а как в 8 быть? сори за ламерский вопрос
1 almar
 
18.10.13
11:15
(0) Нужно перебирать строки в обратном порядке, от последней к первой
2 Fragster
 
модератор
18.10.13
11:15
хз, я в клюшках не ставил условие перехода и как-то работало
3 Fragster
 
модератор
18.10.13
11:16
если автор не хочет мозг влючить - то предлагаю ему цикл в цикле - и пока хоть одна строка удалилась - повторять...
4 skunk
 
18.10.13
11:17
с помощью НайтиСроки выбрать нужные строки в массив ... далее в цикле удалить
5 Холодильник
 
18.10.13
11:21
переходить на 77
6 Конфигуратор1с
 
18.10.13
11:22
(4) +1
7 Конфигуратор1с
 
18.10.13
11:23
Как вариант еще запрос к табчасти с отбором а потом его же загрузить в табчасть)
8 Shur1cIT
 
18.10.13
11:28
(1) ок спасибо
9 Shur1cIT
 
18.10.13
11:30
(4) там несколько условий поэтому тупо отобрать по значению реквизита не получиться
10 Конфигуратор1с
 
18.10.13
12:42
(9) тогда запросом
11 skunk
 
18.10.13
12:44
(10)+1
12 mzelensky
 
18.10.13
12:59
(0) Удалять нужно с конца. Типа так:

Сч=Тз.Количество()-1;
Пока Сч >= 0 цикла

...

сч=-1;
КонецЦикла;

Тогда НИКОГДА не будет косяков с прыжками по строкам. Удаляй, хоть заудаляйся.
13 mzelensky
 
18.10.13
13:00
(12) естественно "сч=-1;" нужно понимать как "сч= сч-1;"
14 Толич
 
18.10.13
13:04
(0) Заполни ТЗ из ТЧ по условию.
Очисти ТЧ.
Загрузи ТЧ из ТЗ.
15 Squares
 
18.10.13
13:04
(10) +1
AdBlock убивает бесплатный контент. 1Сергей