ОбъектМетаданных: ЗначениеПеречисления.ПолноеИмя

Методы · FullName

Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)).

Синтаксис

ПолноеИмя()

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

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

ОбъектМетаданных: ЗначениеПеречисления.ПолноеИмя (MetadataObject: EnumValue.FullName)

ОбъектМетаданных: ЗначениеПеречисления (MetadataObject: EnumValue)

ПолноеИмя (FullName)

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

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

Описание:

Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)).

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

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

Пример:

// В конфигурации определены справочники "Банки", "Валюты" и "Товары"

// Результатом работы примера:

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

// Справочник.Банки

// Справочник.Валюты

// Справочник.Товары

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

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

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

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

Построить учебный словарь имён и синонимов перечисления

Описание значений метаданных отличается от ПеречислениеСсылка. По имени описания получаем типизированное значение.

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

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

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу с именем корня конфигурации Учебная85. Не меняйте рабочие конфигурации ради этого примера.

  2. Перечисления → Добавить: УчебныйСтатус, синоним Учебный статус. Значения в порядке Черновик, Готов, Отменен; синонимы соответственно Черновик, Готов к проверке, Отменён.

  3. Модуль менеджера оставьте пустым, формы/макеты не добавляйте. Обновите конфигурацию базы данных.

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

Если Метаданные.Перечисления.Найти("УчебныйСтатус") = Неопределено Тогда
    ВызватьИсключение "Подготовьте собственное перечисление УчебныйСтатус";
КонецЕсли;
Описание = Метаданные.Перечисления.УчебныйСтатус;
Сообщить(Описание.Имя = "УчебныйСтатус");
Сообщить(Описание.Синоним = "Учебный статус");
Сообщить(Описание.Родитель().Имя = "Учебная85");
Сообщить(Описание.ЗначенияПеречисления.Количество() = 3);
Сообщить("Полное имя: " + Описание.ПолноеИмя());
Сообщить("Представление: " + Описание.Представление());
Словарь = Новый ТаблицаЗначений;
Словарь.Колонки.Добавить("Имя", Новый ОписаниеТипов("Строка"));
Словарь.Колонки.Добавить("Подпись", Новый ОписаниеТипов("Строка"));
Для Каждого ОписаниеЗначения Из Описание.ЗначенияПеречисления Цикл
    СтрокаСловаря = Словарь.Добавить();
    СтрокаСловаря.Имя = ОписаниеЗначения.Имя;
    СтрокаСловаря.Подпись = ОписаниеЗначения.Синоним;
    Значение = Перечисления.УчебныйСтатус[ОписаниеЗначения.Имя];
    Сообщить(ОписаниеЗначения.Родитель() = Описание);
    Сообщить("Имя: " + ОписаниеЗначения.ПолноеИмя());
    Сообщить("Подпись: " + ОписаниеЗначения.Представление());
    Сообщить("Значение: " + Строка(Значение));
КонецЦикла;
Найденная = Словарь.Найти("Готов", "Имя");
Сообщить(Найденная.Подпись = "Готов к проверке");

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

  1. Метаданные.Перечисления описывает схему перечисления, не хранит текущий статус документа.

  2. ЗначенияПеречисления содержит описания каждого элемента с Имя/Синоним.

  3. Динамическое обращение менеджер[Имя] получает реальное значение по имени метаданных.

  4. Родитель описания значения — перечисление, а родитель перечисления — корень конфигурации.

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

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

  1. Начальные четыре проверки Истина, для каждого значения проверка родителя Истина.

  2. Финальная подпись имени Готов — Готов к проверке.

  3. Ни перечень значений схемы, ни рабочие данные не изменяются.

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

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

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

  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", Поле.ПолноеИмя(), Поле.Представление()));
Сообщить(Поле.Родитель() = Описание);
Сообщить("Комментарий: " + Поле.Комментарий);
Сообщить(Поле.ПринадлежностьОбъекта);
Сообщить(Поле.ОбъектРасширяемойКонфигурации);
Сообщить(Поле.ЕстьИзмененияРасширениямиКонфигурации());
Расширение = Поле.РасширениеКонфигурации();
Если Расширение <> Неопределено Тогда
    Сообщить("Добавившее расширение: " + Расширение.Имя);
КонецЕсли;

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

  1. Ищем имя значения внутри нужного перечисления, проверяя отсутствие.

  2. ПолноеИмя и Представление имеют разные назначения.

  3. Родитель описания значения — описание перечисления, не организация или бизнес-документ.

  4. Добавление расширением и изменение расширениями проверяем раздельно.

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

  1. Сравнение родителя даёт Истина; полное имя указывает значение нужного перечисления.

  2. Замените имя значения на УчебноеОтсутствующее: исключение возникает до обращения к его свойствам.

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

Установлены программная идентичность, владелец и происхождение значения схемы.

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

  1. Описание значения не равно прикладному значению перечисления, полученному через менеджер.

  2. Идентификатор расширяемого объекта не является номером амортизационной группы.

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

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

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

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

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