![]() |
|
Программно добавить ТаблицуЗначений на форму | ☑ | ||
---|---|---|---|---|
0
RizONE
02.01.21
✎
23:08
|
Доброе!
С Новым Годом! Подскажите сабж, нагуглить ничего кроме УП не могу делаю на 8.3 что-то типа МассивТипа = Новый Массив; МассивТипа.Добавить(Тип("ТаблицаЗначений")); ОписаниеТипа = Новый ОписаниеТипов(МассивТипа); Поле = ЭлементыФормы.Добавить(ОписаниеТипа, "тпПроцедуры", Истина, ЭлементыФормы.ПанельСправочники); дает ошибку Нужно для ОП |
|||
1
RizONE
02.01.21
✎
23:09
|
(0) пардон, УП = УФ
|
|||
2
Сергиус
02.01.21
✎
23:21
|
(0)&НаСервере
Процедура ПриОткрытииНаСервере() // Описание таблицы значений как реквизита МассивТипа = Новый Массив; МассивТипа.Добавить(Тип("ТаблицаЗначений")); // Добавление ТаблицыЗначений в массив реквизитов ОписаниеТипа = Новый ОписаниеТипов(МассивТипа); МассивРеквизитовФормы = Новый Массив; МассивРеквизитовФормы.Добавить(Новый РеквизитФормы("ТаблицаСотрудников", ОписаниеТипа, "", "ТЗСотр")); // Создание ТаблицыЗначений с описанием колонок КвалификаторыСтроки = Новый КвалификаторыСтроки(10); ОписаниеСтроки_10 = Новый ОписаниеТипов("Строка", ,КвалификаторыСтроки); ОписаниеСотрудника = Новый ОписаниеТипов("СправочникСсылка.Сотрудники"); ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("Код", ОписаниеСтроки_10); ТЗ.Колонки.Добавить("Сотрудник", ОписаниеСотрудника); // ТЗ.Колонки.Добавить - можно и в цикле // Добавление в массив реквизитов колонок ТаблицыЗначений Для Каждого Колонка Из ТЗ.Колонки Цикл МассивРеквизитовФормы.Добавить(Новый РеквизитФормы(Колонка.Имя, Колонка.ТипЗначения, "ТаблицаСотрудников")); КонецЦикла; // Удаление - если таблица существует ЭлементТаблица = Элементы.Найти("ТаблицаСотрудников"); Если ЭлементТаблица <> Неопределено Тогда Элементы.Удалить(ЭлементТаблица); Иначе ИзменитьРеквизиты(МассивРеквизитовФормы); КонецЕсли; // Добавление ТаблицыЗначений на форму ТаблицаПолейВыбора = Элементы.Добавить("ТЗСотр", Тип("ТаблицаФормы")); ТаблицаПолейВыбора.ПутьКДанным = "ТаблицаСотрудников"; ТаблицаПолейВыбора.Отображение = ОтображениеТаблицы.Список; ТаблицаПолейВыбора.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; // Отключение командной панели Для Каждого Колонка Из ТЗ.Колонки Цикл НовыйЭлемент = Элементы.Добавить(Колонка.Имя, Тип("ПолеФормы"), ТаблицаПолейВыбора); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = "ТаблицаСотрудников." + Колонка.Имя; НовыйЭлемент.Ширина = 10; КонецЦикла; // Заполнение ТаблицыЗначений Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Сотрудники.Код КАК Код, | Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация, | Сотрудники.Ссылка КАК Ссылка, | Сотрудники.Наименование КАК Наименование |ИЗ | Справочник.Сотрудники КАК Сотрудники | |УПОРЯДОЧИТЬ ПО | Наименование"; РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл Строка = ТЗ.Добавить(); Строка.Код = ВыборкаДетальныеЗаписи.Код; Строка.Сотрудник = ВыборкаДетальныеЗаписи.Ссылка; КонецЦикла; // Передача ТаблицыЗначений в реквизит формы ЗначениеВРеквизитФормы(ТЗ, "ТаблицаСотрудников"); КонецПроцедуры |
|||
3
RizONE
02.01.21
✎
23:23
|
(2)
Поле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "тпПроцедуры", Истина, ЭлементыФормы.ПанельСправочники); Поле.ТолькоПросмотр = ЛОЖЬ; Поле.ТипЗначения = Новый ОписаниеТипов("ТаблицаЗначений"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |