|
Дерево значений на форме УФ. Как ускорить операции свернуть и развернуть? | ☑ | ||
---|---|---|---|---|
0
spiller26
01.10.20
✎
11:05
|
Есть дерево значений на форме (1 Уровень вложения, данных много). При сворачивании и разворачивании делается ну очень долго. Как ускорить процесс?
https://prnt.sc/ur31cr &НаКлиенте Процедура РаскрытьВсеВетки(Команда) СтрокиДерева = ДеревоОстатков.ПолучитьЭлементы(); Для Каждого ТекущаяСтрока Из СтрокиДерева Цикл Элементы.ДеревоОстатков.Развернуть(ТекущаяСтрока.ПолучитьИдентификатор(), Истина); КонецЦикла; КонецПроцедуры |
|||
1
spiller26
01.10.20
✎
11:28
|
короче болты.
|
|||
2
polosov
01.10.20
✎
11:30
|
Да, болты. Дерево довольно проблемная коллекция.
|
|||
3
lEvGl
гуру
01.10.20
✎
11:34
|
а зачем это программно делать
|
|||
4
lEvGl
гуру
01.10.20
✎
11:35
|
ctrl + shift + + развернуть все
ctrl + shift + - свернуть все должны быть и еще штатные варианты |
|||
5
oslokot
01.10.20
✎
11:41
|
Иногда помогает такой лайфхак, но на сервере и не во всех случаях
|
|||
6
spiller26
01.10.20
✎
11:49
|
(5) Попытался сделать так.
Смотрю скорость выполнения &НаКлиенте Процедура РазвернутьДерево() //СтрокиДерева = ДеревоОстатков.ПолучитьЭлементы(); //Для Каждого ТекущаяСтрока Из СтрокиДерева Цикл // Элементы.ДеревоОстатков.Развернуть(ТекущаяСтрока.ПолучитьИдентификатор(), Ложь); //КонецЦикла; ДеревоНаСервере(); Если Элементы.ДеревоОстатков.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВерхнийУровень Тогда Элементы.ДеревоОстатков.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВсеУровни; Иначе Элементы.ДеревоОстатков.НачальноеОтображениеДерева = НачальноеОтображениеДерева.РаскрыватьВерхнийУровень; КонецЕсли; КонецПроцедуры &НаСервере Процедура ДеревоНаСервере() тДерево = РеквизитФормыВЗначение("ДеревоОстатков"); ЗначениеВРеквизитФормы(тДерево, "ДеревоОстатков"); КонецПроцедуры |
|||
7
Мойдодыр
01.10.20
✎
11:50
|
ссылки отображаются в дереве?
замени их на представления, а сами ссылки скрой |
|||
8
spiller26
01.10.20
✎
11:52
|
(7) Ссылки не отображаются, только представления.
|
|||
9
lEvGl
гуру
01.10.20
✎
11:53
|
а чем хоткей не подходит
|
|||
10
spiller26
01.10.20
✎
11:56
|
(9) бухам нужна кнопка
|
|||
11
lEvGl
гуру
01.10.20
✎
11:58
|
нарисуй на форме красными буквами комбинации, если это важный вопрос
|
|||
12
spiller26
01.10.20
✎
12:04
|
Файловая база (копия): Формирование на сервере дерева ~1 минута
Полное раскрытие дерева на клиенте: Если код = (6) - ~2 минуты. Если код = (0) - ~4 минуты. |
|||
13
Мойдодыр
01.10.20
✎
12:08
|
а если разворачивать без подчиненных?
|
|||
14
acht
01.10.20
✎
12:17
|
(12) Перебрать рекурсивно от листьев к корню и открыть каждую подветку снизу без подчиненых?
|
|||
15
spiller26
01.10.20
✎
13:36
|
(13) ~4 (Элементы.ДеревоОстатков.Развернуть(ТекущаяСтрока.ПолучитьИдентификатор(), Ложь);)
(12) На клиенте? |
|||
16
Cyberhawk
01.10.20
✎
13:39
|
Используй дин. список с настроенной группировкой, будет то же дерево, но с порционностью.
Тем более тебе там интерактивное редактирование в строках не требуется. |
|||
17
spiller26
01.10.20
✎
13:44
|
(16) Динамический не получиться, т.к. нужно редактировать некоторые данные.
|
|||
18
Cyberhawk
01.10.20
✎
13:59
|
(17) Получится, просто для редактирования придется немного попотеть.
С большим деревом же ты обречен делать порционность самостоятельно, это куда геморнее чем ДС с редактированием. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |