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

Дайнеко

Well-Known Member
19.11.2009
951
0
53
Минск
#1
Задача стоит в программном создании нескольких закладок на Панели.

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

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

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

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

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

tanat

Well-Known Member
02.03.2007
265
0
#2
НоваяСтраница = ЭлементыФормы.Панель.Страницы.Добавить(Имя,Представление);
НоваяСтраница.Видимость = истина;


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

Darlock

Well-Known Member
04.01.2008
560
1
Москва
#3
А зачем перед циклом добавления страниц - удаление всех страниц? Не проще ли проверять какой-нибудь служебный реквизит? И такой вопрос, а "выборка" - это что за зверь? что в нем живет?
Страницы не добавляются - скорее всего, пустая выборка. Не?
 

Дайнеко

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

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

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

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

Дайнеко

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