Имя: Пароль:
1C
1С v8
Вопрос по таблице значений (1с 8.3)
,
0 Nemirov
 
17.11.20
08:41
Добрый день. Такой вопрос:
Как организовать удаление строк тз в таком случае:

Для каждого строка из  ТаблицаЗначенийДляФорматирования цикл
        Если строкатзврем.КоличествоУпаковок = 0 Тогда
        ТаблицаЗначенийДляФорматирования.Удалить(строкатзврем);
        КонецЕсли;
КонецЦикла;
Получается например 3 строка удаляется по условию, курсор перемещается на 4 строку, но 4 строка стала 3 строкой и удаление не происходит(строка пропускается).
Подскажите пожалуйста как правильно организовать цикл?
1 Nemirov
 
17.11.20
08:41
Исправляю код:

Для каждого строка из  ТаблицаЗначенийДляФорматирования цикл
        Если строкатзврем.КоличествоУпаковок = 0 Тогда
        ТаблицаЗначенийДляФорматирования.Удалить(строка);
        КонецЕсли;
КонецЦикла;
2 ДенисЧ
 
17.11.20
08:43
Или цикл с конца, или нужные строки в массив, а потом по массиву удалять.
3 RomanYS
 
17.11.20
08:45
(0) СтрокиКУдалению = ТЗ.НайтиСтроки(...
Для каждого... Из СтрокиКУдалению....
4 2S
 
17.11.20
08:47
(0) Добавляй в массив строки для удаления по условию
потом циклом по массиву удалишь их
5 kobzon2
 
17.11.20
08:58
Или вторую ТЗ и условие, если = 0 продолжить, иначе добавить строку в новую ТЗ.
6 lEvGl
 
гуру
17.11.20
09:06
(5) да копец
(2) или (3) или обход счетчиком, если попал в условие, то счетчик не увеличивать