|
Как в Дереве значений получить строки 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)я это уже понял...
|
|