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