Получает строковое представление объекта метаданных. Как правило, в качестве строкового представления выступает синоним, а при его отсутствии - имя объекта метаданных, как оно задано в Конфигураторе.
Синтаксис
Представление()Примеры платформы
Для каждого Объект Из Метаданные.Справочники Цикл
Сообщить(Объект.Представление());
КонецЦикла;Полное описание, параметры и ограничения
ОбъектМетаданных: Реквизит.Представление (MetadataObject: Attribute.Presentation)
ОбъектМетаданных: Реквизит (MetadataObject: Attribute)
Представление (Presentation)
Доступен, начиная с версии 8.0.
Синтаксис:
Представление()
Возвращаемое значение:
Тип: Строка.
Описание:
Получает строковое представление объекта метаданных. Как правило, в качестве строкового представления выступает синоним, а при его отсутствии - имя объекта метаданных, как оно задано в Конфигураторе.
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Пример:
Для каждого Объект Из Метаданные.Справочники Цикл
Сообщить(Объект.Представление());
КонецЦикла;
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить происхождение реквизита, не отключая расширения
Перед объяснением необычного выбора единицы проверяем паспорт реквизита и влияние расширений. Код собирает доказательства, а не меняет окружение.
Где и как запускать
Полный серверный общий модуль учебной копии КА2 Progress. Только схема и собственные значения в памяти.
Подготовка
Используйте отдельную учебную копию КА2 Progress, соответствующую C:\claude\KA2\Progress\XML_CF_KA2_PROGRESS. Названия и настройки проверены по реальным Catalogs/Номенклатура.xml и Catalogs/ВидыПодарочныхСертификатов.xml.
Создайте серверный общий модуль УчебныеЗадачи, вставьте полный модуль одного урока и вызовите ВыполнитьПример() из своего серверного обработчика учебной команды.
Примеры читают схему и создают значения только в памяти. Они не создают и не записывают товары, не меняют метаданные, не запускают заполнение объекта или перестроение поискового индекса.
Процедура ВыполнитьПример() Экспорт
Справочник = Метаданные.Справочники.Найти("Номенклатура");
Если Справочник = Неопределено Тогда
ВызватьИсключение "В учебной конфигурации отсутствует Справочники.Номенклатура";
КонецЕсли;
Описание = Справочник.Реквизиты.Найти("ЕдиницаИзмерения");
Если Описание = Неопределено Тогда
ВызватьИсключение "В найденном справочнике нет нужного реквизита учебного урока";
КонецЕсли;
Сообщить("Полное имя реквизита: " + Описание.ПолноеИмя());
Сообщить("Представление: " + Описание.Представление());
Сообщить("Принадлежность: " + Строка(Описание.ПринадлежностьОбъекта));
Сообщить("Тип идентификатора заимствования: " + Строка(ТипЗнч(Описание.ОбъектРасширяемойКонфигурации)));
Сообщить("Есть изменения расширениями: " + Строка(Описание.ЕстьИзмененияРасширениямиКонфигурации()));
Сообщить("Принадлежит отдельному расширению: " + Строка(Описание.РасширениеКонфигурации() <> Неопределено));
Сообщить("Тип родителя: " + Строка(ТипЗнч(Описание.Родитель())));
Сообщить(Описание.Имя = "ЕдиницаИзмерения");
КонецПроцедурыРазбор по шагам
ПолноеИмя включает владельца и категорию реквизита; одинаковое короткое имя в другом справочнике не является этим же объектом.
ПринадлежностьОбъекта и ОбъектРасширяемойКонфигурации относятся к происхождению описания, а не к владельцу единицы измерения из бизнес-данных.
Факт изменения расширениями и принадлежность расширению выводятся раздельно. Не предполагаем, что все изменения формы обязательно происходят в базовой конфигурации.
Для полной диагностики затем отдельно изучают модуль конкретной формы. Этот урок не отключает расширения и не включает привилегированный режим.
Как проверить результат
Проверка имени — Истина, остальные строки — фактический паспорт объекта вашей учебной копии.
Подключённые расширения и права пользователя после запуска не изменены.
Ожидаемый результат
Получена исходная точка доказательной проверки поведения реквизита.
На что обратить внимание
Отсутствие изменений самого реквизита не доказывает отсутствие изменений модуля формы.
Метаданные не являются экземпляром номенклатуры: Родитель здесь не родительская группа товара.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Проверить тип и допустимую длину артикула
Получаем реальный реквизит Артикул и его квалификаторы. Показываем, почему нельзя бесконтрольно обрезать входящие строки.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Запускайте в учебной копии конфигурации. Примеры читают структуру метаданных, но не создают объекты, не записывают регистры и не проводят документы.
Сверяйте вывод с деревом конфигурации в Конфигураторе. Имена, длины и настройки в УНФ, КА2, БП, УТ 11 и УТ 10.3 могут различаться.
Нужен справочник Номенклатура со строковым реквизитом Артикул. Если имя отличается, сначала найдите фактическое поле в Конфигураторе и измените только его имя в примере.
ОписаниеСправочника = Метаданные.Справочники.Найти("Номенклатура");
Если ОписаниеСправочника = Неопределено Тогда
ВызватьИсключение "Нет справочника Номенклатура";
КонецЕсли;
Реквизит = ОписаниеСправочника.Реквизиты.Найти("Артикул");
Если Реквизит = Неопределено Тогда
ВызватьИсключение "Нет реквизита Артикул; выберите существующий строковый реквизит в своей учебной базе";
КонецЕсли;
Сообщить(Реквизит.ПолноеИмя());
Сообщить(Реквизит.Представление());
Сообщить(Реквизит.Родитель());
Сообщить(СтрШаблон("%1 (%2): %3", Реквизит.Имя, Реквизит.Синоним, Реквизит.Тип));
Сообщить(Реквизит.Комментарий);
Сообщить(Реквизит.ПроверкаЗаполнения);
Сообщить(Реквизит.Использование);
Сообщить(Реквизит.МногострочныйРежим);
Сообщить(Реквизит.ЗаполнятьИзДанныхЗаполнения);
ОписаниеТипов = Реквизит.Тип;
Если Не ОписаниеТипов.СодержитТип(Тип("Строка")) Тогда
ВызватьИсключение "Этот реквизит не допускает строку";
КонецЕсли;
Максимум = ОписаниеТипов.КвалификаторыСтроки.Длина;
Сообщить(Максимум);
АртикулИзФайла = "A-01";
Если Максимум > 0 И СтрДлина(АртикулИзФайла) > Максимум Тогда
ВызватьИсключение "Артикул длиннее допустимого. Исправьте исходные данные, не обрезайте идентификатор";
КонецЕсли;
Сообщить("Проверка длины пройдена: " + АртикулИзФайла);Разбор по шагам
Проверяем существование обоих уровней: справочник и его реквизит.
Свойство Тип возвращает ОписаниеТипов. Проверка СодержитТип подтверждает возможность строки.
КвалификаторыСтроки.Длина даёт ограничение; 0 в этом квалификаторе означает неограниченную длину строки.
При превышении предела отклоняем значение, а не обрезаем: два разных внешних артикула иначе могут превратиться в один.
Как проверить результат
Полное имя заканчивается Реквизит.Артикул; длина совпадает с настройкой реквизита в Конфигураторе.
При ограниченной длине задайте входящую строку длиннее предела: должна быть явная ошибка.
Замените имя реквизита на отсутствующее: пример должен остановиться до чтения Тип.
Ожидаемый результат
Входящий артикул проверен по реальной структуре поля без записи номенклатуры.
На что обратить внимание
Проверка длины не проверяет уникальность артикула, бизнес-правила и обязательность поля.
ОписаниеТипов может быть составным: наличие строки не означает, что строка — единственный разрешённый тип.
Свойство ЗначениеЗаполнения не используется как источник рабочих данных: значения по умолчанию и фактические данные — разные вещи.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.