Число 13 взято из ChildObjects подтверждённого XML. Формы и макеты — разные коллекции.
Где и как запускать
Полный серверный общий модуль учебной копии КА2 Progress 2.5.20.75; только чтение метаданных.
Подготовка
Отдельная учебная копия КА2 Progress из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, конфигурация КомплекснаяАвтоматизация 2.5.20.75, платформа 8.5.1.1343. Код не изменяет исходную выгрузку.
Создайте серверный общий модуль УчебныеМетаданныеХранилища с флагом Сервер. Каждый урок — отдельный полный текст с процедурой ВыполнитьПример() Экспорт.
Подтверждённый источник: SettingsStorages\ХранилищеВариантовОтчетов.xml. Формы находятся в SettingsStorages\ХранилищеВариантовОтчетов\Forms, модуль менеджера — в Ext\ManagerModule.bsl.
Из серверной команды учебной обработки вызовите УчебныеМетаданныеХранилища.ВыполнитьПример(). Метаданные — описание схемы, не менеджер чтения/сохранения пользовательских вариантов.
Уроки только читают описание: не открывают штатные формы, не выполняют модуль менеджера, не загружают отчётные варианты и не меняют настройки пользователя.
Проверки формы/количества основаны на этой выгрузке. При другой версии или расширениях перепроверьте источник, не изменяйте активную конфигурацию ради совпадения чисел.
Процедура ВыполнитьПример() Экспорт
Хранилище = Метаданные.ХранилищаНастроек.Найти("ХранилищеВариантовОтчетов");
Если Хранилище = Неопределено Тогда
ВызватьИсключение "В активной учебной копии не найдено подтверждённое хранилище вариантов";
КонецЕсли;
Формы = Хранилище.Формы;
Сообщить(Формы.Количество() = 13);
Проверенных = 0;
Для Каждого ФормаМетаданных Из Формы Цикл
Если Формы.Найти(ФормаМетаданных.Имя) <> ФормаМетаданных Тогда
ВызватьИсключение "Поиск по имени не вернул собственную дочернюю форму";
КонецЕсли;
Проверенных = Проверенных + 1;
Сообщить(ФормаМетаданных.Имя + " — " + ФормаМетаданных.Представление());
КонецЦикла;
Сообщить(Проверенных = 13);
Сообщить(Формы.Найти("ВыборФинансовогоПериода") <> Неопределено);
Сообщить(Формы.Найти("НеСуществуетGuideOwnedФорма") = Неопределено);
Сообщить(Хранилище.Макеты.Количество() = 0);
КонецПроцедурыРазбор по шагам
Получаем дочерние Формы именно выбранного хранилища, не все общие формы конфигурации.
Обход выводит имя и представление каждой формы; её модуль не вызывается.
Для каждой формы поиск по точному имени должен вернуть тот же объект метаданных.
Отдельно показываем существующую форму выбора периода и безопасный поиск отсутствующего имени.
Макеты пусты в этой выгрузке, несмотря на тринадцать форм. Это не число сохранённых вариантов отчёта.
Как проверить результат
Пять булевых сообщений Истина, тринадцать строк каталога форм и отсутствие исключения при поиске каждой.
В каталоге есть СохранениеВариантаОтчетаВФайл, но сам файл этим обходом не создаётся.
Ожидаемый результат
Построен реальный каталог дочерних форм без запуска их действий.
На что обратить внимание
Расширения/версия могут добавить формы: пересверяйте XML, не удаляйте лишние формы ради числа 13.
Не путайте поиск формы по имени с выполнением её команды.
Макеты объекта хранилища не равны всем макетам отчётов конфигурации.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.