УФ. Программное добавление отображения отбора КомпановщикаНастроек

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. EmpireSer 03.09.13 11:24 Сейчас в теме
Мне необходимо на управляемую форму программно создать страницы, которые будут содержать, каждая свою, таблицу, которая отображает отбор из своего экземпляра КомпоновщикНастроекКомпоновкиДанных.

Т.е. у меня есть управляемая форма, на ней есть страница, где должны отображаться таблицы с "ПутьКДанным" со своим "Реквизит.Имя + ".Настройки.Отбор"":

МетаданныеТипа = Метаданные.НайтиПоТипу(ТипЗнч(Запись.Тип));
Для Каждого ТЧМетаданные Из МетаданныеТипа.ТабличныеЧасти Цикл
	Идентификатор = Новый УникальныйИдентификатор();
	
	Страница = Элементы.Добавить("ТЧ" + ТЧМетаданные.Имя + "Группа", Тип("ГруппаФормы"), Элементы.ТабличнаяЧасть);
	Страница.Заголовок = ТЧМетаданные.Синоним;
	
	//==========================================================­======
	
	Реквизит = Новый РеквизитФормы("ТЧ" + ТЧМетаданные.Имя + "Имя", Новый ОписаниеТипов("Строка"));
	ЭтаФорма.ИзменитьРеквизиты(вспОбщий.МассивДобавитьЗначение(Реквизит));
	
	НовыйЭлемент = Элементы.Добавить("ТЧ" + ТЧМетаданные.Имя + "Имя", Тип("ПолеФормы"), Страница);
	НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
	НовыйЭлемент.ПутьКДанным = Реквизит.Имя;
	
	//==========================================================­======
	
	Реквизит = Новый РеквизитФормы("ТЧ" + ТЧМетаданные.Имя + "КомпоновщикНастроек", Новый ОписаниеТипов("КомпоновщикНастроекКомпоновкиДанных"));
	ЭтаФорма.ИзменитьРеквизиты(вспОбщий.МассивДобавитьЗначение(Реквизит));

	ИнициализацияКомпановщикаНастроек(ЭтаФорма[Реквизит.Имя], ТЧМетаданные, Идентификатор);
	
	НовыйЭлемент = Элементы.Добавить("ТЧ" + ТЧМетаданные.Имя + "Отбор", Тип("ТаблицаФормы"), Страница);
	НовыйЭлемент.ПутьКДанным = Реквизит.Имя + ".Настройки.Отбор";
КонецЦикла;
Показать


Как я понял нужно как-то создать колонки для таких таблиц, но как?
Т.е. код отрабатывает и элементы с реквизитами создаются, но видно только поля ввода, а таблицы не видны на форме (не видимы).

P.S. На функцию "вспОбщий.МассивДобавитьЗначение" не обращайте внимание.
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. EmpireSer 03.09.13 12:24 Сейчас в теме
Да уж ответов супер много...

Короче я смог сформировать столбцы, но они отличаются от того, что создаёт конфигуратор.
ЭтаФорма.ЗаблокироватьДанныеФормыДляРедактирования();

МетаданныеТипа = Метаданные.НайтиПоТипу(ТипЗнч(Запись.Тип));
Для Каждого ТЧМетаданные Из МетаданныеТипа.ТабличныеЧасти Цикл
	Идентификатор = Новый УникальныйИдентификатор();
	
	Страница = Элементы.Добавить("ТЧ" + ТЧМетаданные.Имя + "Группа", Тип("ГруппаФормы"), Элементы.ТабличнаяЧасть);
	Страница.Заголовок = ТЧМетаданные.Синоним;
	
	//==========================================================­======
	
	Реквизит = Новый РеквизитФормы("ТЧ" + ТЧМетаданные.Имя + "КомпоновщикНастроек", Новый ОписаниеТипов("КомпоновщикНастроекКомпоновкиДанных"));
	Реквизит.СохраняемыеДанные = Истина;
	ЭтаФорма.ИзменитьРеквизиты(вспОбщий.МассивДобавитьЗначение(Реквизит));

	ИнициализацияКомпановщикаНастроек(ЭтаФорма[Реквизит.Имя], ТЧМетаданные, Идентификатор);
	
	Таблица = Элементы.Добавить("ТЧ" + ТЧМетаданные.Имя + "Отбор", Тип("ТаблицаФормы"), Страница);
	Таблица.ПутьКДанным = Реквизит.Имя + ".Настройки.Отбор";
	
	Для Каждого Реквизит Из ПолучитьРеквизиты(Таблица.ПутьКДанным) Цикл
		Если Реквизит.ТипЗначения.СодержитТип(Тип("ДоступныеПоляКомпоновкиДанных")) Тогда
			Продолжить;
		КонецЕсли;
		
		Колонка = Элементы.Добавить(СтрЗаменить(Таблица.ПутьКДанным, ".", "") + Реквизит.Имя, Тип("ПолеФормы"), Таблица);
		Колонка.Вид = ВидПоляФормы.ПолеВвода;
		Колонка.ПутьКДанным = Таблица.ПутьКДанным + "." + Реквизит.Имя;
	КонецЦикла;
КонецЦикла;

ЭтаФорма.РазблокироватьДанныеФормыДляРедактирования();
Показать


А вот как получить такое же отображение, какое делает конфигуратор?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот