Имя: Пароль:
1C
1С v8
Как в Дереве значений получить строки 3-го уровня
0 Max1986
 
10.05.12
14:30
Давно не работал с Деревом значений. Подскажите плиз, как в дереве выбрать все строки только 3-го уровня иерархии?
Только через вложенное получение коллекций строк 1 и 2 уровня и в цикле перебор каждого уровня?
Типа
 Строки1 = ТаблицаДоговоровБезСвязи2.Строки;
 Для Каждого Стр1 Из Строки1 Цикл
    Здесь получаем 2 уровень и затем 3-тий
 КонецЦикла;
1 vmv
 
10.05.12
14:34
добавить колонку уровень и при формировании дерева ее заполнять если это не условное оформление и не СКД, в последних можно не извращаться, но простая числовая колонка с уровнем часто спасает от глупых плясок
2 vmv
 
10.05.12
14:36
ну и вспомни волшебное слово "рекурсия" ибо без него с деревом работать можно только через задницу
3 х86
 
10.05.12
14:37
так наверное

 Для Каждого Стр1 Из Строки1 Цикл
   Для Каждого Стр2 Из Стр1.Строки Цикл
     Для Каждого Стр3 Из Стр2.Строки Цикл
       ......
     КонецЦикла;
   КонецЦикла;
 КонецЦикла;
4 Alex S D
 
10.05.12
14:39
Процедура ЗаписатьНоменклатуруДеревавТЗ(Строка,ТЗ,КлючСвязи)
   
   Если Строка.Строки.Количество() >0 тогда
       Для Каждого СтрДерева Из Строка.Строки Цикл
           Если  СтрДерева.Уровень()=3   Тогда
               СтрокаТЗ = ТЗ.Добавить();
               ЗаполнитьЗначенияСвойств(СтрокаТЗ,СтрДерева);  
               СтрокаТЗ.КлючСвязи = КлючСвязи;
           КонецЕсли;
           ЗаписатьНоменклатуруДеревавТЗ(СтрДерева,ТЗ,КлючСвязи);
       КонецЦикла;
   КонецЕсли;
   
КонецПроцедуры
5 Alex S D
 
10.05.12
14:40
ключсвязи и тз конечно не обязательно.. это мое)
6 Max1986
 
10.05.12
14:52
(2)я это уже понял...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс