ТестируемаяГруппаФормы.Имя

Свойства · Name

Тип: Строка. Содержит имя объекта.

Полное описание, параметры и ограничения

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

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

Имя (Name)

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

Использование:
Только чтение.
Описание:
Тип: Строка.
Содержит имя объекта.
Доступность:

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

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

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

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

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

Прочитать паспорт собственной формы и найти её элементы

Проверяем название, поиск, непосредственных детей, панель и кнопку по умолчанию, не нажимая её.

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

Полный модуль формы менеджера /TESTMANAGER; fixture открыт отдельно в /TESTCLIENT.

Подготовка

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

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

  3. В fixture назначьте событие ПриСозданииНаСервере одноимённому обработчику и вставьте весь модуль первого урока. Элементы и реквизиты вручную не создавайте. Откройте эту обработку в /TESTCLIENT.

  4. Каждый следующий урок — полный отдельный модуль формы другой обработки менеджера /TESTMANAGER с командой ВыполнитьПример. Перед каждым тестом заново откройте fixture; не выполняйте тест на изменённом состоянии предыдущего урока.

  5. Исходно первое поле Книга, второе Ручка, статус Готово, выбор book/Книга. Любые кнопки/ссылки действуют только на этой памяти формы; нет записи базы и внешних URL.

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

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

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

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

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

  2. ИмяФормы — имя метаданных, ТекстЗаголовка — видимый заголовок. Не подменяем одно другим и не угадываем имя внешней обработки по подписи.

  3. ПолучитьОбъект используется для обязательного поля, НайтиОбъект для ожидаемого отсутствия, НайтиОбъекты для всех четырёх полей внутри уже выбранной собственной формы.

  4. Дети — непосредственные объекты, а не все потомки рекурсивно. Родитель выводится диагностически; состав иерархии не выдаётся за гарантированный тип окна.

  5. GetCommandBar формы возвращает её командную панель; она не объявляется той же произвольно добавленной группой УчебнаяПанель. Собственная группа отдельно находится по точному имени.

  6. Кнопка по умолчанию найдена и проверена по имени, но здесь не нажата.

  7. Доступность, ТолькоПросмотр и модифицированность — разные состояния; fixture открыт заново и исходно немодифицирован.

  8. Исходный лимит действий восстанавливается, соединение отдельно разрывается и при ошибке. Разрыв соединения не закрывает весь тестируемый клиент.

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

  1. Одиннадцать логических проверок ожидаются Истина; две отдельные диагностики описывают детей и родителя.

  2. Собственная форма осталась открыта, Книга и Ручка не изменились.

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

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

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

  1. Наличие кнопки по умолчанию не разрешает нажимать её в чужой форме.

  2. Если поле редактировали вручную, исходное состояние восстановите переоткрытием fixture.

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

Прочитать активную страницу и вернуть страницу Данные

Текущая страница определяется объектом группы; активизация другой страницы проверяется по её точному имени.

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

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

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

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

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

  2. Ищем страницы внутри точной собственной группы страниц, а не среди всех окон клиента.

  3. ПолучитьТекущуюСтраницу возвращает ТестируемаяГруппаФормы. Сравниваем её внутреннее Имя, а не отображаемое название вкладки.

  4. Активизировать страницу означает сделать её активной. Не используем Нажать: этот метод тестируемой группы предназначен для карточки.

  5. Возврат на Данные выполняется отдельно даже после ошибки перехода. Затем читается название собственного товара.

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

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

  1. Пять логических проверок дают Истина; активная страница в конце Данные.

  2. Поле на странице содержит Книга; соединение менеджера закрыто без закрытия тестируемого клиента.

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

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

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

  1. Метод текущей страницы относится только к группе вида Страницы.

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

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

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

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

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

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