Имя: Пароль:
1C
1С v8
Как удалить строки из дерева значений?
0 worker-good
 
09.04.14
14:46
тбФиксации - дерево значений. Как из него удалить строки удовлетворяющим условиям? В моем следующем коде выдает ошибку:

Для Каждого стрДерева Из тбФиксации.Строки Цикл
Для Каждого стр Из стрДерева.Строки Цикл
  Если стр.Дата <НачалоРасчета ИЛИ стр.Дата>КонецРасчета Тогда
    тбФиксации.Строки.Удалить(стр);
  КонецЕсли;
            
КонецЦикла;
КонецЦикла;
1 barrgand
 
09.04.14
14:50
(0) Цикл проходить снизу вверх. Или сначала составлять список строк для удаления, потом удалять.
2 worker-good
 
09.04.14
14:57
(1) А рекурсивный вызов функции удаления не нужен?
3 barrgand
 
09.04.14
15:03
(2)
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("стр");
ТЗ.Колонки.Добавить("стрДерева");

Для Каждого стрДерева Из тбФиксации.Строки Цикл
Для Каждого стр Из стрДерева.Строки Цикл

  Если стр.Дата <НачалоРасчета ИЛИ стр.Дата>КонецРасчета Тогда
    НовСтр = ТЗ.Добавить();
    НовСтр.стр = стр;
    НовСтр.СтрДерева = стрДерева;
  КонецЕсли;
            
КонецЦикла;
КонецЦикла;

Для Каждого стр из ТЗ Цикл
    стр.стрДерева.Строки.Удалить(стр.стр);
КонецЦикла;
4 worker-good
 
09.04.14
15:04
(1) А как это в коде сделать?
5 worker-good
 
09.04.14
15:05
(3) Спасибо))
Основная теорема систематики: Новые системы плодят новые проблемы.