|
УФ Дерево.Развернуть() | ☑ | ||
---|---|---|---|---|
0
ZaprosMan
09.04.13
✎
16:20
|
Всем привет.
не получается развернуть дерево в нужном месте. подскажите кто знает что не так. Есть УФ ЭлементФормы тип(Дерево). при изменении реквизита &НаКлиенте Процедура ДеревоОперацийСИзменениямиТрудоемкостьПриИзменении(Элемент) УИД = Элементы.ДеревоОперацийСИзменениями.ТекущиеДанные.УИД; ОчиститьМассивСтрок(); ЗаполнитьТрудоемкостьИВремяВыполнения(); РазвернутьДерево(УИД); КонецПроцедуры Процедура ЗаполнитьТрудоемкостьИВремяВыполнения(ДеревоЗначений=Неопределено) Если Не ЗначениеЗаполнено(ДеревоЗначений) тогда Дерево = РеквизитФормыВЗначение("ДеревоОперацийСИзменениями",Тип("ДеревоЗначений")); Для Каждого Строка Из Дерево.Строки Цикл ТрудоемкостьВремяВыполненияРекурсивно(Строка); КонецЦикла; ЗначениеВРеквизитФормы(Дерево,"ДеревоОперацийСИзменениями"); Иначе Для Каждого Строка Из ДеревоЗначений.Строки Цикл ТрудоемкостьВремяВыполненияРекурсивно(Строка); КонецЦикла; КонецЕсли; КонецПроцедуры &НаКлиенте Процедура РазвернутьДерево(УИД) ДЗ = ДеревоОперацийСИзменениями.ПолучитьЭлементы(); Элементы.ДеревоОперацийСИзменениями.Развернуть(ПолучитьСтрокуФормыПоУИД(ДЗ,УИД),Ложь); КонецПроцедуры &НаКлиенте Функция ПолучитьСтрокуФормыПоУИД(Строки,УИД) Для Каждого Строка Из Строки Цикл Если Строка.УИД = УИД Тогда Возврат Строка.ПолучитьИдентификатор(); КонецЕсли; СтрокиСтрок = Строка.ПолучитьЭлементы(); Если ЗначениеЗаполнено(СтрокиСтрок.Количество()) Тогда НайденнаяСтрокиа = ПолучитьСтрокуФормыПоУИД(СтрокиСтрок,УИД); Если ЗначениеЗаполнено(НайденнаяСтрокиа) Тогда Возврат НайденнаяСтрокиа; КонецЕсли; КонецЕсли; КонецЦикла; КонецФункции //////////////////////////////////////////////////////// Смысл в том, что не разворачивает дерево. После выполнения процедуры, дерево не разворачивается. Строка.ПолучитьИдентификатор() дает число! Что тут не так? Заранее благодарю! |
|||
1
ZaprosMan
09.04.13
✎
16:29
|
Наверное вопрос не понятен?
В дереве в подчиненной строке, при изменении нужно подсчитать сумму по всем подчиненным. Вывести её в корне дерева. И раскрыть дерево ровно в том месте где вносились изменения. |
|||
2
ZaprosMan
09.04.13
✎
16:43
|
Может просто есть у кого то опыт работы с деревьями в УФ
И их разворачивания вручную? |
|||
3
GANR
09.04.13
✎
16:49
|
(2) кусок кода 1,5-летней давности
&НаСервере Процедура ЗаполнитьДерево() ... //"операция" по разворачиванию дерева Элементы.ЭлементыНСИ.Отображение = ОтображениеТаблицы.Список; Элементы.ЭлементыНСИ.Отображение = ОтображениеТаблицы.Дерево; КонецПроцедуры |
|||
4
GANR
09.04.13
✎
16:52
|
(0) код ниже разворачивает дерево???
Элементы.ТвоеДерево.Отображение = ОтображениеТаблицы.Список; Элементы.ТвоеДерево.Отображение = ОтображениеТаблицы.Дерево; |
|||
5
Зойч
09.04.13
✎
16:54
|
Для Каждого СтрокаДерева Из ДеревоИнтерфейса.ПолучитьЭлементы() Цикл
Элементы.ДеревоИнтерфейса.Развернуть(СтрокаДерева.ПолучитьИдентификатор()); КонецЦикла; |
|||
6
GANR
09.04.13
✎
16:55
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |