|
Как найти максимальный уровень строк исходного дерева значений и вывести его на форму? |
☑ |
0
sergqwert
11.04.21
✎
16:32
|
Как найти максимальный уровень строк исходного дерева значений и вывести его на форму в реквизит "Уровень"? Во время отладки возникает ошибка Поле объекта не обнаружено (СтрокиДЗ).
{Обработка.Тест4.Форма.Форма.Форма(48)}: КоличествоУровней(ДеревоЗначений.СтрокиДЗ);
{Обработка.Тест4.Форма.Форма.Форма(42)}: ВыполнитьРезультатНаСервере();
&НаСервере
Процедура ВыполнитьРезультатНаСервере()
ДеревоЗначенийРек = РеквизитФормыВЗначение("ДеревоЗначений");
ДеревоЗначенийРек.Строки.Очистить();
КоличествоУровней(ДеревоЗначений.СтрокиДЗ);
ЗначениеВРеквизитФормы(ДеревоЗначенийРек, "ДеревоЗначений");
КонецПроцедуры
Функция КоличествоУровней(СтрокиДЗ)
Если СтрокиДЗ.Количество() = 0 Тогда Возврат 0 КонецЕсли;
КоличествоУровней = 0;
Для Каждого СтрокаДЗ ИЗ СтрокиДЗ.Строки Цикл
КоличествоУровней = Макс(КоличествоУровней(СтрокаДЗ.Строки), КоличествоУровней);
КонецЦикла;
Возврат КоличествоУровней + 1;
КонецФункции
|
|
1
vicof
11.04.21
✎
17:10
|
КоличествоУровней(ДеревоЗначений.Строки);
|
|
2
vicof
11.04.21
✎
17:11
|
Точней КоличествоУровней(ДеревоЗначенийРек.Строки);
|
|
3
vicof
11.04.21
✎
17:11
|
Ну и очистку убрать перед этим
|
|
4
sergqwert
11.04.21
✎
18:05
|
Переписал код.
&НаСервере
Процедура ВыполнитьРезультатНаСервере()
ДеревоЗначенийРек = РеквизитФормыВЗначение("ДеревоЗначений");
КоличествоУровней(ДеревоЗначенийРек.Строки);
ЗначениеВРеквизитФормы(ДеревоЗначенийРек, "ДеревоЗначений");
КонецПроцедуры
Функция КоличествоУровней(СтрокиДЗ)
Если СтрокиДЗ.Количество() = 0 Тогда Возврат 0 КонецЕсли;
КоличествоУровней = 0;
Для Каждого СтрокаДЗ ИЗ СтрокиДЗ[0].Строки Цикл
КоличествоУровней = Макс(КоличествоУровней(СтрокаДЗ.Строки), КоличествоУровней);
КонецЦикла;
Возврат КоличествоУровней + 1;
КонецФункции
Выводит максимальный уровень = 1, а нужно чтобы максимальный уровень = 4. Как сделать?
|
|
5
vicof
11.04.21
✎
18:15
|
Загугли, как дерево значений иерархически обходить. Тыщу раз обсуждалось.
Ну и надо отладчиком начинать пользоваться.
|
|
6
sergqwert
11.04.21
✎
18:19
|
|
|
7
Chameleon1980
11.04.21
✎
18:19
|
Продам все решения этой конфы
😁
|
|
8
Chameleon1980
11.04.21
✎
18:20
|
|
|