|
Загвоздка с ДеревомЗначений | ☑ | ||
---|---|---|---|---|
0
ВаликТР
27.01.14
✎
14:06
|
Помогите рабобраться.
Создал ТП на форме элемента справочника. Изменил ТипЗначения - ДЗ. Добавил колонку (строка), но свойства "ОтображатьИерархию" в свойствах колонки нет. В результате не раскрывается дерево, которое формирую программно. Как раскрыть? Где взять крестик?. Спасибо! |
|||
1
1dvd
27.01.14
✎
14:07
|
в качестве источника что?
|
|||
2
ВаликТР
27.01.14
✎
14:08
|
(1) Источник ТП - Одноименный реквизит Формы - Тип - ДЗ.
|
|||
3
1dvd
27.01.14
✎
14:09
|
(2) Заполняй его как дерево и будет тебе щасье
|
|||
4
ВаликТР
27.01.14
✎
14:10
|
(3) Так заполняю же. В отладчике в первой строке ДЗ - количество строк -1. А первую строку раскрыть не могу.
|
|||
5
kosts
27.01.14
✎
14:10
|
(0)>которое формирую программно.
Покажи как |
|||
6
djekting
27.01.14
✎
14:11
|
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) // Создание и заполнение "обычного" объекта прикладного типа ДеревоЗначений, // который будет отображен на управляемой форме ДеревоОбъект = Новый ДеревоЗначений; ДеревоОбъект.Колонки.Добавить("Узел", Новый ОписаниеТипов("Строка")); Для к1 = 1 По 3 Цикл СтрокаУ1 = ДеревоОбъект.Строки.Добавить(); СтрокаУ1.Узел = "Узел"+к1; Для к2 = 1 По 3 Цикл СтрокаУ2 = СтрокаУ1.Строки.Добавить(); СтрокаУ2.Узел = СтрокаУ1.Узел+к2; Для к3 = 1 По 3 Цикл СтрокаУ3 = СтрокаУ2.Строки.Добавить(); СтрокаУ3.Узел = СтрокаУ2.Узел+к3; КонецЦикла; КонецЦикла; КонецЦикла; // Создание Реквизита формы типа ДанныеФормыДерево МассивДобавляемыхРеквизитов = Новый Массив; МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы("Дерево", Новый ОписаниеТипов("ДеревоЗначений"))); Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл МассивДобавляемыхРеквизитов.Добавить( Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "Дерево")); КонецЦикла; ИзменитьРеквизиты(МассивДобавляемыхРеквизитов); // Преобразование объекта прикладного типа ДеревоЗначений // в реквизит управляемой формы (данные формы) ЗначениеВРеквизитФормы(ДеревоОбъект, "Дерево"); // Создание элемента формы типа ТаблицаФормы для отображения дерева ЭлементДерево = Элементы.Добавить("Дерево", Тип("ТаблицаФормы")); ЭлементДерево.ПутьКДанным = "Дерево"; ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево; Для Каждого Колонка Из ДеревоОбъект.Колонки Цикл НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ЭлементДерево); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "Дерево." + Колонка.Имя; КонецЦикла; КонецПроцедуры |
|||
7
ВаликТР
27.01.14
✎
14:13
|
Дерево.Строки.Очистить();
Дерево = Парсинг(Диалог.ПолноеИмяФайла); Функция Парсинг(ИмяФайла) Экспорт Чтение = Новый ЧтениеXML(); Чтение.ОткрытьФайл(ИмяФайла); Чтение.УстановитьСтроку(ЭлементыФормы.Документ.ПолучитьТекст()); ДеревоЗначений = Новый ДеревоЗначений(); Попытка Чтение.Прочитать(); Исключение Предупреждение("Документ XML поврежден"); Возврат ДеревоЗначений; КонецПопытки; ДеревоЗначений.Колонки.Добавить("Элемент"); ДеревоЗначений.Колонки.Добавить("Выражение"); ДеревоЗначений.Колонки.Добавить("Атрибуты"); Корень = ДеревоЗначений.Строки.Добавить(); Корень.Элемент = Чтение.Имя; Рекурсия(Корень, Чтение); Возврат ДеревоЗначений; КонецФункции Процедура Рекурсия(СтрокаДерева, Чтение) Если Чтение.КоличествоАтрибутов() > 0 Тогда АтрибутыСоответствие = Новый Соответствие(); Пока Чтение.ПрочитатьАтрибут() Цикл АтрибутыСоответствие.Вставить(Чтение.Имя, Чтение.Значение); КонецЦикла; СтрокаДерева.Атрибуты = АтрибутыСоответствие; КонецЕсли; //Состояние(Чтение.Имя); Пока Чтение.Прочитать() Цикл Если Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда Прервать; ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда СтрокаДерева.Выражение = Чтение.Значение; ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда Дочерний = СтрокаДерева.Строки.Добавить(); Дочерний.Элемент = Чтение.Имя; Рекурсия(Дочерний, Чтение); КонецЕсли; ОбработкаПрерыванияПользователя(); КонецЦикла; КонецПроцедуры |
|||
8
kosts
27.01.14
✎
14:14
|
А руками, интерактивно строку можешь добавить? Имею ввиду после всех этих процедур.
|
|||
9
ВаликТР
27.01.14
✎
14:21
|
Странно как-то себя это поле ведет. Создаются строки только в корне. Крестиков нет. Подстроку создать нет возможности. Иа "перенести вверх/вниз" вообще не реагирует!!!
|
|||
10
ВаликТР
27.01.14
✎
14:22
|
Создал новое ТП - ДЗ. Ничего программно не заполняю. Реакция та же. Может глюк платформы :-)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |