Отделить метаданные модуля менеджера от его выполнения

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

Свойство МодульМенеджера проектное; доступность чтения в исполняемом серверном контексте проверяется, код модуля не выполняется.

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

Полный серверный общий модуль учебной копии КА2 Progress 2.5.20.75; только чтение метаданных.

Подготовка

  1. Отдельная учебная копия КА2 Progress из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, конфигурация КомплекснаяАвтоматизация 2.5.20.75, платформа 8.5.1.1343. Код не изменяет исходную выгрузку.

  2. Создайте серверный общий модуль УчебныеМетаданныеХранилища с флагом Сервер. Каждый урок — отдельный полный текст с процедурой ВыполнитьПример() Экспорт.

  3. Подтверждённый источник: SettingsStorages\ХранилищеВариантовОтчетов.xml. Формы находятся в SettingsStorages\ХранилищеВариантовОтчетов\Forms, модуль менеджера — в Ext\ManagerModule.bsl.

  4. Из серверной команды учебной обработки вызовите УчебныеМетаданныеХранилища.ВыполнитьПример(). Метаданные — описание схемы, не менеджер чтения/сохранения пользовательских вариантов.

  5. Уроки только читают описание: не открывают штатные формы, не выполняют модуль менеджера, не загружают отчётные варианты и не меняют настройки пользователя.

  6. Проверки формы/количества основаны на этой выгрузке. При другой версии или расширениях перепроверьте источник, не изменяйте активную конфигурацию ради совпадения чисел.

Процедура ВыполнитьПример() Экспорт
    Хранилище = Метаданные.ХранилищаНастроек.Найти("ХранилищеВариантовОтчетов");
    Если Хранилище = Неопределено Тогда
        ВызватьИсключение "В активной учебной копии не найдено подтверждённое хранилище вариантов";
    КонецЕсли;
    Сообщить(Хранилище.Имя = "ХранилищеВариантовОтчетов");
    Сообщить(Хранилище.Формы.Количество() = 13);
    Сообщить(Хранилище.Макеты.Количество() = 0);
    Попытка
        МодульМетаданных = Хранилище.МодульМенеджера;
        Сообщить("Чтение проектного свойства МодульМенеджера: " + Строка(ТипЗнч(МодульМетаданных)));
    Исключение
        Сообщить("Проектное свойство МодульМенеджера недоступно в этом контексте: " + ОписаниеОшибки());
    КонецПопытки;
    Сообщить("Исходный ManagerModule.bsl смотрите в указанной выгрузке; вызовов сохранения/загрузки здесь нет");
КонецПроцедуры

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

  1. Подтверждаем имя и реальные коллекции объекта по XML перед проектной диагностикой.

  2. Пытаемся прочитать МодульМенеджера и выводим только тип; не получаем/выполняем его текст.

  3. Если свойство недоступно данному контексту, явно сообщаем причину, не подставляем фиктивный модуль.

  4. Исходник ManagerModule.bsl находится в выгрузке. Его наличие не доказывает запуск какого-либо обработчика.

  5. Этот объект метаданных не подменяем менеджером ХранилищаНастроек.ХранилищеВариантовОтчетов.

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

  1. Три сравнения Истина, затем диагностический тип проектного свойства либо явная причина недоступности.

  2. Ни Загрузить, ни Сохранить, ни Удалить вариантов и файлов не вызываются.

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

Показана граница метаданных и исполняемого менеджера на конкретном объекте КА2.

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

  1. Справочный список свойств не гарантирует одинаковую доступность каждого проектного свойства на сервере и в конфигураторе.

  2. Ошибка этого проектного чтения не означает, что хранилище пользовательских вариантов сломано.

  3. Не вызывайте модуль рабочего хранилища ради диагностического типа.

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

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

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

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

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