![]() |
![]() |
![]() |
|
Дерево значений | ☑ | ||
---|---|---|---|---|
0
ХочуСпец
23.09.09
✎
16:50
|
Проблема вот в чем:
Есть справочник (в справочнике есть Табличная Часть), в этом справочнике я создал элемент формы Дерево значенний. Пользователь заполняет интерактивно это дерево значений. При записи формы я хочу выгрузить данные из Дерева значений (Элемент формы) в Табличную Часть. Вроде выгрузил. Но теперь при открытии формы хочу заполнить Дерево значений данными из Табличной части справочника. Никак не получается! Подскажите плиз. Р.S. Этим гемором занимаюсь лишь потому, что табличная часть объектов не может представляться в виде дерева. Может быть есть какие нить другие варианты? Спасибо |
|||
1
73
23.09.09
✎
16:51
|
Запрос к ТЧ с Итогами и выгрузкой в дерево.
|
|||
2
ХочуСпец
23.09.09
✎
16:54
|
(1) про запрос даже и не подумал, сейчас попробую
|
|||
3
ХочуСпец
23.09.09
✎
17:16
|
У меня в ТЧ три реквизита:
Наименование НаименованиеРодителя Уровень |
|||
4
ХочуСпец
23.09.09
✎
17:20
|
А у Элемента формы Дерево один реквизит: Наименование
Как же выгрузить? |
|||
5
GenV
23.09.09
✎
17:23
|
(0) Проще рекурсией
|
|||
6
Ненавижу 1С
гуру
23.09.09
✎
17:23
|
ИТОГИ ПО НаименованиеРодителя
|
|||
7
Serg_1960
23.09.09
✎
17:24
|
(4) Не ври. У строки дерева есть свойство Родитель и метод Уровень :)
|
|||
8
ХочуСпец
23.09.09
✎
17:24
|
(6) сделал по наименованию родителя, обход результата запроса прямой, дальше то что, в Дереве один реквизит
|
|||
9
ХочуСпец
23.09.09
✎
17:25
|
(7) есть но почему то св-во родитель недоступно для записи
|
|||
10
ХочуСпец
23.09.09
✎
17:25
|
(5) да рекурсией проще сделать, но ка?
|
|||
11
Serg_1960
23.09.09
✎
17:27
|
Короче - смотри последний топик в v8: Как построить дерево...
|
|||
12
ХочуСпец
23.09.09
✎
17:27
|
Процедура ПриОткрытии()
ДобавитьСтрокуДерева(НоваяЗапись, Уровень + 1); КонецПроцедуры Процедура ДобавитьСтрокуДерева(СтрокаДерева, Уровень = 0) Для Каждого стр ИЗ ЭтапыЗадачи цикл НоваяЗапись = СтрокаДерева.Строки.Добавить(); НоваяЗапись.Наименование = стр.Наименование; НоваяЗапись.Родитель = СтрокаДерева.Строки.Найти(стр.Родитель, "Наименование"); ДобавитьСтрокуДерева(НоваяЗапись, Уровень + 1); КонецЦикла; КонецПроцедуры |
|||
13
ХочуСпец
23.09.09
✎
17:28
|
В (12) рекурсия уходит в бесконечность! что не так?
|
|||
14
ХочуСпец
23.09.09
✎
17:29
|
(12) Извиняюсь:
Процедура ПриОткрытии() ДобавитьСтрокуДерева(Дерево, 0); КонецПроцедуры |
|||
15
73
23.09.09
✎
17:51
|
ВЫБРАТЬ
ТаблЧасть.Наименование КАК Наименование ИЗ ТаблЧасть КАК ТаблЧасть ГДЕ ТаблЧасть.НаименованиеРодителя <> "" //здесь отсечь корень, у меня строки были ИТОГИ ТаблЧасть.НаименованиеРодителя КАК Наименование ПО ТаблЧасть.НаименованиеРодителя ТаблЧасть - временная, в кот. помещена таб.часть. Выгружать - ОбходПоГруппировкамСИерархией. |
|||
16
ХочуСпец
23.09.09
✎
18:00
|
С иерархии не все данные берет
|
|||
17
ХочуСпец
23.09.09
✎
18:00
|
(11) В ветке нет никакой ясности
|
|||
18
ХочуСпец
23.09.09
✎
18:02
|
В (11) соспаставление строк идет по поиску родителя (родитель - это номер строки родителя при записи в ТЧ).
Но как записать номер строки? Такой калонки у строки ДЗ нет! ( |
|||
19
Kaushly
23.09.09
✎
18:56
|
Процедура ЗаполнитьСтроки(СтрокаКорень, ЭтапРодитель)
СтрокиУровня = ЭтапыРабот.НайтиСтроки(Новый Структура("ЭтапРодитель", ЭтапРодитель)); Для Каждого СтрокаУровня Из СтрокиУровня Цикл НоваяСтрока = СтрокаКорень.Строки.Добавить(); НоваяСтрока.Этап = СтрокаУровня.Этап ; ЗаполнитьСтроки(НоваяСтрока, СтрокаУровня.Этап); КонецЦикла; КонецПроцедуры Процедура ПриОткрытии() ДеревоЭтапов.Строки.Очистить(); ЗаполнитьСтроки(ДеревоЭтапов, ""); КонецПроцедуры |
|||
20
ХочуСпец
24.09.09
✎
09:49
|
(19) спасибо, получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |