ТестируемаяГруппаФормы.ПолучитьОбъект

Методы · GetObject

Выполняет поиск объекта среди иерархии подчиненных объектов по указанным параметрам.

Синтаксис

ПолучитьОбъект(<Тип>, <ТекстЗаголовка>, <Имя>, <Таймаут>)
Полное описание, параметры и ограничения

ТестируемаяГруппаФормы.ПолучитьОбъект (TestedFormGroup.GetObject)

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

ПолучитьОбъект (GetObject)

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

Синтаксис:
ПолучитьОбъект(<Тип>, <ТекстЗаголовка>, <Имя>, <Таймаут>)
Параметры:

<Тип> (необязательный)
Тип: Тип.
Тип объекта, который нужно найти.
Значение по умолчанию: Неопределено.

<ТекстЗаголовка> (необязательный)
Тип: Строка.
Заголовок объекта, если это применимо. Может содержать знаки подстановки "*" и "?".

<Имя> (необязательный)
Тип: Строка.
Имя объекта, если это применимо. Может содержать знаки подстановки "*" и "?".

<Таймаут> (необязательный)
Тип: Число.
Время в секундах, в течение которого выполняется поиск объекта. Если значение параметра не задано, время поиска не ограничено.
Значение по умолчанию: 0.
Возвращаемое значение:
Тип: ТестируемаяФорма, ТестируемаяГруппаФормы, ТестируемаяКнопкаФормы, ТестируемаяТаблицаФормы, ТестируемоеПолеФормы, ТестируемаяДекорацияФормы, Неопределено.
Первый найденный объект. Если объект не найден, генерируется исключительная ситуация.
Описание:

Выполняет поиск объекта среди иерархии подчиненных объектов по указанным параметрам.

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

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

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

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

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

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

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

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

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

Полный модуль формы своей обработки менеджера тестирования /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. Закрытие клиента или сбой соединения может помешать восстановлению; тогда заново откройте только свою обработку.

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

Нажать собственную карточку и проверить сохранность данных

Эмулируем нажатие только специально подготовленной карточки, у которой нет внешнего действия.

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

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

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

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

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

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

  3. Вид ОбычнаяГруппа сам по себе не доказывает режим карточки. Он был включён в редакторе, проверен серверным модулем fixture и должен быть виден перед тестом.

  4. Нажать — штатная эмуляция нажатия группы-карточки. После него заново получаем собственное поле и читаем название.

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

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

  1. Три логических проверки дают Истина; после нажатия поле всё ещё Книга.

  2. Не появились новые окна или внешние действия. При неожиданной реакции остановите только свой учебный тест и проверьте настройки fixture.

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

Метод нажатия показан в подходящем режиме и на контролируемом собственном элементе.

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

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

  2. Написанный сценарий ещё не является подтверждением запуска на вашей 1С.

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

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

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

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

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