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