Основная страница

 

Глава 39
Работа с Метаданными


 

Глобальный атрибут «Метаданные» является вспомогательным объектом системы, предназначенным для доступа к свойствам структуры метаданных конфигурации. Возможность доступа к метаданным средствами встроенного языка является дополнительной возможностью и применяется в специальных случаях, например, для создания универсальных отчетов или обработок, которые обращаются к объектам различных видов (документам, справочникам и т. п.). В основных алгоритмах конфигурации данная возможность, как правило, не используется.

Контекст работы с метаданными

Работа с метаданными выполняется через глобальный атрибут «Метаданные», имеющий тип «Метаданные». Объект типа «Метаданные» нельзя создать, используя метод СоздатьОбъект.

Объект типа «Метаданные» имеет атрибуты для доступа к свойствам объекта метаданных и методы для доступа к массивам подчиненных объектов метаданных. Глобальный атрибут «Метаданные» предоставляет доступ к общим свойствам конфигурации и к основным объектам метаданных (документам, справочникам и т. п.). Полученный из глобального атрибута подчиненный объект метаданных — документ предоставляет в свою очередь доступ к свойствам документа и к объектам метаданных являющихся реквизитами документа.

Значения, имеющие тип «Метаданные», можно напрямую использовать в качестве параметров в тех методах, где требуется строковый идентификатор метаданного, например, в методе справочника: Вид(НаименовСправочника).

Кроме того, объект типа «Метаданные» можно использовать в качестве параметров, в тех методах, где требуется указать тип данных строкой, например в третий параметр метода ВвестиЗначение(, , , ), но передавать можно только значения метаданных, описывающие типизированные объекты, например, Метаданные.Справочник(1).Реквизит(1), т. к. реквизит справочника — типизированный объект.

Англоязычный синоним ключевого слова МетаданныеMetadata.

Пример:

ВыбМетодУдаления = Метаданные.НепосредедственноеУдалениеОбъектов;

Атрибуты и методы объекта «Метаданные»

В документации не приводится полный перечень возможных значений атрибутов. Полный перечень атрибутов метаданных можно получить, сформировав в конфигураторе текстовый файл «Описание метаданных». Установленные значения атрибутов можно также узнать из текстового описания структуры метаданных.

Атрибуты, являющиеся по сути признаками с двумя возможными значениями имеют числовой тип и принимают значения 0 или 1. Атрибуты, которые могут иметь несколько возможных значений, выдают строку, отражающую установленный вариант. Атрибуты, отражающие свойство метаданных, выбираемое как ссылка на другой объект метаданных (например, журнал документа) имеют тип «Метаданные».

Пример:

ВыбМетодУдаления=Метаданные.НепосредственноеУдалениеОбъектов;

У объекта «Метаданные» могут существовать методы для доступа к массивам подчиненных метаданных. Например, для глобального атрибута «Метаданные» для обращения к документам используется метод «Документ».

В качестве параметра методов для доступа к массивам подчиненных метаданных передается:

·         число — выдает объект метаданных по указанному номеру;

·         строка — выдает объект метаданных по указанному идентификатору;

·         параметр не указан — выдает количество подчиненных объектов этого типа.

Пример получения списка документов конфигурации:

Для Инд = 1 По Метаданные.Документ() Цикл

   Сообщить(Метаданные.Документ(Инд).Идентификатор);

КснецЦикла;

У объекта типа «Метаданные» могут существовать атрибуты, содержащие массив ссылок на объекты метаданных, к ним применяются методы Количество() и Получить(Ном) для перебора ссылок. Например, для граф отбора таким атрибутом является атрибут «Ссылки», позволяющий получить объекты метаданных включенные в данную графу отбора (реквизиты документов и др.).

Пример:

Для Инд = 1 До Метаданные.ГрафаОтбора(Идент).Ссылки.Количество() Цикл

   Сообщить(Метаданные.ГрафаОтбора(Идент).

              Ссылки.Получить(Инд).ПолныйИдентификатор());

КонецЦикла;

Методы работы с метаданными

Перечень методов метаданных предназначенных для доступа к подчиненным объектам метаданных можно получить, сформировав в конфигураторе текстовый файл «Описание структуры метаданных».

Дополнительные методы работы с метаданными приведены ниже.

Выбран

Проверяет спозиционирован ли объект типа «Метаданные» на конкретном объекте метаданных или нет.

Синтаксис:

Выбран()

Англоязычный синоним:

Selected

Возвращаемое значение:

Число: 1 — если объект соответствует объекту метаданных (спозиционирован); 0 — если не соответствует.

Описание:

Метод Выбран возвращает число со значением 1 — объект соответствует объекту метаданных (спозиционирован), 0 — если не соответствует. Например, при обращении к массиву подчиненных метаданных по идентификатору, если метаданного с таким идентификатором не существует, возвращается не спозиционированный объект типа «Метаданные».

Пример:

Если Метаданные.Справочник("Организации").Выбран() = 1 Тогда

   Сообщить("Есть справочник органиазаций");

КонецЕсли;

Родитель

Возвращает объект метаданных, которому подчинен данный объект.

Синтаксис:

Родитель()

Англоязычный синоним:

Parent

Возвращаемое значение:

Объект метаданных, которому подчинен данный объект.

Описание:

Метод Родитель возвращает объект метаданных, которому подчинен данный объект.

Пример:

Сообцить("Реквизит принадлежит документу" + РеквМД.Родитель().Идентификатор);

ПолныйИдентификатор

Возвращает полный идентификатор объекта.

Синтаксис:

ПолныйИдентификатор()

Англоязычный синоним:

FullIdentifier

Возвращаемое значение:

Идентификатор объекта с идентификаторами его родителей через точку.

Описание:

Метод ПолныйИдентификатор возвращает идентификатор объекта с идентификаторами его родителей через точку, например: "Документ.Счет.Цена".

Пример:

Сообщить("Реквизит " + РеквМД.ПолныйИдентификатор());

Представление

Возвращает представление объекта.

Синтаксис:

Представление()

Англоязычный синоним:

Present

Возвращаемое значение:

Строковое значение представления объекта.

Описание:

Метод Представление возвращает синоним объекта, а если он не задан, то идентификатор.

Пример:

Получение списка видов документов:

Спис = СоздатьОбъект("СписокЗначений");

Для Инд = 1 По Метаданные.Документ() Цикл

   Идент = Метаданные.Документ(Инд).Идентификатор;

   Предст = Метаданные.Документ(Инд).Представление();

   Спис.ДобавитьЗначение(Идент, Предст);

КонецЦикла;

ДлинаПредставленияЗначения

Возвращает длину представления значения.

Синтаксис:

ДлинаПредставленияЗначения(<Мин>, <Макс>, <ДлПоУмолч>)

Англоязычный синоним:

ValuePresentLen

Параметры:

<Мин>

Необязательный параметр. Метод не будет возвращать значение меньше указанной в данном параметре величины.

<Макс>

Необязательный параметр. Метод не будет возвращать значение больше указанной в данном параметре величины.

<ДлПоУмолч>

Необязательный параметр. Метод будет возвращать данную величину для метаданных, для которых длина представления не определена. Параметр задает длину для типов данных, таких как Справочник неопределенного типа и аналогичных, у которых не определена длина.

Возвращаемое значение: возвращает длину представления значения.

Описание:

Метод ДлинаПредставленияЗначения для типизированных объектов типа Реквизит и аналогичных, выдает длину представления значения. Данный метод может использоваться, например, для определения ширины столбца в универсальных отчетах, выводящих данные объектов различных видов.

Пример:

Ширина =

   Метаданные.Документ(1).РеквизитШапки(2).ДлинаПредставленияЗначения(5, 50, 30)







Перейти  к оглавлению: Описание встроенного языка