ТестируемаяГруппаФормы.Свернуть

Методы · Collapse

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

Синтаксис

Свернуть()
Полное описание, параметры и ограничения

ТестируемаяГруппаФормы.Свернуть (TestedFormGroup.Collapse)

ТестируемаяГруппаФормы (TestedFormGroup)

Свернуть (Collapse)

Доступен, начиная с версии 8.3.6.

Синтаксис:
Свернуть()
Описание:

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

Доступность:

Тонкий клиент, толстый клиент.

Использование в версии:

Доступен, начиная с версии 8.3.6.

Методическая информация

Практические примеры

Свернуть группу и раскрыть её обратно без потери Книги

Менеджер тестов вызывает методы только у сворачиваемой группы и проверяет восстановленное состояние.

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

Полный модуль формы своей обработки менеджера тестирования /TESTMANAGER. Fixture запускается отдельно в /TESTCLIENT.

Подготовка

  1. Используйте только собственную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса. В fixture-уроках приведены полные модули отдельных новых внешних обработок с пустой управляемой основной формой.

  2. Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.

  3. Откройте нужную обработку в своём тестируемом клиенте. В отдельной обработке менеджера тестов создайте команду ВыполнитьПример и вставьте полный код соответствующего теста в модуль формы.

  4. Перед каждым тестом заново откройте соответствующую обработку: не используйте уже изменённое состояние. Точные заголовки guide-owned относятся только к подготовленной собственной форме.

  5. Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.

&НаКлиенте
Процедура ВыполнитьПример(Команда)
    Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
    Приложение.УстановитьСоединение();
    ИсходныйЛимит = Неопределено;
    ОшибкаТеста = "";
    Попытка
        Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебные группы guide-owned-group-2026", , 10);
        ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
        Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
        Группа = Форма.ПолучитьОбъект(Тип("ТестируемаяГруппаФормы"), , "УчебнаяГруппа", 10);
        Если Группа.Вид <> ВидГруппыФормы.ОбычнаяГруппа Тогда
            ВызватьИсключение "Найдена не собственная обычная группа";
        КонецЕсли;
        Сообщить(Группа.ТекущееОткрыта());
        ОшибкаДействия = "";
        Попытка
            Группа.Свернуть();
            Сообщить(Не Группа.ТекущееОткрыта());
        Исключение
            ОшибкаДействия = ОписаниеОшибки();
        КонецПопытки;
        Попытка
            Группа.Развернуть();
        Исключение
            ВызватьИсключение "Не удалось вернуть свою группу: " + ОшибкаДействия + " " + ОписаниеОшибки();
        КонецПопытки;
        Если Не ПустаяСтрока(ОшибкаДействия) Тогда
            ВызватьИсключение ОшибкаДействия;
        КонецЕсли;
        Сообщить(Группа.ТекущееОткрыта());
        Поле = Группа.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеУчебногоНазвания", 10);
        Сообщить(Поле.ПолучитьОтображаемыйТекст() = "Книга");
    Исключение
        ОшибкаТеста = ОписаниеОшибки();
    КонецПопытки;
    ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
    Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
        ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
    КонецЕсли;
    Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры

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

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

  1. Менеджер подключается только к своему 127.0.0.1:15380 и получает форму по точному заголовку с таймаутом 10 секунд.

  2. Исходная группа fixture раскрыта. При сворачивании меняется состояние отображения, а не данные собственного реквизита.

  3. Свернуть/Развернуть выбрасывают исключение, если действие невозможно. Восстановление пытаемся выполнить отдельно даже после ошибки сворачивания.

  4. ТекущееОткрыта нельзя использовать как универсальный признак наличия окна: для несворачиваемой группы оно также возвращает Истина.

  5. После возврата состояния читаем собственное поле: его значение осталось Книга.

  6. Даже при ошибке отдельно пытаемся восстановить исходный лимит действий и разорвать соединение; ошибки завершения не скрываются.

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

  1. Четыре логических проверки дают Истина; финальная группа раскрыта, Книга сохранена.

  2. При ошибке действия или восстановления возникает исключение с причиной, а не сообщение об успешном тесте.

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

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

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

  1. Этот сценарий не предназначен для обычной несворачиваемой группы или произвольного рабочего элемента.

  2. Закрытие клиента или сбой соединения может помешать восстановлению; тогда заново откройте только свою обработку.

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

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

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

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

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