helpf.pro
Регистрация

v7: Активация закладки

ALLA
15.06.2011 12:03Прочитано: 17808
Как программно активизировать нужную закладку на форме? Спасибо.
Изменено 15.06.11 14:33:05 по причине: Тема по 7.7
Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
15.06.2011 12:30Ответ № 1
(0) ALLA, что за закладка? может элемент контекстного меню?
ALLA
15.06.2011 13:27Ответ № 2
1С7.7 Закладки и слои. Можно изменить слой, но активной остается прежняя закладка.
E_Migachev
15.06.2011 14:41Ответ № 3
Слои и закладки на форме

Форма может состоять из нескольких слоев. Каждый слой может быть показан или скрыт в любой комбинации с другими слоями.
Синтаксис: Форма.ИспользоватьСлой(<ИмяСлоя>,[<Режим>])
Код 1C v 7.x
 //показать слой Основной
Форма.ИспользоватьСлой(“Основной”,1);
//скрыть слой Основной
Форма.ИспользоватьСлой(“Основной”,0);

//показать слой Основной и скрыть все остальные
Форма.ИспользоватьСлой(“Основной”,2);

//показать слой Основной и Фон и скрыть все остальные
Форма.ИспользоватьСлой(“Основной,Фон”,2);
//закладки на форме реализуются с помощью слоев

Форма.ИспользоватьЗакладки(1);
Форма.Закладки.ДобавитьЗначение(1, “Закладка 1”);
Форма.Закладки.ДобавитьЗначение(2, “Закладка 2”);
Процедура ПриВыбореЗакладки(НомерЗакладки, ЗначениеЗакладки)
Если НомерЗакладки = 1 Тогда
Форма.ИспользоватьСлой(“Фон,Шаг1”);
Иначе
Форма.ИспользоватьСлой(“Фон,Шаг2”);
КонецЕсли;
E_Migachev
15.06.2011 14:44Ответ № 4
+(3) подробнее:
В процессе создания диалога в «Конфигураторе» возможно определить необходимое количество слоев диалога. Слой диалога — это некоторое множество элементов диалога. При этом каждый элемент диалога принадлежит одному и только одному слою. Элементов, не принадлежащих каким-либо слоям, быть не может. На этапе исполнения можно управлять видимостью определенных слоев. Для этого применяется метод объекта «Форма» — «ИспользоватьСлой».

Данный метод принимает два параметра: идентификатор слоя (или несколько идентификаторов через запятую) и действие, которое требуется произвести с данным слоем. Возможны следующие действия со слоями:

* 0 — скрыть данный слой;
* 1 — показать данный слой;
* 2 — показать данный слой и скрыть остальные.


Закладки — это элемент управления диалога, который выглядит, как несколько ярлычков с надписями. Данный элемент диалога невозможно создать в «Конфигураторе», он создается только при исполнении методом объекта «Форма» — «ИспользоватьЗакладки»:
Код 1C v 7.x
 Форма.ИспользоватьЗакладки (1);

После того, как элемент управления «Закладки» создан, возможно определение списка закладок. Это производится через атрибут объекта «Форма» — «Закладки». Этот атрибут (только для чтения) содержит объект вида «СписокЗначений». Каждое значение, добавляемое в этот список, определяет одну закладку. При этом в качестве надписи на закладке будет использовано представление этого значения.

Когда закладки определены, пользователь может по ним перемещаться щелчками мыши. При щелке мыши по закладке система пытается найти и выполнить предопределенную процедуру «ПриВыбореЗакладки». Данная процедура принимает два параметра: номер закладки и значение закладки, которое было использовано при создании закладки.

Традиционно закладки используют совместно со слоями. Т.е. при открытии формы определяется набор закладок, как набор значений вида «Представление закладки» — «Слои диалога», когда в качестве значения закладки указывается набор идентификаторов слоев через запятую. Далее, когда пользователь щелкает по закладке, в процедуре «ПриВыбореЗакладки» вызывается метод «ИспользоватьСлой», в который передается значение закладки и указывается действие 2 — показать данные слои и скрыть все остальные. Пример:
Код 1C v 7.x
 Процедура ПриВыбореЗакладки (НомерЗакладки, ЗначениеЗакладки) Далее

Процедура ПриОткрытии ()
Форма.ИспользоватьЗакладки (1);
Закладки = Форма.Закладки;
Закладки.Установить ("Основное", "Шапка, Кнопки");
Закладки.Установить ("Товары", "ТабличнаяЧасть, Кнопки");

ПриВыбореЗакладки (1, Закладки.ПолучитьЗначение (1));
КонецПроцедуры

Процедура ПриВыбореЗакладки (НомерЗакладки, ЗначениеЗакладки)
Форма.ИспользоватьСлой (ЗначениеЗакладки, 2);
КонецПроцедуры


В принципе, не обязательно использовать элемент управления «Закладки» именно таким образом. Можно, к примеру, вместо отображения других слоев при выборе закладки прятать/отображать элементы диалога методами «Видимость» или просто менять содержимое расположенной на диалоге таблицы значений. Или можно даже использовать закладки как некоторый переключатель нестандартного вида.
sashuly
04.04.2013 13:15Ответ № 5
Все правильно и понятно написано про использования закладок в 7.7, но не отвечается на главный вопрос (1):
как программно выбрать закладку, использование слоев позволяет оформить рабочую область, но закладка остается текущей, см. (2)

столкнулся с такой потребностью
mixa4
07.04.2013 12:10Ответ № 6
просто устанавливая в списке закладок нужную текущую строку
Код 1C v 7.x
 Форма.Закладки.ТекущаяСтрока(НужныйНомерЗакладки);
Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.