|
Программное создание панели и ее страниц ? | ☑ | ||
---|---|---|---|---|
0
Pereliviya
11.02.15
✎
11:31
|
Добрый день.
Подскажите, как правильно программно создать панель и несколько страниц к этой панели? Делаю так: ЭлПанелиФ = ЭлементыФормы.Добавить(Тип("Панель"), "ПанельФинансы", Истина, ЭлементыФормы.ОсновнаяПанель); ЭлПанелиФ.Верх = 8; ЭлПанелиФ.Высота = 551; ЭлПанелиФ.Лево = 8; ЭлПанелиФ.Ширина = 922; ЭлементПанели = ЭлПанелиФ.Страницы.Добавить(); ЭлементПанели.Страницы.Заголовок = "Инвестиции"; ЭлементПанели.Страницы.Имя = "Инвестиции"; панель создается, страница "Инвестиции" тоже, но с индексом 1, а под индексом 0 значится пустая страница. Как удалить/убрать/заменить страницу с индексом 0 ? |
|||
1
chelentano
11.02.15
✎
11:41
|
(0) Возможно, когда создаётся панель, то у неё сразу есть одна страница по умолчанию (проверь), в этом случае можно:
ЭлементПанели = ЭлПанелиФ.Страницы[0]; А для остальных страниц использовать "Добавить" |
|||
2
Pereliviya
11.02.15
✎
11:45
|
(1) МЕРСИ, МЕРСИ!!!!
|
|||
3
Vladal
11.02.15
✎
12:04
|
(2) Вот еще один код. Я загружал из ТСД товары и в зависимости от количества документов (многодокументный учет в ТСД) создавал вкладки на панели программно. Также программно назначал привязки, расположение закладок, табличного поля и других элементов.
// Процедура анализирует таблицу товаров и создает соответствующие документам ТСД закладки // Процедура СоздатьЭлементыФормыПоТаблицеТоваров(ТаблицаТоваров) // Формирование списка документов ТСД СписокДокументов = ТаблицаТоваров.Скопировать(); СписокДокументов.Свернуть("НомерДокументаТСД", "Количество"); СписокДокументов.Сортировать("НомерДокументаТСД Возр"); // Для одиночной таблицы элементы формы имеют другое отображение мОдиночныйДокумент = СписокДокументов.Количество() = 1; мЭтоЗаявкаНаПечатьЦенников = ТипЗнч(ФормаКлиента.ДокументОбъект) = Тип("ДокументОбъект.ЗаявкаНаПечатьЦенников"); // Создание панели ПанельФормы = ЭлементыФормы.Добавить(Тип("Панель"), "Панель", Истина); ПанельФормы.Имя = "Панель"; ПанельФормы.Верх = 33; ПанельФормы.Высота = 226; ПанельФормы.Ширина = 384; ПанельФормы.Лево = 8; ПанельФормы.ОтображениеЗакладок = ОтображениеЗакладок.Сверху; ПанельФормы.ПорядокОтображения = 3; ПанельФормы.РазмерКартинки = РазмерКартинки.Растянуть; // Для одностраничного списка вкладки не показывать ПанельФормы.ОтображениеЗакладок = ?(мОдиночныйДокумент, ОтображениеЗакладок.НеИспользовать, ОтображениеЗакладок.СлеваГоризонтально); ПанельФормы.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭтаФорма.Панель, ГраницаЭлементаУправления.Низ); ПанельФормы.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭтаФорма.Панель, ГраницаЭлементаУправления.Право); ПанельФормы.УстановитьДействие("ПриСменеСтраницы", Новый Действие("ПриСменеСтраницыПанелиДокументов")); // Если загрузка в документ ЗаявкаНаПечатьЦенников, показать флажок использования характеристик ЭлементыФормы.ИспользоватьХарактеристики.Видимость = мЭтоЗаявкаНаПечатьЦенников;; // Цикл по существующим документам ШиринаТабличногоПоля = ?(мОдиночныйДокумент, 376, 300); Для каждого СтрокаСпискаДокументов из СписокДокументов Цикл НомерДокументаТСД = СтрокаСпискаДокументов.НомерДокументаТСД; Количество = СтрокаСпискаДокументов.Количество; СтруктураОтбора = Новый Структура("НомерДокументаТСД", НомерДокументаТСД); МассивСтрокДокументаТСД = ТаблицаТоваров.НайтиСтроки(СтруктураОтбора); ЭтаФорма["Товары" + НомерДокументаТСД] = ТаблицаТоваров.Скопировать(МассивСтрокДокументаТСД); КоличествоСтрок = ЭтаФорма["Товары" + НомерДокументаТСД].Количество(); Этаформа.ЭлементыФормы.Панель.Страницы.Добавить("Документ" + НомерДокументаТСД, "Страница1"); ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы["Документ" + НомерДокументаТСД]; ТабличноеПоле = ЭлементыФормы.Добавить(Тип("ТабличноеПоле"), "ПолеТовары" + НомерДокументаТСД, Истина, ЭлементыФормы.Панель); ТабличноеПоле.Данные = "Товары" + НомерДокументаТСД; ТабличноеПоле.Верх = 6; ТабличноеПоле.Высота = 212; ТабличноеПоле.Ширина = ШиринаТабличногоПоля; ТабличноеПоле.Лево = 6; ТабличноеПоле.ВертикальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.Использоватьавтоматически; ТабличноеПоле.Вывод = ИспользованиеВывода.Авто; ТабличноеПоле.ВысотаПодвала = 1; ТабличноеПоле.ВысотаШапки = 1; ТабличноеПоле.ГоризонтальнаяПолосаПрокрутки = ИспользованиеПолосыПрокрутки.Использоватьавтоматически; ТабличноеПоле.ГоризонтальныеЛинии = Истина; ТабличноеПоле.ПорядокОтображения = 1; ТабличноеПоле.ЧередованиеЦветовСтрок = Истина; ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Низ, ЭтаФорма.Панель, ГраницаЭлементаУправления.Низ); ТабличноеПоле.УстановитьПривязку(ГраницаЭлементаУправления.Право, ЭтаФорма.Панель, ГраницаЭлементаУправления.Право); ТабличноеПоле.СоздатьКолонки(); ЭлементыФормы["ПолеТовары" + НомерДокументаТСД].Колонки.НомерДокументаТСД.Видимость = Ложь; Если Не мИспользоватьСерии Тогда Колонка = ЭлементыФормы["ПолеТовары" + НомерДокументаТСД].Колонки["СерияНоменклатуры"]; Колонка.Видимость = Ложь; Колонка.ИзменятьВидимость = Ложь; КонецЕсли; Если Не мИспользоватьХарактеристики Тогда Колонка = ЭлементыФормы["ПолеТовары" + НомерДокументаТСД].Колонки["ХарактеристикаНоменклатуры"]; Колонка.Видимость = Ложь; Колонка.ИзменятьВидимость = Ложь; КонецЕсли; КонецЦикла; // Цикл по вкладкам, чтобы сохранились привязки Для каждого СтрокаСпискаДокументов из СписокДокументов Цикл Количество = СтрокаСпискаДокументов.Количество; НомерДокументаТСД = СтрокаСпискаДокументов.НомерДокументаТСД; КоличествоСтрок = ЭтаФорма["Товары" + НомерДокументаТСД].Количество(); ЭлементыФормы.Панель.Страницы["Документ" + НомерДокументаТСД].Заголовок = "Документ " + НомерДокументаТСД + " (" + КоличествоСтрок + " арт., " + Количество + " ед.)"; КонецЦикла; // После программного описания панели, создается страница без идентификатора с индексом 0 Этаформа.ЭлементыФормы.Панель.Страницы[0].Имя = "Пустая"; Этаформа.ЭлементыФормы.Панель.Страницы.Удалить(0); ЭтаФорма.Ширина = 800; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |