Активизирует оконный объект.
Синтаксис
Активизировать()Полное описание, параметры и ограничения
ТестируемоеПолеФормы.Активизировать (TestedFormField.Activate)
ТестируемоеПолеФормы (TestedFormField)
Активизировать (Activate)
Доступен, начиная с версии 8.3.1.
Синтаксис:
Активизировать()
Описание:
Активизирует оконный объект.
Доступность:
Тонкий клиент, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.1.
Методическая информация
Практические примеры
Проверить порядок обхода двух собственных полей
Активизируем первое поле, переходим к следующему и возвращаемся; данные Книга/Ручка остаются неизменными.
Где и как запускать
Полный модуль формы менеджера /TESTMANAGER; fixture открыт отдельно в /TESTCLIENT.
Подготовка
Только собственная пустая конфигурация УчебнаяКонфигурацияСинтаксиса. Для первого урока создайте новую внешнюю обработку УчебныйИнтерфейсТестирования с пустой основной управляемой формой Форма.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
В fixture назначьте событие ПриСозданииНаСервере одноимённому обработчику и вставьте весь модуль первого урока. Элементы и реквизиты вручную не создавайте. Откройте эту обработку в /TESTCLIENT.
Каждый следующий урок — полный отдельный модуль формы другой обработки менеджера /TESTMANAGER с командой ВыполнитьПример. Перед каждым тестом заново откройте fixture; не выполняйте тест на изменённом состоянии предыдущего урока.
Исходно первое поле Книга, второе Ручка, статус Готово, выбор book/Книга. Любые кнопки/ссылки действуют только на этой памяти формы; нет записи базы и внешних URL.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная форма guide-owned-form-2026", , 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
ПервоеПоле = Форма.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеПервое", 10);
ПервоеПоле.Активизировать();
Сообщить(Форма.ПолучитьТекущийЭлемент().Имя = "ПолеПервое");
Форма.ПерейтиКСледующемуЭлементу();
Сообщить(Форма.ПолучитьТекущийЭлемент().Имя = "ПолеВторое");
Форма.ПерейтиКПредыдущемуЭлементу();
Сообщить(Форма.ПолучитьТекущийЭлемент().Имя = "ПолеПервое");
Сообщить(ПервоеПоле.ПолучитьОтображаемыйТекст() = "Книга");
ВтороеПоле = Форма.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ПолеВторое", 10);
Сообщить(ВтороеПоле.ПолучитьОтображаемыйТекст() = "Ручка");
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Тест подключается только к своему 127.0.0.1:15380 и получает точную собственную форму с таймаутом 10 секунд.
Fixture программно создаёт поля Первое и Второе в этом порядке. Активизацию начинаем с точного имени, не с неопределённого текущего элемента.
Переходы относятся к порядку обхода элементов формы. Это не переход строки таблицы, вкладки приложения или документа базы.
ПолучитьТекущийЭлемент возвращает объект элемента, не значение реквизита. Для проверки используется Имя.
Отдельно проверяем отображаемые данные обоих полей, чтобы переход фокуса не считался редактированием.
Исходный лимит действий восстанавливается, соединение отдельно разрывается и при ошибке. Разрыв соединения не закрывает весь тестируемый клиент.
Как проверить результат
Пять проверок ожидаются Истина; курсор вернулся в первое поле.
Если персональная настройка изменила порядок, восстановите свою новую fixture-форму; не адаптируйте ожидаемое имя ради зелёного теста.
Ожидаемый результат
Показана управляемая навигация по собственной форме с контролем активного элемента.
На что обратить внимание
Порядок обхода зависит от реальной формы; вывод не переносится на произвольную конфигурацию.
Имя элемента не равно имени реквизита: ПолеПервое и Первое различаются.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Изменить учебное количество и отменить следующий ввод
В собственном поле Книги вводим 7, затем пробуем 99 и отменяем именно редактирование поля. В базе ничего не сохраняется.
Где и как запускать
Полный клиентский модуль формы обработки в менеджере тестов, запущенном с /TESTMANAGER. Это не модуль тестируемой таблицы.
Подготовка
Создайте собственную пустую учебную конфигурацию УчебнаяКонфигурацияСинтаксиса. Первый урок содержит полный модуль отдельной внешней обработки УчебнаяТаблицаТестирования; её данные только в памяти.
Запустите два отдельных тонких клиента собственной учебной базы: тестируемый с /TESTCLIENT -TPort15380, менеджер с /TESTMANAGER. Порт 15380 — собственный учебный; убедитесь, что на нём не работает другой клиент. Не подключайте менеджер к рабочей базе/чужому приложению.
В тестируемом клиенте вручную откройте собственную обработку из первого урока. В менеджере создайте другую внешнюю обработку с командой ВыполнитьПример; полный код одного теста вставьте в её модуль формы.
Перед каждым тестом закройте и заново откройте таблицу в тестируемом клиенте. Исходно в ней A-01/Книга/3, B-02/Ручка/1, C-00/Бумага/2, без ранее установленной сортировки и редактирования.
Каждый тест ищет точный учебный заголовок и таблицу ТаблицаТоваров внутри этой формы. Не заменяйте селекторы на * или первый найденный элемент рабочего приложения.
Это код штатного механизма тестирования 1С, не браузерная проверка HTML. В данном окружении выполнение UI-тестов в настоящей 1С не подтверждено.
&НаКлиенте
Процедура ВыполнитьПример(Команда)
Приложение = Новый ТестируемоеПриложение("127.0.0.1", 15380);
Приложение.УстановитьСоединение();
ИсходныйЛимит = Неопределено;
ОшибкаТеста = "";
Попытка
Форма = Приложение.ПолучитьОбъект(Тип("ТестируемаяФорма"), "Учебная таблица guide-owned-ui-2026", , 10);
Таблица = Форма.ПолучитьОбъект(Тип("ТестируемаяТаблицаФормы"), , "ТаблицаТоваров", 10);
ИсходныйЛимит = Приложение.ПолучитьМаксимальноеВремяВыполненияДействия();
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(10);
Таблица.Активизировать();
Таблица.ПерейтиКПервойСтроке();
Если Таблица.ПолучитьТекстЯчейки("ТоварыКод") <> "A-01" Тогда
ВызватьИсключение "Ожидалась собственная учебная Книга A-01";
КонецЕсли;
ПолеКоличества = Таблица.ПолучитьОбъект(Тип("ТестируемоеПолеФормы"), , "ТоварыКоличество", 10);
ПолеКоличества.Активизировать();
Таблица.ИзменитьСтроку();
ПолеКоличества.ВвестиТекст("7");
Сообщить(ПолеКоличества.ПолучитьТекстРедактирования() = "7");
Таблица.ЗакончитьРедактированиеСтроки(Ложь);
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКоличество") = "7");
ПолеКоличества.Активизировать();
Таблица.ИзменитьСтроку();
ПолеКоличества.ВвестиТекст("99");
ПолеКоличества.ОтменитьРедактирование();
Сообщить(Таблица.ПолучитьТекстЯчейки("ТоварыКоличество") = "7");
Сообщить(Не Таблица.ТекущийРежимРедактирование());
Сообщить(ПолеКоличества.ПолучитьОтображаемыйТекст() = "7");
Исключение
ОшибкаТеста = ОписаниеОшибки();
КонецПопытки;
ОшибкиЗавершения = ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит);
Если Не ПустаяСтрока(ОшибкаТеста) Или Не ПустаяСтрока(ОшибкиЗавершения) Тогда
ВызватьИсключение "Ошибка учебного UI-теста: " + ОшибкаТеста + " " + ОшибкиЗавершения;
КонецЕсли;
Сообщить("Сценарий завершён без исключения. Отдельно сверяйте контрольные Истина и видимые данные учебного клиента");
КонецПроцедуры
&НаКлиенте
Функция ЗавершитьСобственныйУчебныйТест(Приложение, ИсходныйЛимит)
ОшибкиЗавершения = "";
Если ТипЗнч(ИсходныйЛимит) = Тип("Число") Тогда
Попытка
Приложение.УстановитьМаксимальноеВремяВыполненияДействия(ИсходныйЛимит);
Исключение
ОшибкиЗавершения = "Не восстановлен лимит действий: " + ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Попытка
Приложение.РазорватьСоединение();
Исключение
ОшибкиЗавершения = ОшибкиЗавершения + " Не разорвано соединение: " + ОписаниеОшибки();
КонецПопытки;
Возврат ОшибкиЗавершения;
КонецФункцииРазбор по шагам
Сначала открываем собственную таблицу в отдельном клиенте тестирования. Подключаемся только к 127.0.0.1:15380, ищем точный заголовок и внутреннее имя таблицы с таймаутами 10 секунд.
Проверяем код A-01 до изменения и получаем конкретное визуальное поле внутри собственной таблицы.
Активизировать поле выбирает колонку, ИзменитьСтроку начинает редактирование текущей колонки, ВвестиТекст имитирует ввод пользователем.
ВвестиТекст и ПолучитьТекстРедактирования относятся к расширению тестируемого поля ввода, не ко всем тестируемым полям и не к обычному ПолеФормы.
ЗакончитьРедактированиеСтроки(Ложь) завершает ввод без отмены. Затем отдельный ввод 99 отменяется штатным ОтменитьРедактирование; ожидается прежнее 7.
Это изменение памяти нашей формы. Оно не является транзакционным откатом базы и не гарантирует такую же логику у поля с прикладными обработчиками записи.
После теста восстанавливаем исходный лимит действий и отдельно пытаемся разорвать соединение, даже при исключении. Ошибки завершения не скрываем; разрыв соединения не закрывает тестируемое приложение.
Как проверить результат
Пять контрольных Истина; после отмены второго ввода количество Книги осталось 7.
Закройте и заново откройте собственную обработку: количество снова 3, потому что данные восстанавливает fixture, а не запись в справочник.
Ожидаемый результат
Показан реальный тест ввода, подтверждения и отмены редактирования собственного поля.
На что обратить внимание
Отмена текущего редактирования не откатывает ранее подтверждённые изменения всего документа.
Не запускайте ввод 7/99 на рабочем динамическом списке: там могут быть обработчики записи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.