![]() |
![]() |
![]() |
|
цикл для каждого в обратном порядке | ☑ | ||
---|---|---|---|---|
0
osuul
01.04.11
✎
00:34
|
Привет всем, помогите... в дереве значений убираю строки, но если нужные строки следуют одна за другой то цикл пропускает 2-ю строку, как сделать перебор строк в цикле в обратном порядке, это вроде должно решить вопрос..
вот сам цикл; для Каждого Строка из ТабличноеПоле1.Строки цикл Если строка.Дата < НачалоГода(текущаяДата()) тогда ИндексСтроки = ТабличноеПоле1.Строки.индекс(строка); ТабличноеПоле1.Строки.Удалить(ИндексСтроки); КонецЕсли; КонецЦикла; так пропускает.. ( |
|||
1
Птица
01.04.11
✎
00:37
|
Для сч = -количествострок+1 по 0 цикл
индексстроки = - сч //и далее по тексту конеццикла |
|||
2
Armando
01.04.11
✎
00:40
|
Или так
МассивСтрокДляУдаления = Новый Массив; для Каждого Строка из ТабличноеПоле1.Строки цикл Если строка.Дата < НачалоГода(текущаяДата()) тогда МассивСтрокДляУдаления.Добавить(Строка); КонецЕсли; КонецЦикла; Для Каждого СтрокаДляУдаления Из МассивСтрокДляУдаления Цикл ТабличноеПоле1.Строки.Удалить(СтрокаДляУдаления); КонецЦикла; |
|||
3
osuul
01.04.11
✎
00:43
|
(1) (2) спасибо огромное!!! оба способа работают, 1-перебором в обратном порядке, второй выгрузкой в массив! я правильно понял?
|
|||
4
osuul
01.04.11
✎
00:55
|
а можно еще вопрос, объясните пожалуйста, что за "СтрокаДляУдаления", я не понимаю откуда берется эта переменная..
Для Каждого СтрокаДляУдаления Из МассивСтрокДляУдаления Цикл ТабличноеПоле1.Строки.Удалить(СтрокаДляУдаления); КонецЦикла; |
|||
5
Armando
01.04.11
✎
00:59
|
(4) элемент массива
|
|||
6
zak555
01.04.11
✎
01:03
|
(2) зачем два прохода ?
|
|||
7
osuul
01.04.11
✎
01:11
|
(5) получаеться "СтрокаДляУдаления" будет работать в любом массиве? а почему ее нет в СП?
|
|||
8
zak555
01.04.11
✎
01:14
|
(7) это переменная (!)
|
|||
9
zak555
01.04.11
✎
01:23
|
||||
10
osuul
01.04.11
✎
01:54
|
(9) спасибо
|
|||
11
НП
01.04.11
✎
02:22
|
i=Табл.Количество();
while i>0 do i=i-1; enddo |
|||
12
НП
01.04.11
✎
02:25
|
i=Табл.Количество();
while i>0 do if (Условие удаления) then Табл[i-1].Удалить(); endif; i=i-1; enddo |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |