Имя: Пароль:
1C
 
Как правильно перебрать все строки табличной части для удаления строки
0 repin_mike
 
07.03.19
16:40
Для Каждого Стр из Объект.ТабЧасть Цикл
            Если ВыполненоУсловиеУдаления Тогда
                Объект.ТабЧасть.Удалить(Стр);
            КонецЕсли;
        КонецЦикла;

В разультате выполнения в табличной части остаются строки, для которых условие удаления выполнено. Как я понимаю это связано с тем, что табличная часть меняется внутри цикла, и цикл Для Каждого неправильно определяет следующий элемент. А как тогда правильно?
1 aleks_default
 
07.03.19
16:51
По индексу
2 RomanYS
 
07.03.19
16:59
(0) либо два цикла (находим, удаляем по списку), либо обратный цикл.

Если условие простое, то цикл по НайтиСтроки(Отбор)
3 Cyberhawk
 
07.03.19
17:00
Получаешь массив кандидатов в удалению.
Далее в цикле по этому массиву удаляешь строки из ТЧ
4 Ахмадинежад
 
07.03.19
17:17
Для х = - Объект.ТабЧасть.Количество() По -1 Цикл
ТекСтр = Объект.ТабЧасть[-х-1];
Если Удалять(ТекСтр) Тогда
    Объект.ТабЧасть.Удалить(ТекСтр)
КонецЕсли;
КонецЦикла;