Проверить состав раздела по конкретному справочнику

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

Перебираем описания состава Банк и касса и ищем СтатьиДвиженияДенежныхСредств. Это не перечень записей и не проверка доступа.

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

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.

  2. Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.

  3. Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.

  4. В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.

  5. Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.

Описание = Метаданные.Подсистемы.Найти("БанкИКассаБазовая");
Если Описание = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует Подсистемы.БанкИКассаБазовая";
КонецЕсли;
Справочник = Метаданные.Справочники.Найти("СтатьиДвиженияДенежныхСредств");
Если Справочник = Неопределено Тогда
    ВызватьИсключение "В учебной конфигурации отсутствует Справочники.СтатьиДвиженияДенежныхСредств";
КонецЕсли;
Сообщить("Объектов состава: " + Строка(Описание.Состав.Количество()));
Найдено = Ложь;
Для Каждого Объект Из Описание.Состав Цикл
    Сообщить(Объект.ПолноеИмя());
    Если Объект = Справочник Тогда
        Найдено = Истина;
    КонецЕсли;
КонецЦикла;
Сообщить("Нужный справочник входит в состав: " + Строка(Найдено));

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

  1. Состав содержит описания объектов, не элементы справочника.

  2. Ищем совпадение описания, а не сравниваем локализованные подписи.

  3. Одному объекту может соответствовать участие в нескольких подсистемах.

  4. Для права чтения и доступности команды нужна отдельная проверка; наличие в составе её не заменяет.

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

  1. В предоставленном XML нужный справочник входит в состав: Найдено = Истина.

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

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

Установлена связь объекта со структурой раздела без чтения банковских данных.

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

  1. Состав не является полным списком кнопок, которые увидит пользователь.

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

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

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

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

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

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