Обратный цикл по таблице значений с удалением строк по условию
Для Индекс = -ТЗ.Количество()+1 По -1 Цикл
Стр =ТЗ.Получить(-Индекс);
Если Найти(Стр.Имя, "ПодстрокаПоиска") > 0 Тогда
ТЗ.Удалить(Стр);
КонецЕсли;
КонецЦикла;
Сколько продлится такое удаление, если таблица эдак на 500 тысяч строк. Всё это реализуется через запросы. А то, что тут оставлено - это двойка с минусом
Если с запросами всё сложно, то хотя бы так:
ПараметрыОтбора = Новый Структура;
ПараметрыОтбора.Вставить(ИмяКолонкиПоКоторойБудемИскать, ПодстрокаПоиска);
МассивСтрокДляУдаления = ТЗ.НайтиСтроки(ПараметрыОтбора);
Для Каждого СтрокаДляУдаления Из МассивСтрокДляУдаления Цикл
ТЗ.Удалить(СтрокаДляУдаления);
КонецЦикла;
У тебя при любом варианте количество итераций цикла будет равно количеству колонок таблицы. В моём варианте количество итераций цикла будет равно количеству найденных по условию строк.
К примеру, если таблица на 500 строк, а количество строк, удовлетворяющих условию всего 2, то цикл у тебя будет крутиться 500 раз;
У меня цикл пройдёт всего 2 раза.
Нулевая строка (Индекс=0) будет пропущена