Имя: Пароль:
1C
1С v8
Удаление строк из табличной части
0 never_be
 
06.02.13
17:07
Вроде простая задача но 1с как-то плющит, вот такой код при нажатии на кнопку:

Для Каждого Тек ИЗ РасходыТП Цикл
     Если Тек.Сумма = 0 Тогда
     РасходыТП.Удалить(Тек);        
     КонецЕсли;
КонецЦикла;

В табличной части 3 записи, нажимаю кнопку остается 1на, хотя сумма у нее тоже 0, нажимаю еще раз исчезает и она, в чем проблема ?
1 salvator
 
06.02.13
17:07
Используй метод НайтиСтроки
2 salvator
 
06.02.13
17:11
НулевыеСтроки = Таблица.НайтиСтроки(Новый Структура("Сумма",0));
Для каждого СтрокаТаблицы Из НулевыеСтроки Цикл
   Таблица.Удалить(СтрокаТаблицы)
КонецЦикла;
3 Serg_1960
 
06.02.13
17:11
(6) При "прямом" обходе строк, удаление "плющит"(тс) индексы - они плывут. В типовых используется или "обратных" обход строк, или запоминание/накопление строк "к удалению" с последующим удалением, или - (1). Азбука.
4 Serg_1960
 
06.02.13
17:13
(3) Упс, ссылка не на 6 - а на (0) Обращение к будущему посту забабахал случайно :)
5 never_be
 
06.02.13
17:16
Всем спасибо.
6 Stim
 
06.02.13
17:18
один из вопросов на собеседовани
7 Alex S D
 
06.02.13
17:18
Род занятий: Руководитель ИТ отдела      
Во чем нынче руководители занимаются))
8 never_be
 
06.02.13
18:30
(7) Бывает, внедряем УТП своими силами без поддержки )