Выполняет поиск объекта среди иерархии подчиненных объектов по указанным параметрам.
Синтаксис
ПолучитьОбъект(<Тип>, <ТекстЗаголовка>, <Имя>, <Таймаут>)Полное описание, параметры и ограничения
ТестируемаяГруппаФормы.ПолучитьОбъект (TestedFormGroup.GetObject)
ТестируемаяГруппаФормы (TestedFormGroup)
ПолучитьОбъект (GetObject)
Доступен, начиная с версии 8.3.3.
Синтаксис:
ПолучитьОбъект(<Тип>, <ТекстЗаголовка>, <Имя>, <Таймаут>)
Параметры:
<Тип> (необязательный)
Тип: Тип.
Тип объекта, который нужно найти.
Значение по умолчанию: Неопределено.
<ТекстЗаголовка> (необязательный)
Тип: Строка.
Заголовок объекта, если это применимо. Может содержать знаки подстановки "*" и "?".
<Имя> (необязательный)
Тип: Строка.
Имя объекта, если это применимо. Может содержать знаки подстановки "*" и "?".
<Таймаут> (необязательный)
Тип: Число.
Время в секундах, в течение которого выполняется поиск объекта. Если значение параметра не задано, время поиска не ограничено.
Значение по умолчанию: 0.
Возвращаемое значение:
Тип: ТестируемаяФорма, ТестируемаяГруппаФормы, ТестируемаяКнопкаФормы, ТестируемаяТаблицаФормы, ТестируемоеПолеФормы, ТестируемаяДекорацияФормы, Неопределено.
Первый найденный объект. Если объект не найден, генерируется исключительная ситуация.
Описание:
Выполняет поиск объекта среди иерархии подчиненных объектов по указанным параметрам.
Доступность:
Тонкий клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.3.
Методическая информация
Практические примеры
Свернуть группу и раскрыть её обратно без потери Книги
Менеджер тестов вызывает методы только у сворачиваемой группы и проверяет восстановленное состояние.
Где и как запускать
Полный модуль формы своей обработки менеджера тестирования /TESTMANAGER. Fixture запускается отдельно в /TESTCLIENT.
Подготовка
Используйте только собственную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса. В fixture-уроках приведены полные модули отдельных новых внешних обработок с пустой управляемой основной формой.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
Откройте нужную обработку в своём тестируемом клиенте. В отдельной обработке менеджера тестов создайте команду ВыполнитьПример и вставьте полный код соответствующего теста в модуль формы.
Перед каждым тестом заново откройте соответствующую обработку: не используйте уже изменённое состояние. Точные заголовки guide-owned относятся только к подготовленной собственной форме.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебные группы guide-owned-group-2026", , 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
Группа = Форма.ПолучитьОбъект(Тип("ТестируемаяГруппаФормы"), , "УчебнаяГруппа", 10);
Если Группа.Вид <> ВидГруппыФормы.ОбычнаяГруппа Тогда
ВызватьИсключение "Найдена не собственная обычная группа";
КонецЕсли;
Сообщить(Группа.ТекущееОткрыта());
ОшибкаДействия = "";
Попытка
Группа.Свернуть();
Сообщить(Не Группа.ТекущееОткрыта());
Исключение
ОшибкаДействия = ОписаниеОшибки();
КонецПопытки;
Попытка
Группа.Развернуть();
Исключение
ВызватьИсключение "Не удалось вернуть свою группу: " + ОшибкаДействия + " " + ОписаниеОшибки();
КонецПопытки;
Если Не ПустаяСтрока(ОшибкаДействия) Тогда
ВызватьИсключение ОшибкаДействия;
КонецЕсли;
Сообщить(Группа.ТекущееОткрыта());
Поле = Группа.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеУчебногоНазвания", 10);
Сообщить(Поле.ПолучитьОтображаемыйТекст() = "Книга");
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Менеджер подключается только к своему 127.0.0.1:15380 и получает форму по точному заголовку с таймаутом 10 секунд.
Исходная группа fixture раскрыта. При сворачивании меняется состояние отображения, а не данные собственного реквизита.
Свернуть/Развернуть выбрасывают исключение, если действие невозможно. Восстановление пытаемся выполнить отдельно даже после ошибки сворачивания.
ТекущееОткрыта нельзя использовать как универсальный признак наличия окна: для несворачиваемой группы оно также возвращает Истина.
После возврата состояния читаем собственное поле: его значение осталось Книга.
Даже при ошибке отдельно пытаемся восстановить исходный лимит действий и разорвать соединение; ошибки завершения не скрываются.
Как проверить результат
Четыре логических проверки дают Истина; финальная группа раскрыта, Книга сохранена.
При ошибке действия или восстановления возникает исключение с причиной, а не сообщение об успешном тесте.
Ожидаемый результат
Показан тест визуального состояния с отдельной попыткой восстановления собственной формы.
На что обратить внимание
Этот сценарий не предназначен для обычной несворачиваемой группы или произвольного рабочего элемента.
Закрытие клиента или сбой соединения может помешать восстановлению; тогда заново откройте только свою обработку.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Нажать собственную карточку и проверить сохранность данных
Эмулируем нажатие только специально подготовленной карточки, у которой нет внешнего действия.
Где и как запускать
Полный модуль формы своей обработки менеджера тестирования /TESTMANAGER. Fixture запускается отдельно в /TESTCLIENT.
Подготовка
Используйте только собственную пустую конфигурацию УчебнаяКонфигурацияСинтаксиса. В fixture-уроках приведены полные модули отдельных новых внешних обработок с пустой управляемой основной формой.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
Откройте нужную обработку в своём тестируемом клиенте. В отдельной обработке менеджера тестов создайте команду ВыполнитьПример и вставьте полный код соответствующего теста в модуль формы.
Перед каждым тестом заново откройте соответствующую обработку: не используйте уже изменённое состояние. Точные заголовки guide-owned относятся только к подготовленной собственной форме.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная карточка guide-owned-card-2026", , 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
Карточка = Форма.ПолучитьОбъект(Тип("ТестируемаяГруппаФормы"), , "УчебнаяКарточка", 10);
Сообщить(Карточка.Вид = ВидГруппыФормы.ОбычнаяГруппа);
Поле = Карточка.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеНазванияКарточки", 10);
Сообщить(Поле.ПолучитьОтображаемыйТекст() = "Книга");
Карточка.Нажать();
ПолеПослеНажатия = Карточка.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеНазванияКарточки", 10);
Сообщить(ПолеПослеНажатия.ПолучитьОтображаемыйТекст() = "Книга");
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Менеджер подключается только к своему 127.0.0.1:15380 и получает форму по точному заголовку с таймаутом 10 секунд.
Менеджер ищет точный заголовок карточки, затем точное имя группы внутри своей формы.
Вид ОбычнаяГруппа сам по себе не доказывает режим карточки. Он был включён в редакторе, проверен серверным модулем fixture и должен быть виден перед тестом.
Нажать — штатная эмуляция нажатия группы-карточки. После него заново получаем собственное поле и читаем название.
Даже при ошибке отдельно пытаемся восстановить исходный лимит действий и разорвать соединение; ошибки завершения не скрываются.
Как проверить результат
Три логических проверки дают Истина; после нажатия поле всё ещё Книга.
Не появились новые окна или внешние действия. При неожиданной реакции остановите только свой учебный тест и проверьте настройки fixture.
Ожидаемый результат
Метод нажатия показан в подходящем режиме и на контролируемом собственном элементе.
На что обратить внимание
Нельзя применять этот тест к произвольным карточкам рабочей базы: их обработчики могут менять данные.
Написанный сценарий ещё не является подтверждением запуска на вашей 1С.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.