|
Проблема с циклом "Для каждого из" | ☑ | ||
---|---|---|---|---|
0
KizerSoze
27.10.13
✎
19:38
|
Здравствуйте,
Столкнулся с неприятной ситуацией: Если в цикле удалять строки, то удаляется половина. Пример кода Для каждого Стз из Тз цикл Тз.УдалитьСтроку(Стз); КонецЦикла; Если записей 10, то удаляются 1,3,5,7,9. Хотелось бы решить задачу именно данным типом цикла ("для х=0 по Тз.Количество()-1 цикл" - не подходит, Тз.Скопировать(отбор)-тоже не годиться). |
|||
1
Ork
27.10.13
✎
19:45
|
(0) Вот это вот :
Для каждого Стз из Тз цикл Тз.УдалитьСтроку(Стз); КонецЦикла; замена стандартной Тз.Очистить()? Или что имелось ввиду? |
|||
2
MaSSimo
27.10.13
✎
19:47
|
Для каждого Стз из Тз цикл также не подойдет по той же причине как и для х=0 по Тз.Количество()-1 цикл
|
|||
3
DirecTwiX
27.10.13
✎
19:48
|
Сначала их в массив добавь -.-
|
|||
4
KizerSoze
27.10.13
✎
19:51
|
Имеется ввиду, что в цикле мне может понадобится удалить, например, 1, 4, 5, 6 элементы, но в цикле 5-ый элемент не удалится.
Мне нужно, чтобы после удаления элемента с индексом Х, анализировался элемент с индексом Х+1 (относительно изначальной ТЗ). |
|||
5
MaSSimo
27.10.13
✎
19:51
|
(3) , для чего в массив?
|
|||
6
DirecTwiX
27.10.13
✎
19:52
|
(5) Чтобы потом по массив с помощью "Для каждого" пробежаться :)
|
|||
7
Julia_Fialka
27.10.13
✎
19:56
|
(0) Когда Вы удаляете первую строку из ТЗ, строка, бывшая до удаления второй, становится первой - т.е. сбиваются индексы всех строк.
Попробуйте так: Колво = Тз.Количество(); для х=0 по Колво-1 цикл ... |
|||
8
MaSSimo
27.10.13
✎
19:57
|
(4) прибавляй к индексу по единицы после каждого удаления, не?
|
|||
9
MaSSimo
27.10.13
✎
19:58
|
(8) т.е. отнимай...)
|
|||
10
Souvenire
27.10.13
✎
19:58
|
> "для х=0 по Тз.Количество()-1 цикл" - не подходит"
скуяли? |
|||
11
Ork
27.10.13
✎
19:58
|
Поддержу тов. DirecTwiX. Если очень уж принципиально "Для каждого ИЗ" нужно сначала выбрать нужные строки в массив.
|
|||
12
Ork
27.10.13
✎
20:01
|
(10) Оно так со времен 7.7 поскольку полный аналог
Для х = 1 По Тз.Количество() а оно не работает. |
|||
13
KizerSoze
27.10.13
✎
20:06
|
(11) Я эти способы знаю, мне хотелось все сделать через используемый цикл (для каждого из). Видимо, он не подходит для решения задачи. Придется кучу кода "Для каждого из" переписывать на "Для х=0 по...".
Всем спасибо. |
|||
14
Souvenire
27.10.13
✎
20:08
|
(12) с конца начинай.
|
|||
15
DirecTwiX
27.10.13
✎
20:25
|
(13) Не переписывай. Просто счетчик добавь в цикл и с ним удаляй
|
|||
16
Ork
27.10.13
✎
20:30
|
(15) Нифига. После каждого удаления счетчик нужно уменьшить на единичку. Плюс проверку на остаток строк в ТЗ.
|
|||
17
DirecTwiX
27.10.13
✎
20:39
|
(16) Да, чего-то я глупость сказал)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |