Имя: Пароль:
1C
 
цикл для каждого в обратном порядке
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