Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)).
Синтаксис
ПолноеИмя()Примеры платформы
Для каждого Объект Из Метаданные.Справочники Цикл
Сообщить(Объект.ПолноеИмя());
КонецЦикла;Полное описание, параметры и ограничения
ОбъектМетаданных: Форма.ПолноеИмя (MetadataObject: Form.FullName)
ОбъектМетаданных: Форма (MetadataObject: Form)
ПолноеИмя (FullName)
Доступен, начиная с версии 8.0.
Синтаксис:
ПолноеИмя()
Возвращаемое значение:
Тип: Строка.
Описание:
Получает полное имя объекта метаданного. Имя отвечает требованиям, предъявляемым к именам (должно начинаться с буквы, содержать только буквы, цифры или символ "_", может содержать одну точку (не начальный и не конечный символ)).
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
// В конфигурации определены справочники "Банки", "Валюты" и "Товары"
// Результатом работы примера:
Для каждого Объект Из Метаданные.Справочники Цикл
Сообщить(Объект.ПолноеИмя());
КонецЦикла;
// будут сообщения:
// Справочник.Банки
// Справочник.Валюты
// Справочник.Товары
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Проверить назначенную форму списка регистра
ФормаСписка существует и назначена основной. Получение её описания не открывает журнал проводок и не выдаёт права просмотра движений.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Имена объектов взяты из XML КА2 Progress: C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Исходные XML не изменяйте. Выполняйте код только в своей учебной копии соответствующей конфигурации.
В другой конфигурации предварительно найдите аналогичный объект в Конфигураторе и замените только строку имени в поиске. Отсутствие имени обрабатывается до чтения свойств; оно не доказывает отсутствие аналогичной возможности.
Каждый урок запускайте отдельно. Код не вызывает бизнес-функции модулей и обработчики команд, не переключает привилегированный режим и не меняет параметры сеанса.
Описание = Метаданные.РегистрыБухгалтерии.Найти("Хозрасчетный");
Если Описание = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует РегистрыБухгалтерии.Хозрасчетный";
КонецЕсли;
Форма = Описание.Формы.Найти("ФормаСписка");
Если Форма = Неопределено Тогда
ВызватьИсключение "В учебном регистре ожидалась собственная ФормаСписка";
КонецЕсли;
Сообщить(Описание.Формы.Количество() = 1);
Сообщить(Описание.ОсновнаяФормаСписка = Форма);
Сообщить(Описание.ДополнительнаяФормаСписка = Неопределено);
Сообщить(Форма.Родитель() = Описание);
Сообщить(Форма.ПолноеИмя());
Сообщить(Описание.Макеты.Количество() = 0);
Сообщить(Описание.Команды.Количество() = 0);Разбор по шагам
Сначала ищем собственную форму, затем сравниваем её с назначением ОсновнаяФормаСписка.
Дополнительное назначение не задано в XML, а родитель найденной формы — описание регистра.
Собственные Макеты/Команды пусты независимо от механизма стандартных команд; форму не открываем.
Как проверить результат
Шесть сравнений Истина; выводится полное имя РегистрБухгалтерии.Хозрасчетный.Форма.ФормаСписка.
Окно журнала не открывалось и движения не выбирались.
Ожидаемый результат
Подтверждено назначение конкретной формы из предоставленной схемы.
На что обратить внимание
Пустая коллекция Команды не означает отсутствия всех автоматически формируемых команд.
В другой конфигурации список может иметь другую форму: не подменяйте имя без проверки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Проверить, какие формы назначены учебному справочнику
Отличаем описание формы в метаданных от открытого окна. Диагностика показывает назначения для объекта, группы, списка и выбора.
Где и как запускать
Полный текст собственного серверного общего модуля УчебныеЗадачи. Он уже содержит процедуру Экспорт и вспомогательную функцию; не вставляйте внутрь другого обработчика.
Подготовка
Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.
Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.
Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.
Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.
Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.
Все проверки этого блока только читают метаданные собственного справочника. Изменения настроек из подготовки выполняйте вручную в Конфигураторе только новой базы Учебная85, затем обновляйте конфигурацию БД.
Не устанавливайте расширения в учебную базу и не создавайте дополнительные индексы, характеристики, команды или макеты, если конкретное упражнение этого не требует.
У УчебныеТовары создайте две управляемые формы: ФормаТовара вида Форма элемента справочника и ФормаСписка вида Форма списка справочника. Назначьте их соответственно основной формой объекта и основной формой списка.
Другие формы/назначения специально не создавайте. После обновления БД замените пустой общий модуль УчебныеЗадачи всем кодом ниже: он содержит готовую ВыполнитьПример и вспомогательную функцию. Не вставляйте функции внутрь другой процедуры.
Процедура ВыполнитьПример() Экспорт
Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;
Описание = Метаданные.Справочники.УчебныеТовары;
Сообщить(Описание.Формы.Количество() = 2);
Если Описание.ОсновнаяФормаОбъекта = Неопределено Или Описание.ОсновнаяФормаСписка = Неопределено Тогда
ВызватьИсключение "Назначьте две собственные основные формы по подготовке";
КонецЕсли;
Сообщить(Описание.ОсновнаяФормаОбъекта.Имя = "ФормаТовара");
Сообщить(Описание.ОсновнаяФормаСписка.Имя = "ФормаСписка");
Сообщить("ОсновнаяФормаОбъекта: " + ПредставитьНазначениеФормы(Описание.ОсновнаяФормаОбъекта));
Сообщить("ОсновнаяФормаГруппы: " + ПредставитьНазначениеФормы(Описание.ОсновнаяФормаГруппы));
Сообщить("ОсновнаяФормаСписка: " + ПредставитьНазначениеФормы(Описание.ОсновнаяФормаСписка));
Сообщить("ОсновнаяФормаДляВыбора: " + ПредставитьНазначениеФормы(Описание.ОсновнаяФормаДляВыбора));
Сообщить("ОсновнаяФормаДляВыбораГруппы: " + ПредставитьНазначениеФормы(Описание.ОсновнаяФормаДляВыбораГруппы));
Сообщить("ДополнительнаяФормаОбъекта: " + ПредставитьНазначениеФормы(Описание.ДополнительнаяФормаОбъекта));
Сообщить("ДополнительнаяФормаГруппы: " + ПредставитьНазначениеФормы(Описание.ДополнительнаяФормаГруппы));
Сообщить("ДополнительнаяФормаСписка: " + ПредставитьНазначениеФормы(Описание.ДополнительнаяФормаСписка));
Сообщить("ДополнительнаяФормаДляВыбора: " + ПредставитьНазначениеФормы(Описание.ДополнительнаяФормаДляВыбора));
Сообщить("ДополнительнаяФормаДляВыбораГруппы: " + ПредставитьНазначениеФормы(Описание.ДополнительнаяФормаДляВыбораГруппы));
Сообщить("Стандартные команды: " + Строка(Описание.ИспользоватьСтандартныеКоманды));
Сообщить("Способ редактирования: " + Строка(Описание.СпособРедактирования));
КонецПроцедуры
Функция ПредставитьНазначениеФормы(НазначеннаяФорма)
Если НазначеннаяФорма = Неопределено Тогда
Возврат "Не назначена — учитываются правила автогенерации и клиентского режима";
КонецЕсли;
Возврат НазначеннаяФорма.ПолноеИмя();
КонецФункции
Разбор по шагам
Читаем назначенные основные формы и убеждаемся, что существуют именно две подготовленные формы.
Вспомогательная функция форматирует описание формы: Неопределено обрабатывается до ПолноеИмя. Она не открывает окно и не создаёт экземпляр формы.
Основные и дополнительные назначения показываем отдельно. Дополнительная форма может использоваться, когда основная не установлена/не подходит клиенту, согласно назначению.
ИспользоватьСтандартныеКоманды и СпособРедактирования — настройки справочника, не свойства уже открытого окна.
Как проверить результат
Три проверки дают Истина.
В сообщениях основные объект/список указывают ФормаТовара и ФормаСписка. Остальные назначения показывают фактическое состояние; незаданные не вызывают ошибку.
Окно формы справочника этим кодом не открывается.
Ожидаемый результат
Диагностика назначений форм до поиска ошибки открытия не того окна.
На что обратить внимание
Неопределено у основной формы не доказывает, что стандартное открытие невозможно: платформа может генерировать форму.
Нельзя присваивать эти свойства во встроенном языке для изменения конфигурации: настройки меняются в Конфигураторе.
Не приравнивайте имя формы в метаданных к объекту ФормаКлиентскогоПриложения.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.