|
Работа с деревом УФ. Пересчитать сумму в колонке дерева. | ☑ | ||
---|---|---|---|---|
0
DIvanmgn
11.08.14
✎
14:57
|
Здравствуйте.
При изменении ячейки требуется пересчитать всю колонку в дереве. &НаКлиенте Процедура ДеревоПриИзменении(Элемент) ПересчитатьСуммуДерева(Элемент); КонецПроцедуры Думал сделать так. Получить родителя. По нему получить выборку. Суммировать колонку выборки. Но вот имя колонки получить не нашел как. Элемент.ТекущийЭлемент.Имя="ДеревоКолонка1" Элемент.ПолучитьРодителя().ПолучитьЭлементы()["Колонка1"] Можно конечно откусить слева текст "Дерево". Но чую есть решение "поизящнее". Допускаю что выбрал подход в принципе не верный. Прошу ногами не бить. Лучше наставьте на путь истинный. |
|||
1
DIvanmgn
11.08.14
✎
15:11
|
хочу обратить внимание, что работа не с деревом значений а с
"ДанныеФормыДерево" |
|||
2
Drac0
11.08.14
✎
16:08
|
(0) На сервере доступен ПутьКДанным.
|
|||
3
DIvanmgn
12.08.14
✎
11:59
|
Что-то не очень нравится. Пока получилось вот так:
&НаСервере Процедура ПересчитатьСуммуДерева(ИмяКолонки,Ветка) Родитель = Ветка.ПолучитьРодителя(); Если Родитель=Неопределено Тогда Возврат; КонецЕсли; Сумма = 0; Для Каждого Стр Из Родитель.ПолучитьЭлементы() Цикл Сумма = Сумма+Стр[ИмяКолонки]; КонецЦикла; Родитель[ИмяКолонки]=Сумма; ПересчитатьСуммуДерева(ИмяКолонки,Родитель); КонецПроцедуры &НаСервере Процедура ДеревоПриИзмененииСервер(Идентификатор,ИмяЭлемента) ТекСтр = Дерево.НайтиПоИдентификатору(Идентификатор); Корень = ТекСтр.ПолучитьРодителя(); ПолноеИмяКолонки = Элементы.Найти(ИмяЭлемента).ПутьКДанным; ИмяКолонки = Прав(ПолноеИмяКолонки,СтрДлина(ПолноеИмяКолонки)-Найти(ПолноеИмяКолонки,".")); ПересчитатьСуммуДерева(ИмяКолонки,ТекСтр); КонецПроцедуры // ДеревоПриИзмененииСервер() &НаКлиенте Процедура ДеревоПриИзменении(Элемент) ДеревоПриИзмененииСервер(Элемент.ТекущиеДанные.ПолучитьИдентификатор(),Элемент.ТекущийЭлемент.Имя); КонецПроцедуры Изящнее можно? |
|||
4
DIvanmgn
12.08.14
✎
12:33
|
(2) То есть даже используя это свойство, я все равно не получаю точный адрес в дереве. Приходиться шаманить со строкой.
|
|||
5
Drac0
12.08.14
✎
15:48
|
(4) Куда точнее? ИмяДерева.ИмяПоля. И неважно, как обозвали элемент формы. Тем более легко превращается в универсальную.
|
|||
6
DIvanmgn
13.08.14
✎
08:06
|
(5) ну то есть это нормально, что потом нужно парсить строчку для определения имя колонки?
|
|||
7
Drac0
13.08.14
✎
08:39
|
(6) "Это нормально" (с) Малышева
|
|||
8
РенеДекарт
13.08.14
✎
10:17
|
(6) ты в 1С, дружище, привыкай..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |