Опубликовано: 27.01.2023

Объекты метаданных компоненты «Оперативный учет»

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

Доступ к объектам метаданных предоставляется посредством глобального свойства Метаданные (англоязычный синоним — 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. Значение устанавливается в окне свойств реквизита на вкладке «Дополнительные» (см. рис. выше).

Другие статьи по схожей тематике