• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Закладки На Пенели

  • Автор темы Дайнеко
  • Дата начала
Д

Дайнеко

Задача стоит в программном создании нескольких закладок на Панели.

* Первым неприятным сюрпризом стало то, что в любой панели уже существует "Страница1". Следовательно программе приходится анализировать и созданные в конф-ре страницы менять, а остальные добавлять.
Может я чего не так понимаю?
Такой текст:
Код:
	ЭлементыФормы.Панель.Страницы.Очистить();
Кол = ЭлементыФормы.Панель.Страницы.Количество();
Ном = 0;
Пока Ном < 5 Цикл
Ном = Ном + 1;
Если Ном > Кол Тогда
ЭлементыФормы.Панель.Страницы.Добавить();
КонецЕсли;

ЭлементыФормы.Панель.Страницы[Ном-1].Имя		= Формат(Ном, "ЧЦ=3;ЧВН=");
ЭлементыФормы.Панель.Страницы[Ном-1].Заголовок	= Выборка.Поле.Наименование;
ЭлементыФормы.Панель.Страницы[Ном-1].Значение	= Выборка.Поле;
КонецЦикла;

ЭлементыФормы.Панель.ОтображениеЗакладок = ОтображениеЗакладок.СверхуСПрокруткой;

* А дальше сюрприз: То появляются страницы, то нет. Добавлял команду ЭтаФорма.Обновить() Вроде как влияла, а потом не видел зависимости.

* Не появляются так:
- созданные в конфигураторе видны всегда
- Количество() всегда дает нужное количество
- созданные программно существуют не только в отладчике, когда их много, появляется справа значок прокрутки, их просто нет на экране. Проверил все свойства "Видимость" и др. В точности равны первой, существующей в конф-ии.
- ОтображениеЗакладок выкл/вкл реагирует только на "непрограммные".

Короче, кто такое делал, поделитесь опытом.
 
T

tanat

НоваяСтраница = ЭлементыФормы.Панель.Страницы.Добавить(Имя,Представление);
НоваяСтраница.Видимость = истина;


так не пойдет?
 
D

Darlock

А зачем перед циклом добавления страниц - удаление всех страниц? Не проще ли проверять какой-нибудь служебный реквизит? И такой вопрос, а "выборка" - это что за зверь? что в нем живет?
Страницы не добавляются - скорее всего, пустая выборка. Не?
 
Д

Дайнеко

НоваяСтраница = ЭлементыФормы.Панель.Страницы.Добавить(Имя,Представление);
НоваяСтраница.Видимость = истина;

Сработало. НО! Честное слово - это барабашки в моем компе. Ведь одно и то-же, что в моем конечном варианте:
Код:
	Кол = ЭлементыФормы.Панель.Страницы.Количество();
Если Ном > Кол Тогда
Страница = ЭлементыФормы.Панель.Страницы.Добавить();
Иначе
Страница = ЭлементыФормы.Панель.Страницы.Получить(Ном-1);
КонецЕсли;
Страница.Имя		= Формат(Ном, "ЧЦ=3;ЧВН=");
Страница.Заголовок	= Выборка.Поле.Наименование;
Страница.Значение	= Выборка.Поле;
Видимость = истина не нужна.
Тресните меня в лоб, если чем отличается от первоначального:
Код:
		ЭлементыФормы.Панель.Страницы[Ном-1].Имя		= Формат(Ном, "ЧЦ=3;ЧВН=");
В ходе отладки они то появлялись, то после небольшого изменения кода пропадали. В конечном итоге я пришел к выводу, что корень зла в управлении их вкл/выключением (у меня птичка на диалоге).
Код:
Процедура ОтобразитьПриИзменении(Элемент)
Если Отобразить Тогда
ЭлементыФормы.Панель.ОтображениеЗакладок = ОтображениеЗакладок.СверхуСПрокруткой;
Иначе
ЭлементыФормы.Панель.ОтображениеЗакладок = ОтображениеЗакладок.НеИспользовать;
КонецЕсли;
КонецПроцедуры

И вот кажется, если закладки изначально включены (в конф.) а метод их повторно включает на экране, то на экране видна рамка панели, но без закладок. Выключается всегда четко. Повторно включаешь, опять без закладок. Заклинило ее одним словом.

Теперь привел в порядок - включение только выключенных и наоборот. Работает.
Всем спасибо. Плюсики по желанию.

Darlock сказал(а):
А зачем перед циклом добавления страниц - удаление всех страниц?
Ну как же! Создались несколько страниц. Потом их спрятал. А для повторного раза старые нужно стереть. Только Фигня осталась старая - удаляются кроме одной.

Darlock сказал(а):
Страницы не добавляются - скорее всего, пустая выборка. Не?
Обижаешь. Я по-молодости, за такое - на дуэль. Это список складов, авторов и т.д.
 
Д

Дайнеко

Вот зараза! Переношу на другую форму - опять ерунда всякая.
И вот, помучавшись, теперь меня пронесло. Оказывается, надо выполнять пару правил:
- Имя страницы желательно начинать с буковки. Я формировал вроде "002". Программно позволяет, а в конфигураторе ругается.
- Не любит страниц с ПУСТЫМ название. Надеюсь, только в этом и загвоздка.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!