СправочникСсылка.<Имя справочника>.Метаданные

Методы · Metadata

Предоставляет доступ к объекту описания метаданных справочника. Другой путь получения того же значения - через свойство глобального контекста Метаданные. Например: Метаданные.Справочники.Номенклатура.

Синтаксис

Метаданные()

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

Если Не ТоварСсылка.Пустая() Тогда
    МетаданныеСправочника = ТоварСсылка.Метаданные();
    Сообщить("Представление справочника - " +
        МетаданныеСправочника.Представление());
КонецЕсли;
Полное описание, параметры и ограничения

СправочникСсылка.<Имя справочника>.Метаданные (CatalogRef.<Catalog name>.Metadata)

СправочникСсылка.<Имя справочника> (CatalogRef.<Catalog name>)

Метаданные (Metadata)

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

Синтаксис:
Метаданные()
Возвращаемое значение:
Тип: ОбъектМетаданных: Справочник.

Описание:

Предоставляет доступ к объекту описания метаданных справочника. Другой путь получения того же значения - через свойство глобального контекста Метаданные.
Например: Метаданные.Справочники.Номенклатура.

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

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

Пример:

Если Не ТоварСсылка.Пустая() Тогда
МетаданныеСправочника = ТоварСсылка.Метаданные();
Сообщить("Представление справочника - " +
МетаданныеСправочника.Представление());
КонецЕсли;

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

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

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

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

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

ПолучитьСсылку строит ссылку из UUID. Такая ссылка ещё не означает существование товара. Назначаем её новому объекту и проверяем это различие.

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

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

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

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


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Идентификатор = Новый УникальныйИдентификатор;
ПлановаяСсылка = Справочники.УчебныеТовары.ПолучитьСсылку(Идентификатор);
Товар = Справочники.УчебныеТовары.СоздатьЭлемент();
Товар.Наименование = "Учебная книга со ссылкой";
Товар.УстановитьСсылкуНового(ПлановаяСсылка);
Сообщить(Товар.ПолучитьСсылкуНового() = ПлановаяСсылка);
Сообщить(ПлановаяСсылка.УникальныйИдентификатор() = Идентификатор);
Сообщить(Не ПлановаяСсылка.Пустая());
Сообщить(Товар.ЭтоНовый());
Сообщить(ПлановаяСсылка.ПолучитьОбъект() = Неопределено);
Сообщить(ПлановаяСсылка.Метаданные().Имя = "УчебныеТовары");

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

  1. Новый UUID задаёт идентичность предполагаемой ссылки; ПолучитьСсылку не читает и не создаёт объект в базе.

  2. УстановитьСсылкуНового применим к новому незаписанному объекту. Проверка уникальности выполняется при будущей записи.

  3. ПолучитьСсылкуНового возвращает назначенное значение, которое сравниваем с плановой ссылкой.

  4. Непустая ссылка может вести к отсутствующей записи. Поэтому отдельно проверяем ПолучитьОбъект на Неопределено.

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

  1. Все шесть сравнений дают Истина для нового случайного UUID в пустой учебной базе.

  2. Товар остаётся новым, список справочника не изменяется.

  3. ПолучитьОбъект для плановой ссылки возвращает Неопределено, а не новый автоматически записанный товар.

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

Показано различие между непустой ссылкой, назначением идентичности и существованием записи.

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

  1. Не назначайте ссылку существующего товара новому объекту: это не способ обновления данных.

  2. Случайный UUID не является кодом товара, артикулом или универсальным ID внешнего API. Контракт обмена проектируют отдельно.

  3. Не вызывайте свойства данных у ссылки на отсутствующий объект в расчёте на автоматическое создание записи.

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

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

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

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

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