ОбъектМетаданных: Форма.Представление

Методы · Presentation

Получает строковое представление объекта метаданных. Как правило, в качестве строкового представления выступает синоним, а при его отсутствии - имя объекта метаданных, как оно задано в Конфигураторе.

Синтаксис

Представление()

Примеры платформы

Для каждого Объект Из Метаданные.Справочники Цикл
    Сообщить(Объект.Представление());
КонецЦикла;
Полное описание, параметры и ограничения

ОбъектМетаданных: Форма.Представление (MetadataObject: Form.Presentation)

ОбъектМетаданных: Форма (MetadataObject: Form)

Представление (Presentation)

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

Синтаксис:
Представление()
Возвращаемое значение:
Тип: Строка.

Описание:

Получает строковое представление объекта метаданных. Как правило, в качестве строкового представления выступает синоним, а при его отсутствии - имя объекта метаданных, как оно задано в Конфигураторе.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Пример:

Для каждого Объект Из Метаданные.Справочники Цикл
Сообщить(Объект.Представление());
КонецЦикла;

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

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

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

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

Найти схему формы списка номенклатуры без открытия списка

Метаданные формы показывают её объявленный тип и владельца, но не текущие строки или элементы уже открытого окна.

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

Полный серверный общий модуль собственной учебной копии КА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. Команды подтверждены в Catalogs\Номенклатура.xml и Documents\РеализацияТоваровУслуг.xml; форма — в Catalogs\Номенклатура\Forms\ФормаСписка.xml; нумератор — в DocumentNumerators\ДокументыРеализацииТоваров.xml.

  4. Исходники конфигурации не меняются. Код только читает метаданные и обрабатывает собственные значения в памяти: не вызывает штатную команду, не открывает форму списка, не получает новый номер и не записывает документы.

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

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

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

  1. Берём ФормаСписка из коллекции Формы именно Номенклатуры. ОбщаяФорма.ФормаСписка и форма другого справочника были бы другими объектами.

  2. XML указывает FormType=Managed и IncludeHelpInContents=false. Нативные значения сравниваются как перечисление и Булево.

  3. ПолноеИмя и Родитель устанавливают владельца. Синоним не уникален и может локализоваться.

  4. Сведения о расширениях диагностические. Сравнение схемы не доказывает, какие команды/строки видит пользователь в уже открытом экземпляре формы.

  5. Нет ОткрытьФорму/ПолучитьФорму: не запускаются события формы списка, произвольные запросы или действия её модуля.

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

  1. Четыре первые сравнения ожидаются Истина на исходной схеме, остальные значения подписаны как фактические.

  2. Список товаров не открылся. Если версия или объект отличаются, код останавливается до чтения свойств.

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

Получен паспорт настоящей схемы формы КА2 без подмены её экземпляром пользовательского окна.

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

  1. ОбъектМетаданных: Форма не имеет элементов уже открытой ФормаКлиентскогоПриложения.

  2. Наличие назначения мобильного использования в XML не доказывает корректный мобильный интерфейс или права пользователя.

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

Перечислить тринадцать форм, не открывая их

Число 13 взято из ChildObjects подтверждённого XML. Формы и макеты — разные коллекции.

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

Полный серверный общий модуль учебной копии КА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;
    Для Каждого ФормаМетаданных Из Формы Цикл
        Если Формы.Найти(ФормаМетаданных.Имя) <> ФормаМетаданных Тогда
            ВызватьИсключение "Поиск по имени не вернул собственную дочернюю форму";
        КонецЕсли;
        Проверенных = Проверенных + 1;
        Сообщить(ФормаМетаданных.Имя + " — " + ФормаМетаданных.Представление());
    КонецЦикла;
    Сообщить(Проверенных = 13);
    Сообщить(Формы.Найти("ВыборФинансовогоПериода") <> Неопределено);
    Сообщить(Формы.Найти("НеСуществуетGuideOwnedФорма") = Неопределено);
    Сообщить(Хранилище.Макеты.Количество() = 0);
КонецПроцедуры

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

  1. Получаем дочерние Формы именно выбранного хранилища, не все общие формы конфигурации.

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

  3. Для каждой формы поиск по точному имени должен вернуть тот же объект метаданных.

  4. Отдельно показываем существующую форму выбора периода и безопасный поиск отсутствующего имени.

  5. Макеты пусты в этой выгрузке, несмотря на тринадцать форм. Это не число сохранённых вариантов отчёта.

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

  1. Пять булевых сообщений Истина, тринадцать строк каталога форм и отсутствие исключения при поиске каждой.

  2. В каталоге есть СохранениеВариантаОтчетаВФайл, но сам файл этим обходом не создаётся.

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

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

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

  1. Расширения/версия могут добавить формы: пересверяйте XML, не удаляйте лишние формы ради числа 13.

  2. Не путайте поиск формы по имени с выполнением её команды.

  3. Макеты объекта хранилища не равны всем макетам отчётов конфигурации.

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

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

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

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

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