Как я уже писал ранее, глобальный объект "
Метаданные"
является вспомогательным объектом системы, предназначенным для доступа к свойствам структуры метаданных конфигурации. Возможность доступа к метаданным средствами встроенного языка является дополнительной возможностью и применяется в специальных случаях, например, для создания универсальных отчётов или обработок, которые могут обращаться к объектам различных видов (документам, справочникам и т.п.). В основных алгоритмах конфигурации данная возможность, как правило, не используется.
Доступ к объектам метаданных предоставляется посредством глобального свойства Метаданные
(англоязычный синоним — Metadata
). Например:
Тип = Метаданные.Регистр("ПартииНаличие").ТипРегистра;
Значения, имеющие тип "
Метаданные"
, можно напрямую использовать в качестве параметров в тех методах, где требуется строковый идентификатор метаданного, например, в методе справочника Вид()
. Кроме того, объекты типа "
Метаданные"
можно использовать в качестве параметров, в тех методах, где требуется указать тип данных строкой, например, в методе ВвестиЗначение()
, но передавать можно только значения метаданных, описывающие типизированные объекты.
В предыдущих статьях были рассмотрены особенности работы с общими для всех конфигураций объектами метаданных (см. статью), а также с объектами метаданных компоненты «Бухгалтерский учет» (см. статью). Здесь же речь пойдёт о работе с объектами метаданных, присутствующими только в составе компоненты «Оперативный учет».
Объект метаданных "
Регистр"
Получить общее количество объектов типа "
Регистр"
в коллекции позволяет метод Регистр()
, записанный без параметров. Для получения же доступа к атрибутам конкретного регистра используется этот же метод (но уже с указанным параметром) и имя атрибута, записанное через точку после записи вызова метода:
Метаданные.Регистр(<Идентификатор>).<ИмяАтрибута>
где
- <Идентификатор> — идентификатор конкретного регистра или его порядковый номер в структуре метаданных;
- <ИмяАтрибута> — имя конкретного атрибута, к которому необходимо получить доступ.
Пример организации опроса атрибутов регистров по номеру регистра в структуре метаданных:
// Выведем на экран сведения о регистрах конфигурации Для i=1 По Метаданные.Регистр() Цикл Сообщить("===============Регистр=================="); Сообщить("Идентификатор: " + Метаданные.Регистр(i).Идентификатор); Сообщить("Синоним: " + Метаданные.Регистр(i).Синоним); Сообщить("Комментарий: " + Метаданные.Регистр(i).Комментарий); Сообщить("Тип регистра: " + Метаданные.Регистр(i).ТипРегистра); Сообщить("Периодичность: " + Метаданные.Регистр(i).ПериодичностьРегистра); Сообщить("Быстрая обработка движений: " + Метаданные.Регистр(i).БыстраяОбработкаДвижений); КонецЦикла;
Примечание: При работе с объектом метаданных "
Регистр"
могут также использоваться дополнительные методы, описанные в предыдущей статье, например, метод Выбран()
:
Для i=1 По Метаданные.Регистр() Цикл Если Метаданные.Регистр(i).Выбран() = 1 Тогда . . . КонецЕсли; КонецЦикла;
Объект метаданных "
Регистр"
имеет следующие атрибуты:
Идентификатор
— атрибут, содержащий идентификатор регистра. Установить значение данного атрибута можно в окне редактирования конкретного регистра (см. рис. ниже) в поле «Идентификатор».
Синоним
— атрибут, содержащий синоним идентификатора регистра. Установить значение данного атрибута можно в окне редактирования конкретного регистра (см. рис. выше) в поле «Синоним».
Комментарий
— атрибут, содержащий комментарий (описание) к регистру. Установить значение данного атрибута можно в окне редактирования конкретного регистра (см. рис. выше) в поле «Комментарий».
ТипРегистра
— атрибут, содержащий информацию о типе регистра. Тип значения атрибута строковый. Возможные значения: "
Остатки"
или "
Обороты"
. Установить значение атрибута можно в окне редактирования конкретного регистра переключателем «Тип регистра» (см. рис. выше).
ПериодичностьРегистра
— атрибут, содержащий информацию о периодичности хранения оборотов для оборотного регистра. Тип значения атрибута строковый. Возможные значения: "
День"
, "
Неделя"
, "
Декада"
, "
Месяц"
, "
Квартал"
или "
Год"
. Установить значение атрибута можно в окне редактирования конкретного регистра в поле «Периодичность» (см. рис. выше).
БыстраяОбработкаДвижений
— атрибут, содержащий признак установленного режима быстрой обработки движений для регистра. Возможные значения: 0 или 1. Установить значение атрибута можно в окне редактирования конкретного регистра путём включения соответствующей опции (см. рис. выше).
МиграцияЗапрещена
— атрибут, содержащий признак запрета миграции данного регистра в другие базы. Возможные значения: 0 или 1. Использование данного атрибута имеет смысл только при установленной компоненте УРБД («Управление распределёнными базами данных»). При этом в окне свойств регистра (см. рис. ниже) появляется дополнительная вкладка «Миграция», на которой и отображается соответствующий чекбокс.
Работа с измерениями регистра
Получить общее количество имеющихся измерений регистра и организовать цикл по их перебору можно с помощью метода Измерение()
, записываемого без параметров. Для получения же доступа к атрибутам конкретного измерения конкретного регистра используется этот же метод (но уже с указанным параметром) и имя атрибута, записанное через точку после записи вызова метода:
Метаданные.Регистр(<ИдентификаторРегистра>).Измерение(<ИдентификаторИзмерения>).<ИмяАтрибута>
где
- <ИдентификаторРегистра> — идентификатор конкретного регистра или его порядковый номер в структуре метаданных;
- <ИдентификаторИзмерения> — идентификатор конкретного измерения или его порядковый номер в структуре метаданных;
- <ИмяАтрибута> — имя конкретного атрибута, к которому необходимо получить доступ.
Пример организации перебора измерений регистра по их номеру в структуре метаданных:
// Выведем список измерений регистра Для i=1 По Метаданные.Регистр(<Идентификатор>).Измерение() Цикл Сообщить(Метаданные.Регистр(<Идентификатор>).Измерение(i).Идентификатор); КонецЦикла;
здесь <Идентификатор> — идентификатор регистра, измерения которого перебираются в цикле.
Измерения регистра имеют следующие атрибуты:
Идентификатор
— атрибут, содержащий идентификатор измерения. Значение атрибута устанавливается в окне свойств измерения на вкладке «Общие».
Синоним
— атрибут, содержащий синоним идентификатора измерения. Значение атрибута устанавливается в окне свойств измерения на вкладке «Общие» (см. рис. выше).
Комментарий
— атрибут, содержащий комментарий к измерению регистра. Значение атрибута устанавливается в окне свойств измерения на вкладке «Общие» (см. рис. выше).
Тип
— атрибут, содержащий информацию о типе значения измерения регистра. Тип значения атрибута строковый. Возможные значения: "
Дата"
, "
Строка"
, "
Число"
, "
Справочник"
и т.д. Установить значение атрибута можно в окне свойств измерения на вкладке «Общие» (см. рис. выше).
Вид
— атрибут, содержащий идентификатор объекта метаданных, определяющего тип значения измерения. Используется данный атрибут только в том случае, если в качестве типа значения измерения регистра установлен конкретный справочник, документ, перечисление и т.п. Установить значение атрибута можно в окне свойств измерения на вкладке «Общие» (см. рис. выше).
Длина
— атрибут, содержащий информацию о максимально допустимом количестве символов в значении измерения. Использование данного атрибута имеет смысл только в том случае, если значение измерения имеет тип "
Строка"
или "
Число"
. Установить значение атрибута можно в окне свойств измерения на вкладке «Общие» (см. рис. выше).
Точность
— атрибут, содержащий информацию о максимальном количестве цифр после десятичной точки в значении измерения. Использование атрибута имеет смысл только в том случае, если значение измерения имеет тип "
Число"
. Значение атрибута устанавливается в окне свойств измерения на вкладке «Общие» (см. рис. выше).
НеОтрицательный
— неиспользуемый атрибут.
РазделятьТриады
— атрибут, содержащий признак разделения триад цифр при визуальном отображении значения измерения. Возможные значения атрибута: 0 или 1. Значение устанавливается в окне свойств измерения на вкладке «Дополнительные».
ОтборДвижений
— атрибут, содержащий признак установки отбора движений для регистра по данному реквизиту (Установка отбора движений фактически означает создание дополнительного индекса к таблице движений регистра). Возможные значения атрибута: 0 или 1. Значение устанавливается в окне свойств измерения на вкладке «Дополнительные» (см. рис. выше).
ОтборИтогов
— атрибут, содержащий признак установки отбора итогов для регистра по данному реквизиту (Установка отбора итогов фактически означает создание дополнительного индекса к таблице итогов регистра). Возможные значения атрибута: 0 или 1. Значение устанавливается в окне свойств измерения на вкладке «Дополнительные» (см. рис. выше).
Работа с ресурсами регистра
Получить общее количество имеющихся ресурсов регистра и организовать цикл по их перебору можно с помощью метода Ресурс()
, записываемого без параметров. Для получения же доступа к атрибутам конкретного ресурса конкретного регистра используется этот же метод (но уже с указанным параметром) и имя атрибута, записанное через точку после записи вызова метода:
Метаданные.Регистр(<ИдентификаторРегистра>).Ресурс(<ИдентификаторРесурса>).<ИмяАтрибута>
где
- <ИдентификаторРегистра> — идентификатор конкретного регистра или его порядковый номер в структуре метаданных;
- <ИдентификаторРесурса> — идентификатор конкретного ресурса или его порядковый номер в структуре метаданных;
- <ИмяАтрибута> — имя конкретного атрибута, к которому необходимо получить доступ.
Пример организации перебора ресурсов регистра по их номеру в структуре метаданных:
// Выведем список ресурсов регистра Для i=1 По Метаданные.Регистр(<Идентификатор>).Ресурс() Цикл Сообщить(Метаданные.Регистр(<Идентификатор>).Ресурс(i).Идентификатор); КонецЦикла;
здесь <Идентификатор> — идентификатор регистра, ресурсы которого перебираются в цикле.
Ресурсы регистра имеют следующие атрибуты:
Идентификатор
— атрибут, содержащий идентификатор ресурса. Значение атрибута устанавливается в окне свойств ресурса на вкладке «Общие».
Синоним
— атрибут, содержащий синоним идентификатора ресурса. Значение атрибута устанавливается в окне свойств ресурса на вкладке «Общие» (см. рис. выше).
Комментарий
— атрибут, содержащий комментарий к ресурсу регистра. Значение атрибута устанавливается в окне свойств ресурса на вкладке «Общие» (см. рис. выше).
Тип
— атрибут, содержащий информацию о типе значения ресурса регистра. Тип значения атрибута строковый. Возможное значение только одно — "
Число"
.
Вид
— неиспользуемый атрибут.
Длина
— атрибут, содержащий информацию о максимально допустимом количестве символов в значении ресурса. Установить значение атрибута можно в окне свойств ресурса на вкладке «Общие» (см. рис. выше).
Точность
— атрибут, содержащий информацию о максимальном количестве цифр после десятичной точки в значении ресурса. Значение атрибута устанавливается в окне свойств ресурса на вкладке «Общие» (см. рис. выше).
НеОтрицательный
— неиспользуемый атрибут.
РазделятьТриады
— атрибут, содержащий признак разделения триад цифр при визуальном отображении значения ресурса. Возможные значения атрибута: 0 или 1. Значение устанавливается в окне свойств ресурса на вкладке «Дополнительные».
Работа с реквизитами регистра
Получить общее количество имеющихся реквизитов регистра и организовать цикл по их перебору можно с помощью метода Реквизит()
, записываемого без параметров. Для получения же доступа к атрибутам конкретного реквизита конкретного регистра используется этот же метод (но уже с указанным параметром) и имя атрибута, записанное через точку после записи вызова метода:
Метаданные.Регистр(<ИдентификаторРегистра>).Реквизит(<ИдентификаторРеквизита>).<ИмяАтрибута>
где
- <ИдентификаторРегистра> — идентификатор конкретного регистра или его порядковый номер в структуре метаданных;
- <ИдентификаторРеквизита> — идентификатор конкретного реквизита или его порядковый номер в структуре метаданных;
- <ИмяАтрибута> — имя конкретного атрибута, к которому необходимо получить доступ.
Пример организации перебора реквизитов регистра по их номеру в структуре метаданных:
// Выведем список реквизитов регистра Для i=1 По Метаданные.Регистр(<Идентификатор>).Реквизит() Цикл Сообщить(Метаданные.Регистр(<Идентификатор>).Реквизит(i).Идентификатор); КонецЦикла;
здесь <Идентификатор> — идентификатор регистра, реквизиты которого перебираются в цикле.
Реквизиты регистра имеют следующие атрибуты:
Идентификатор
— атрибут, содержащий идентификатор реквизита. Значение атрибута устанавливается в окне свойств реквизита на вкладке «Общие».
Синоним
— атрибут, содержащий синоним идентификатора реквизита. Значение атрибута устанавливается в окне свойств реквизита на вкладке «Общие» (см. рис. выше).
Комментарий
— атрибут, содержащий комментарий к реквизиту регистра. Значение атрибута устанавливается в окне свойств реквизита на вкладке «Общие» (см. рис. выше).
Тип
— атрибут, содержащий информацию о типе значения реквизита регистра. Тип значения атрибута строковый. Возможные значения: "
Дата"
, "
Строка"
, "
Число"
, "
Справочник"
и т.д. Установить значение атрибута можно в окне свойств реквизита на вкладке «Общие» (см. рис. выше).
Вид
— атрибут, содержащий идентификатор объекта метаданных, определяющего тип значения реквизита. Используется данный атрибут только в том случае, если в качестве типа значения реквизита регистра установлен конкретный справочник, документ, перечисление и т.п. Установить значение атрибута можно в окне свойств реквизита на вкладке «Общие» (см. рис. выше).
Длина
— атрибут, содержащий информацию о максимально допустимом количестве символов в значении реквизита. Использование данного атрибута имеет смысл только в том случае, если значение реквизита имеет тип "
Строка"
или "
Число"
. Установить значение атрибута можно в окне свойств реквизита на вкладке «Общие» (см. рис. выше).
Точность
— атрибут, содержащий информацию о максимальном количестве цифр после десятичной точки в значении реквизита. Использование атрибута имеет смысл только в том случае, если значение реквизита имеет тип "
Число"
. Значение атрибута устанавливается в окне свойств реквизита на вкладке «Общие» (см. рис. выше).
РазделятьТриады
— атрибут, содержащий признак разделения триад цифр при визуальном отображении значения реквизита. Возможные значения атрибута: 0 или 1. Значение устанавливается в окне свойств реквизита на вкладке «Дополнительные».
НеОтрицательный
— атрибут, содержащий признак запрета отрицательных значений. Возможные значения атрибута: 1 — отрицательные значения запрещены; 0 — отрицательные значения не запрещены. Использование атрибута имеет смысл только в том случае, если реквизит имеет тип "
Число"
. Установить значение данного атрибута можно в окне свойств конкретного реквизита на вкладке «Дополнительные» (см. рис. выше).
ОтборДвижений
— атрибут, содержащий признак установленного отбора движений по значению реквизита (фактически означает дополнительный индекс по таблице движений регистра). Возможные значения атрибута: 0 или 1. Значение устанавливается в окне свойств реквизита на вкладке «Дополнительные» (см. рис. выше).
Другие статьи по схожей тематике