Отличить переключение закладок от разделения содержимого

Учебные задачи

Отключаем распределение по страницам на собственной панели: закладок несколько, но отображаемая страница одна.

Где и как запускать

Полный модуль собственной обычной формы. Только толстый клиент с обычными формами. Действие кнопки — экспортная процедура с первым параметром Элемент.

Подготовка

  1. Создайте отдельную внешнюю обработку с обычной формой. Запускайте толстым клиентом в режиме обычных форм, не в рабочей конфигурации.

  2. Разместите отдельную вложенную панель УчебнаяПанель. В редакторе создайте ровно две её страницы с именами Основное и Проверка, включите распределение по страницам и выключите режим прокручиваемых страниц.

  3. На странице Основное разместите надпись «Книга: 3», на странице Проверка — надпись «Сумма: 750». Кнопку УчебнаяКоманда разместите ВНЕ УчебнаяПанель, на основной панели формы.

  4. Событие ПриОткрытии формы свяжите с процедурой ПриОткрытии. Нажатие кнопки вручную не назначайте: оно связывается с процедурой ВыполнитьУчебнуюКоманду через Действие.

  5. Каждый урок заменяет полный модуль отдельной копии формы. Страницы принадлежат только этой форме; документы и настройки базы не изменяются.

Процедура ПриОткрытии()
    Панель = ЭтаФорма.ЭлементыФормы.УчебнаяПанель;
    Страницы = Панель.Страницы;
    Если Страницы.Количество() <> 2 Тогда
        ВызватьИсключение "Нужны ровно две собственные страницы";
    КонецЕсли;
    Основное = Страницы.Найти("Основное");
    Проверка = Страницы.Найти("Проверка");
    Если Основное = Неопределено Или Проверка = Неопределено Тогда
        ВызватьИсключение "Создайте страницы Основное и Проверка";
    КонецЕсли;
    Панель.РаспределятьПоСтраницам = Истина;
    Панель.ОтображениеЗакладок = ОтображениеЗакладок.Сверху;
    Основное.Видимость = Истина;
    Основное.Доступность = Истина;
    Проверка.Видимость = Истина;
    Проверка.Доступность = Истина;
    Панель.ТекущаяСтраница = Основное;
    Панель.РаспределятьПоСтраницам = Ложь;
    Кнопка = ЭтаФорма.ЭлементыФормы.УчебнаяКоманда;
    Кнопка.Заголовок = "Выполнить учебную проверку";
    Кнопка.УстановитьДействие("Нажатие", Новый Действие("ВыполнитьУчебнуюКоманду"));
КонецПроцедуры

Процедура ВыполнитьУчебнуюКоманду(Элемент) Экспорт
    Панель = ЭтаФорма.ЭлементыФормы.УчебнаяПанель;
    Страницы = Панель.Страницы;
    Основное = Страницы.Найти("Основное");
    Проверка = Страницы.Найти("Проверка");
    Если Основное = Неопределено Или Проверка = Неопределено Тогда
        ВызватьИсключение "Не найдены собственные страницы";
    КонецЕсли;
    Если Панель.ТекущаяСтраница = Основное Тогда
        Панель.ТекущаяСтраница = Проверка;
    Иначе
        Панель.ТекущаяСтраница = Основное;
    КонецЕсли;
    Сообщить(Не Панель.РаспределятьПоСтраницам);
    Сообщить(Страницы.Количество() = 2);
    Сообщить(Панель.ТекущаяСтраница.Имя);
КонецПроцедуры

Разбор по шагам

  1. В подготовке две надписи размещены в разных непересекающихся областях панели: для этого урока они могут оказаться на общей отображаемой странице.

  2. РаспределятьПоСтраницам = Ложь оставляет несколько закладок, но не переключает состав элементов как отдельные страницы.

  3. Кнопка выбирает другую закладку и выводит её имя. Никакие элементы не удаляются.

  4. Сравните с первым уроком в другой копии формы, где распределение включено.

Как проверить результат

  1. Каждое нажатие выводит два Истина и имя другой выбранной закладки.

  2. Обе собственные надписи остаются на общей отображаемой странице; при наложении разнесите их в редакторе.

Ожидаемый результат

Наглядное сравнение двух режимов панели, без подмены скрытия удалением.

На что обратить внимание

  1. При выключенном распределении удаление одной закладки не следует считать удалением соответствующей группы элементов.

  2. Скрытие, доступность и серверные права — разные механизмы.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.