ОбъектМетаданных: Макет.Имя

Свойства · Name

Тип: Строка. Имя объекта метаданных.

Полное описание, параметры и ограничения

ОбъектМетаданных: Макет.Имя (MetadataObject: Template.Name)

ОбъектМетаданных: Макет (MetadataObject: Template)

Имя (Name)

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

Использование:
Только чтение.
Описание:
Тип: Строка.
Имя объекта метаданных.
Доступность:

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

Примечание:
Имя должно состоять из одного слова, начинаться с буквы и не содержать специальных символов, кроме «_».
Использование в версии:

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

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

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

Получить реальный макет вместо свойства метаданных

Метаданные макета содержат описание, но Макет всегда Неопределено. ТабличныйДокумент получают у менеджера соответствующего документа.

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

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

Подготовка

  1. Изолированная учебная копия КА2 Progress 2.5.20.75 из C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS, платформа 8.5.1.1343. Создайте серверный общий модуль УчебныеМаршрутыИМакеты.

  2. Вставьте полный модуль одного урока и вызовите УчебныеМаршрутыИМакеты.ВыполнитьПример() своей серверной учебной командой.

  3. Источники: HTTPServices\ПередачаДанных.xml и ПередачаДанных\Ext\Module.bsl; Documents\РеализацияТоваровУслуг\Templates\ПФ_MXL_РеализацияТоваров.xml.

  4. Метаданные только читаются. HTTP-запросы, публикация сервиса, загрузка/удаление файлов хранилища и печать документов не выполняются.

  5. Формируемый путь с guide-owned-storage — учебная строка, не действующий адрес публикации. GET/POST обработчики могут выполнять прикладную работу и здесь не вызываются.

  6. Макет печати получается в память без создания документа реализации и без заполнения его данными. Чтение размера макета не доказывает корректность настоящей печатной формы.

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

КонецПроцедуры

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

  1. Найти макет в коллекции документа РеализацияТоваровУслуг, не в общих макетах конфигурации.

  2. Проверить ТипМакета и Неопределено у свойства Макет: это два разных аспекта описания.

  3. Через менеджер документа получить макет по подтверждённому имени. Проверить тип и ненулевые размеры, не меняя ячейки.

  4. Вывести сведения происхождения и проверить родителя — метаданные документа. Заполнения, записи документа и печати нет.

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

  1. Семь фиксированных проверок дают Истина; сведения расширений диагностические.

  2. В памяти непустой ТабличныйДокумент-макет. Нет сформированной накладной или новых записей базы.

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

Реальный рецепт получения макета из подтверждённого документа КА2.

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

  1. Нельзя вызывать МакетМетаданных.Макет.ПолучитьОбласть: свойство Неопределено.

  2. ПолучитьМакет не формирует печатную форму с данными документа.

  3. Не перезаписывайте шаблон или результат файловыми операциями из учебного примера.

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

Разделить реквизиты, табличные части, макеты и команды программы

Составляем карту двух объектов. Количество описаний табличных частей не равно количеству строк данных в отчёте.

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

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

Подготовка

  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; команды %5",
        Описание.Имя, Описание.Реквизиты.Количество(), Описание.ТабличныеЧасти.Количество(),
        Описание.Макеты.Количество(), Описание.Команды.Количество()));
    Для Каждого Макет Из Описание.Макеты Цикл
        Сообщить("Макет схемы: " + Макет.Имя);
    КонецЦикла;
КонецЦикла;
Сообщить(Отчет.Макеты.Количество() = 1);
Сообщить(Обработка.Реквизиты.Количество() = 0);

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

  1. Две проверенные ссылки кладём в массив для одинакового обхода общих коллекций.

  2. Реквизиты и ТабличныеЧасти здесь — описания структуры, а не значения созданного объекта.

  3. Макеты содержат описания: имя макета ещё не является таблицей или выполненным результатом СКД.

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

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

  1. По XML у отчёта один макет ОсновнаяСхемаКомпоновкиДанных; первое итоговое сравнение Истина.

  2. У выбранной обработки собственных реквизитов 0; второе сравнение Истина. Пустую коллекцию код обходит без ошибки.

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

Получена карта структуры без чтения хозяйственных операций.

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

  1. Метаданные макета не равны результату метода ПолучитьМакет прикладного объекта.

  2. Ноль собственных реквизитов не означает отсутствие параметров формы.

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

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

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

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

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