|
Заполнение созданных программно реквизитов | ☑ | ||
---|---|---|---|---|
0
yyyuuu
22.08.18
✎
12:30
|
здравствуйте ребята.
Управляемая форма.Программно создаю на форме таблицу значений и ее реквизиты. Вот столкнулся с непониманием, подскажите пожалуйста. Хочу заполнить эти реквизиты. В момент когда они создались или создаются записать в них значение &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) МассивТипаВыбора = Новый Массив; МассивТипаВыбора.Добавить(Тип("ТаблицаЗначений")); ОписаниеТипаВыбора = Новый ОписаниеТипов(МассивТипаВыбора); МассивРеквизитов = Новый Массив; МассивРеквизитов.Добавить(Новый РеквизитФормы("ТаблицаРасписания", ОписаниеТипаВыбора, "", "ТЗН")); КД = Новый КвалификаторыДаты(ЧастиДаты.Время); МассивКД = Новый Массив; МассивКД.Добавить(Тип("Дата")); ОписаниеТиповВремя = Новый ОписаниеТипов(МассивКД, , ,КД); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("С"); ТЗ.Колонки.Добавить("До"); ТЗ.Колонки.Добавить("ФИО"); ТЗ.Колонки.Добавить("Примечание");//ФИО и Примечание - строки Для Каждого Колонка Из ТЗ.Колонки Цикл МассивРеквизитов.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения,"ТаблицаРасписания")); КонецЦикла; ИзменитьРеквизиты(МассивРеквизитов); ТаблицаПолейВыбора = Элементы.Добавить("ТЗН", Тип("ТаблицаФормы")); ТаблицаПолейВыбора.ПутьКДанным = "ТаблицаРасписания"; ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список; Для Каждого Колонка Из ТЗ.Колонки Цикл НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "ТаблицаРасписания." + Колонка.Имя; НовыйЭлемент.Ширина = 10; КонецЦикла; ТаблицаПолейВыбора.УстановитьДействие("Выбор","ТЗНВыбор"); КонецПроцедуры |
|||
1
yyyuuu
22.08.18
✎
16:27
|
Вроде разобрался завтра вам покажу)
|
|||
2
yyyuuu
23.08.18
✎
09:47
|
Функция ДинамичноСоздатьТЗ(Таблица)
// //Добавим таблицу: Сначала саму таблицу, потом колонку //Ищем если форма уже создана надо ее удалить если нет создаем ЭлементТаблица = Элементы.Найти("ТаблицаНаФорме"); ЭлементыТЗ = Элементы.Найти("ТаблицаЗначений"); // Если ЭлементТаблица <> Неопределено Тогда // Элементы.Удалить(ЭлементТаблица); // КонецЕсли; // Реквизиты = Новый Массив; //** ДобавляемыеРеквизиты = Новый Массив; МассивТипов = Новый Массив; МассивТипов.Добавить(Тип("Булево")); Булево1 = Новый РеквизитФормы("ПолеВводаСтроки", новый ОписаниеТипов(МассивТипов),, "Поле ввода", Истина); ДобавляемыеРеквизиты.Добавить(Булево1); ИзменитьРеквизиты(ДобавляемыеРеквизиты); //** // Реквизиты.Добавить(Новый РеквизитФормы("ТаблицаНаФорме", Новый ОписаниеТипов("ТаблицаЗначений"))); // Для Каждого Ст ИЗ Таблица.Колонки Цикл // Реквизиты.Добавить(Новый РеквизитФормы(Ст.Имя, Ст.ТипЗначения, "ТаблицаНаФорме")); // КонецЦикла; // //Добавим Реквизиты на форму ИзменитьРеквизиты(Реквизиты); // //Добавим элементы формы Таб = Элементы.Добавить("ТаблицаНаФорме", тип("ТаблицаФормы")); Таб.ПутьКДанным = "ТаблицаНаформе"; // //запретим менять положение строк и сами строки, отключим командную панель // Таб.ИзменятьСоставСтрок = Ложь; Таб.ИзменятьПорядокСтрок = Ложь; Таб.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; // Для Каждого СТ ИЗ Таблица.Колонки Цикл // Рек = Элементы.Добавить("Колонка" + Ст.Имя, Тип("ПолеФормы"), Таб); // Рек.Вид = ВидПоляФормы.ПолеНадписи; Рек.ПутьКДанным = "ТаблицаНаФорме" + "." + Ст.Имя; Рек.Заголовок = Ст.Имя; КонецЦикла; // //Заполним Таблицу ЗначениеВРеквизитФормы(Таблица,"ТаблицаНаФорме"); // КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |