Посмотреть настоящих детей и родителя своей кнопки команды

Учебные задачи

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

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

Тонкий или толстый клиент в режиме менеджера тестирования, собственный тестируемый тонкий клиент.

Подготовка

  1. Только свои учебные сеансы: вручную запустите тонкий клиент с /TESTCLIENT -TPort15419, другой клиент — с /TESTMANAGER. Соединение использует 127.0.0.1:15419. В тестируемом клиенте заранее откройте собственную управляемую форму с заголовком Учебный стенд. Код вставьте в клиентский модуль формы менеджера тестирования, первую процедуру вызовите своей кнопкой. Здесь сеансы не запускаются.

  2. В своей конфигурации создайте видимую группу командного интерфейса Учебные команды с собственной командой Учебный расчет. Ее штатный обработчик открывает Учебный стенд и считает 50 + 75; имя и заголовок должны совпадать с подготовкой.

&НаКлиенте
Процедура ВыполнитьУчебныйТест()
    Тест = Новый ТестируемоеПриложение("127.0.0.1", 15419);
    Тест.УстановитьСоединение();
    Интерфейс = Тест.ПолучитьАктивноеОкно().ПолучитьКомандныйИнтерфейс();
    Группы = Интерфейс.НайтиОбъекты(Тип("ТестируемаяГруппаКомандногоИнтерфейса"), "Учебные команды", , 2);
    Если Группы.Количество() <> 1 Тогда
        ВызватьИсключение "Нужна одна собственная группа команд";
    КонецЕсли;
    Группа = Группы[0];
    Кнопки = Группа.НайтиОбъекты(Тип("ТестируемаяКнопкаКомандногоИнтерфейса"), "Учебный расчет", , 2);
    Если Кнопки.Количество() <> 1 Тогда
        ВызватьИсключение "Нужна одна собственная кнопка команды";
    КонецЕсли;
    Кнопка = Кнопки[0];
    Дети = Кнопка.ПолучитьПодчиненныеОбъекты();
    Сообщить("Детей: " + Строка(Дети.Количество()));
    Все = Кнопка.НайтиОбъекты(, , , 1);
    Один = Кнопка.НайтиОбъект(, , , 1);
    Если Один <> Неопределено Тогда
        Вид = ТипЗнч(Один);
        Строгий = Кнопка.ПолучитьОбъект(Вид, , , 1);
        Сообщить("Найденный тип: " + Строка(Вид));
    КонецЕсли;
    Сообщить("Всего найдено: " + Строка(Все.Количество()));
    Сообщить("Родитель: " + Строка(Кнопка.ПолучитьРодителя()));
    Тест.РазорватьСоединение();
КонецПроцедуры

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

  1. Получите свою группу и уникальную кнопку через реальные коллекции.

  2. Исследуйте подчиненные объекты тремя вариантами поиска.

  3. Выведите количество и действительного родителя.

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

  1. Строгий поиск выполняется только при наличии реального найденного объекта.

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

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

Получена диагностика фактической иерархии своей кнопки.

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

  1. Старые методы поиска описывают подчиненные объекты форм. Обычная кнопка команды может не иметь таких детей; наличие метода не гарантирует непустой результат.

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

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

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

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

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

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