Очень нужная процедура, если предварительно надо просмотреть данные в таблице значений. В процедуру передаем таблицу значений и имя реквизита формы, реквизит формы создается и пересоздается (надо если несколько раз запускается процедура). Имена колонок берутся из переданной таблицы значений.
&НаСервере
Процедура ВывестиТЗНаФорму(Знач ТаблицаОбъект,СтрОбТб) Экспорт
ЭлементФормы = Элементы.Найти(СтрОбТб);
МассивДобавляемыхРеквизитов = Новый Массив;
МассивУдаляемыхРеквизитов = Новый Массив;
Если ЭлементФормы = Неопределено Тогда
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(СтрОбТб, Новый ОписаниеТипов("ТаблицаЗначений")));
Иначе
МассивУдаляемыхРеквизитов.Добавить(СтрОбТб);
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(СтрОбТб, Новый ОписаниеТипов("ТаблицаЗначений")));
КонецЕсли;
Для Каждого Колонка Из ТаблицаОбъект.Колонки Цикл
МассивДобавляемыхРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, СтрОбТб));
КонецЦикла;
ИзменитьРеквизиты(МассивДобавляемыхРеквизитов,МассивУдаляемыхРеквизитов);
// Преобразование объекта прикладного типа Таблица_Значений
// в реквизит управляемой формы (данные формы)
ЗначениеВРеквизитФормы(ТаблицаОбъект, СтрОбТб);
//удаляем старый Элемент Формы
Если ЭлементФормы <> Неопределено Тогда
ЭтаФорма.Элементы.Удалить(ЭлементФормы);
КонецЕсли;
// Создание элемента формы типа ТаблицаФормы для отображения дерева
ЭлементДерево = Элементы.Добавить(СтрОбТб, Тип("ТаблицаФормы"));
ЭлементДерево.ПутьКДанным = СтрОбТб;
ЭлементДерево.Отображение = ОтображениеТаблицы.Дерево;
//ЭлементДерево.РежимВыделенияСтроки = РежимВыделенияСтрокиТаблицы.Строка;
ЭлементДерево.ФиксацияСлева = 1;
Для Каждого Колонка Из ТаблицаОбъект.Колонки Цикл
НовыйЭлемент = Элементы.Добавить(СтрОбТб+"_" +Колонка.Имя, Тип("ПолеФормы"), ЭлементДерево);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ПутьКДанным = СтрОбТб+"." + Колонка.Имя;
СтрДлин=СтрДлина(СокрЛП(ТаблицаОбъект[0][Колонка.Имя]));
Если СтрДлин=0 Тогда
НовыйЭлемент.Ширина=8;
Иначе
НовыйЭлемент.Ширина=СтрДлин;
КонецЕсли;
КонецЦикла;
//если надо точно расположить новый реквизит на нужную страницу или в определенную группу то делаем так
ЭлементФормы = Элементы.Найти(СтрОбТб);
Элементы.Переместить(ЭлементФормы, Элементы.Группа5,"сюда элемент за которым будет наш новый");
//если надо точно расположить новый реквизит на нужную страницу или в определенную группу то делаем так
КонецПроцедуры
запарился раскрашивать.