Имя: Пароль:
1C
1С v8
8.2 программный вывод в дерево значений на форме
0 MaxFoxxy
 
08.12.11
16:23
Помогите разобраться.
На форме создаю реквизит формы ТабличноеПолеРеквизиты (ТаблицаЗначений).
формирую дерево значений

ДеревоРеквизитов = Новый ДеревоЗначений;
   Для Каждого ТекКол ИЗ ТЗ_рекв.Колонки Цикл
       ДеревоРеквизитов.Колонки.Добавить(ТекКол.Имя);
   КонецЦикла;    
   
   ВеткаРеквизитов = ДеревоРеквизитов.Строки.Добавить();
   ВеткаРеквизитов.Реквизит = "Реквизиты";
   
   Для Каждого ТекСтр Из ТЗ_рекв Цикл
       НовСтр = ВеткаРеквизитов.Строки.Добавить();
       ЗаполнитьЗначенияСвойств(НовСтр, ТекСтр);
   КонецЦикла;

Теперь нужно вывести его в ТабличноеПолеРеквизиты с созданием колонок.
Делаю так:
МассивДобавляемыхРеквизитов = Новый Массив;
   МассивУдаляемыхРеквизитов = Новый Массив;

   Для Каждого Колонка Из ДеревоРеквизитов.Колонки Цикл
       МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, ""));
       Если ЭтаФорма.Элементы.Найти("ТабличноеПолеРеквизиты." + Колонка.Имя) <> Неопределено Тогда
           МассивУдаляемыхРеквизитов.Добавить("ТабличноеПолеРеквизиты." + Колонка.Имя);
       КонецЕсли;
   КонецЦикла;
   
   ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);
   
   ЗначениеВРеквизитФормы(ДеревоРеквизитов,"ТабличноеПолеРеквизиты");


Ругается :
Ошибка при вызове метода контекста (ЗначениеВРеквизитФормы)
   ЗначениеВРеквизитФормы(ДеревоРеквизитов,"ТабличноеПолеРеквизиты");
Недопустимое значение параметра (параметр номер '2')
1 jsmith82
 
08.12.11
16:25
я не понял, ты хочешь дерево вывести в таблицу значений?
2 jsmith82
 
08.12.11
16:26
динамический объект и элемент формы должны совпадать до типа и состава колонок, иначе получишь эту мессагу
3 MaxFoxxy
 
08.12.11
16:27
(2) понятно. Но что я делаю не так? я же добавляю колонки из ДеревоРеквизитов и потом его же исользую для заполнения реквизитов
4 jsmith82
 
08.12.11
16:28
потому что это дерево, а то таблица
5 rs_trade
 
08.12.11
16:31
(3) На форме создаю реквизит формы ТабличноеПолеРеквизиты (ТаблицаЗначений)

где тут дерево?
6 MaxFoxxy
 
08.12.11
16:36
а ведь хорошо то подмечено... и сказать нечего
7 Vladal
 
08.12.11
16:41
(5) У табличного поля можно указать тип значения - таблица значений или дерево значений.

Глянь-ка: http://infostart.ru/public/72380/
8 MaxFoxxy
 
08.12.11
16:55
(7) ок гляну. Но меня больше интересовал механизм отображения дерева на управляемую форму с программным добавлением колонок
9 Vladal
 
08.12.11
17:09
а.. на управляемую... пардоньте, там немного не так.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший