Имя: Пароль:
1C
1С v8
Как на УФ на форме заполнить существующее дерево значений?
0 Prog111
 
05.05.17
12:44
Что-то я совсем запутался. Обыскался по интернету - везде один и тот же пример по программному созданию элемента формы вида дерева значений. А мне нужно поработать с существующим (созданным в конфигураторе) деревом значений на форме. Например, добавить колонки, строки, заполнить их.

Вот в конфигураторе на управляемой форме создал реквизит "ОборудованиеКонтрагента" с типом Дерево значений, перенёс его в левую часть панели, обозвал ОборудованиеКонтрагентаФорма.

Как на клиенте добавить колонку и строки на форме?
1 polosov
 
05.05.17
13:06
(0)
&НаКлиенте
Процедура ДобСтроку(Команда)
    А = Дер.ПолучитьЭлементы();
    Б = А.Добавить();
    Б.Кол1 = "ПерваяСтрока";
    В = Б.ПолучитьЭлементы().Добавить();
    В.Кол2 = "Вложенная ВтораяСтрока";
КонецПроцедуры

Где Дер - Реквизит формы типа ДеревоЗначений
Кол1 и Кол2 - колонки дерева.
2 Prog111
 
05.05.17
13:25
(1) Спасибо, так тоже попробую.
3 Prog111
 
05.05.17
13:26
Сделал так:

ДеревоОбъект = РеквизитФормыВЗначение("ОборудованиеКонтрагента");
    ДеревоОбъект.Колонки.Добавить("Узел", Новый ОписаниеТипов("Строка"), "Имя1");
    Для к1 = 1 По 3 Цикл
        СтрокаУ1 = ДеревоОбъект.Строки.Добавить();
        СтрокаУ1.Узел = "Узел"+к1;
        Для к2 = 1 По 3 Цикл
            СтрокаУ2 = СтрокаУ1.Строки.Добавить();
            СтрокаУ2.Узел = СтрокаУ1.Узел+к2;
            Для к3 = 1 По 3 Цикл
                СтрокаУ3 = СтрокаУ2.Строки.Добавить();
                СтрокаУ3.Узел = СтрокаУ2.Узел+к3;
            КонецЦикла;
        КонецЦикла;
    КонецЦикла;
    
    ЗначениеВРеквизитФормы(ДеревоОбъект, "ОборудованиеКонтрагента");    

Дерево заполнилось, но почему-то имя колонки не отображается ("Имя1").
4 DailyLookingOnA Sunse
 
05.05.17
14:03
Элемент формы нужно еще добавить.
5 тарам пам пам
 
05.05.17
14:10
(3) потому что нужно не РеквизитФормыВЗначение/ЗначениеВРеквизитФормы делать, а вот так:

Колонка = Новый РеквизитФормы("ИмяКолонки", Новый ОписаниеТипов("Число"), "ИмяДереваЗначений");
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(Колонка);
ИзменитьРеквизиты(ДобавляемыеРеквизиты);

+ после этого еще поле на форму добавить