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

А у документа Закупка товаров – прототип Документы.

У объектов одного прототипа похожие свойств и методы. Кроме принадлежности к прототипу свойства и методы объектов метаданных определяются дополнительными характеристиками. Например, включена у справочников иерархия или нет.
В процессе конфигурирования разработчик настраивает свойства объектов метаданных. Например, длина кода справочника 1С это свойство. В учебной конфигурации у справочника Номенклатура длина кода 9.

А у справочника Валюта – 3.

На свойства объекта метаданных можно посмотреть, как в редакторе объекта. Редактор открывается при двойном клике мышкой по объекту. Так и в палитре свойств объекта. Для того, чтобы открыть палитру свойств, следует выделить объект, вызвать контекстное меню и выполнить команду «Свойства».

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

К свойствам объектов метаданных можно обратиться при помощи программного кода. Сделать это можно воспользовавшись свойством глобального контекста, которое так и называется Метаданные.
Это свойство является коллекцией объектов метаданных и включает в себя все метаданные конфигурации 1С, которые даже не созданы.

У свойства Метаданные имеются свойства, которые отображают прототипы объектов. Это тоже коллекции. Например, для справочников имеется свое свойство.

Которое, также является коллекцией.

В этой коллекции содержатся все объекты метаданных, которые входят в ветку Справочники дерева конфигурации 1С.
Мы можем прочитать свойство того или иного объекта метаданных. Например, длину кода у справочника Валюта.

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

Обратите внимание, что этот код должен выполняться в серверном контексте (или в клиентском на толстом клиенте), поскольку у свойства Метаданные доступность Сервер, Толстый клиент и т.д.

Кроме свойств объекта можно получить доступ к свойствам реквизитов при помощи всё того же свойства глобального контекста Метаданные. Для того, чтобы обратиться к реквизитам объекта, необходимо получить доступ к этому объекту посредством свойства глобального контекста Метаданные, а потом уже обратиться к свойству Реквизиты полученного объекта.
Например, к реквизитам конкурентного справочника можно обратиться так:
А к реквизитам конкурентного документа – так:
Получаемые реквизиты являются коллекцией, которая содержит все реквизиты объекта. Её также можно обойти циклом и прочитать тот или иной реквизит.
Результат работы этого кода в учебной конфигурации будет следующим.

Некоторые свойства объектов имеют перечисленный тип, т.е. перечисление определенных значений. Например, у документов имеется свойство Проведение. У этого свойства есть несколько значений: Разрешить и Запретить. Свойство Проведение и является перечисленным типом.

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

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

Как вы видите, при помощи свойства глобального контекста Метаданные можно получать очень подробную информацию об объектах конфигурации, эта информация может вам пригодиться при написании различных алгоритмов.
Читайте также по теме:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
1.3. Понятие «метаданные»
Под объектом метаданных в системе 1С предприятие понимается формальное описание группы понятий предметной области со сходными характеристиками и одинаковым предназначением.
Пример. Объект метаданных «Справочник» в системе 1С Предприятие предназначен для ведения списков однородных элементов данных — справочников, картотек, нормативных сборников и тому подобное. Использование объектов метаданных этого типа позволяет организовать ведение любых справочников, необходимых для автоматизации деятельности предприятия.
Реализованный в системе 1С:Предприятие при помощи объекта метаданных компьютерный аналог конкретного понятия предметной области будем называть объектом данных.
Свойства объекта метаданных
Каждый объект метаданных обладает уникальным набором свойств. Этот набор описан на уровне системы и не может быть изменен в процессе настройки конфигурации задачи. Набор свойств объекта метаданных определяется, в основном, его назначением в системе 1С:Предприятие.
Главным свойством любого объекта метаданных является идентификатор — краткое наименование объекта метаданных. При создании нового объекта метаданных ему автоматически присваивается условный идентификатор, состоящий из слова «Новый» и цифры. Этот идентификатор можно изменить в процессе редактирования свойств объекта метаданных, при этом система отслеживает уникальность идентификаторов. Однако идентификатор не может быть удален без удаления самого объекта метаданных.
Некоторые свойства из всего набора свойств, присущих объекту метаданных, доступны для редактирования и могут быть так или иначе изменены в процессе конфигурирования системы 1С:Предприятие. Характер изменений и их пределы также задаются на уровне системы. Целенаправленным изменением свойств объекта метаданных специалист, осуществляющий конфигурирование системы, может добиться требуемого поведения объекта при работе системы. Однако такие изменения не затрагивают сущности объекта и не позволяют добиться от него действий, не свойственных объектам данного типа.
Форма объекта метаданных
Большинство объектов метаданных в системе 1С:Предприятие могут иметь визуальное представление. В самом общем случае визуальное представление состоит из следующих частей:
экранный диалог, используемый для ввода и редактирования информации, хранящейся в объекте метаданных;
печатная форма объекта метаданных (печатных форм может быть несколько);
модуль формы — программа на встроенном языке системы 1С:Предприятие. Как правило, модуль формы содержит алгоритм построения печатной формы объекта метаданных, а также может выполнять обработку вводимой в диалог информации для целей входного контроля, выполнения расчетов и т. п.
Совокупность экранного диалога, печатной формы и модуля называется формой.
Для разработки форм в Конфигураторе применяется комплексный редактор форм, позволяющий редактировать все компоненты формы во взаимосвязи.
Агрегатные объекты метаданных
Объекты метаданных в системе 1С:Предприятие могут быть как независимыми, так и подчиняться друг другу.
Например, независимым объектом метаданных является константа. Константа самодостаточна: она может содержать какое-либо значение, и этим полностью исчерпывается ее назначение в системе 1С:Предприятие. Более того, константа может присутствовать в системе и даже может содержать какое-либо значение, но при этом не использоваться другими объектами метаданных. Правда, на практике такое встречается редко.
В отличие от константы объект метаданных «Реквизит справочника», который содержит какую-либо дополнительную информацию об элементе справочника, может существовать только в составе объекта метаданных «Справочник». Сам по себе, отдельно от справочника, реквизит справочника никогда не используется. Объект метаданных «Справочник» может вообще не содержать объектов типа «Реквизит справочника», но
если такие объекты существуют, то они «живут» только внутри справочника.
Объекты метаданных, которые могут иметь в своем составе подчиненные объекты, называются агрегатными объектами метаданных.
Основные виды объектов метаданных приведены выше при описании компонентной структуры системы 1С:Предприятие.
Типизированные и типообразующие объекты метаданных
Одним из свойств объекта метаданных является тип значения, которое может принимать объект. Тип значения определяет, какого рода информацию может содержать объект метаданных. Тип значения объекта метаданных назначается при создании или редактировании свойств объекта в процессе настройки конфигурации задачи.
Свойство «Тип значения» существует не у всех объектов метаданных: как правило, агрегатные объекты метаданных — типа «Справочник», «Документ», «Журналы» и тому подобные — не обладают этим свойством, так как содержат «комплексную» информацию, то есть хранят одновременно данные разных типов.
Объекты метаданных, для которых может быть указан тип информации, содержащейся в объекте, в системе 1С:Предприятие называются типизированными объектами метаданных.
Типы значений, которые может принимать объект метаданных, можно разделить на 2 группы.
Первую группу составляют базовые типы значений: «число», «строка» и «дата». Соответственно, информация, хранящаяся в объекте метаданных, может быть числом, произвольной строкой символов или датой,
Кроме этого, некоторые объекты метаданных системы 1С:Предприятие также могут образовывать типы значений.
Например, константе может быть назначен тип значения «Документ». В этом случае значение константы будет представлять собой ссылку на один из существующих в системе 1С:Предприятие документов.
Объекты метаданных, которые могут образовывать типы значений других объектов метаданных, в системе 1С:Предприятие называются типообразующими объектами метаданных. Такими объектами в системе 1С:Предприятие являются:
Получение метаданных объектов
1. В тех случаях, когда известен тип объекта метаданного (справочник, документ, и т.п.), то получение метаданных объекта конфигурации следует выполнять с помощью метода Метаданные этого объекта (или ссылки для объектов ссылочного типа), а не путем обращения к свойству глобального контекста Метаданные, так как второй способ существенно более медленный.
2. В тех случаях, когда тип объекта метаданного заранее неизвестен, рекомендуется воспользоваться методом НайтиПоТипу, например:
Другие материалы по теме:
Нас находят: Какие виды объекта метаданных существуют в программе «1С:Бухгалтерия 8 2», 1с метаданные, Текущий объект метаданных в 1С 8 2, описание метаданных 1с 8 2, Метаданные НайтиПоТипу, 1с вид документа из объекта Метаданные Имя(), работа с метаданными в 1с 8 2, метаданные по имени 1с 8, 1С запрос метаданные обращение к табличной части, 1с запрос обращение к табличной части метаданных
Что такое метаданные в 1с
Что такое объект Метаданные и зачем он может пригодиться?
Объект Метаданные предназначен для доступа к объектам конфигурации, объявленным при ее создании (т.е. в Конфигураторе). Одна из задач, где широко используется метаданные — универсальные обработки, где заранее не известно, с какими видами объектов придется работать. Другая, не менее часто возникающая задача, — универсальная обработка атрибутов похожих но, тем не менее, различных видов объектов (например — одинаковая обработка табличных частей документов, в одном из которых есть "лишнее" поле).
К каким объектам мы можем доступиться, используя Метаданные?
Практически ко всем, объявленным в Конфигураторе: Константа, Справочник, Документ, Журнал, ПланСчетов и т.д.
Синтаксис использования объекта следующий:
Какой конкретно случай использовать для доступа к объектам — смотрите в документации.
Как видите — доступ к количеству несколько отличается от общепринятого (если такое слово применимо к 1С) получения количества других объектов.
Для проверки существования реквизита с заранее определенным идентификатором используется метод Выбран():
Объекты метаданных имеют атрибуты, позволяющие определить подробные их характеристики. К таким атрибутам относятся стандартные (Идентификатор, Тип, Вид, Длина, Точность, . ) или специфические для конкретных объектов (ДлинаКода, ДлинаНаименования, ТипНомера, . ).
Приведем простой пример получения списка всех справочников:
Если я еще не убедил вас в полезности этого объекта — посмотрите, насколько широко он используется в стандартных конфигурациях (только "для Украины"? Или во всех? не знаю. ). Это и "Обработка документов", и функции глЕстьРеквизитШапки, глЕстьРеквизитТабличнойЧасти и другие фичи.
Напоследок рассмотрим более интересный (с практической точки зрения) пример: создание из существующего документа нового, возможно — другого вида.
Процедура КопироватьДокумент(ИсхДок, ВидДок, Сп)
// ИсхДок — исходный документ
// ВидДок — вид нового документа
// Сп — список соответствий реквизитов:
// Значение — реквизит в исходном документе
// Строка — реквизит нового документа
Д=СоздатьОбъект("Документ."+ВидДок);
Д.Новый();
МетаДок=Метаданные.Документ(ВидДок);
// Копируем общие реквизиты — для них соответствий не нужно
Для И1=1 По Метаданные.ОбщийРеквизитДокумента() Цикл
ИдРекв=Метаданные.ОбщийРеквизитДокумента(И1).Идентификатор;
// Идентификатор guid уникальный — не копируем!
Если НРег(ИдРекв)="guid" Тогда Продолжить; КонецЕсли;
Д.УстановитьАтрибут(ИдРекв, ИсхДок.ПолучитьАтрибут(ИдРекв));
КонецЦикла;
// Копируем реквизиты шапки. Несопоставленные — пропускаем
Для И1=1 По МетаДок.РеквизитШапки() Цикл
ИдРекв=МетаДок.РеквизитШапки(И1).Идентификатор;
ИдИсх=Сп.Получить(ИдРекв);
Если ПустоеЗначение(ИдИсх)=1 Тогда Продолжить; КонецЕсли;
Д.УстановитьАтрибут(ИдРекв, ИсхДок.ПолучитьАтрибут(ИдИсх));
КонецЦикла;
// Построчно копируем реквизиты табличной части.
// Как и для реквизитов шапки несопоставленные — пропускаем
ИсхДок.ВыбратьСтроки();
Пока ИсхДок.ПолучитьСтроку()=1 Цикл
Д.НоваяСтрока();
Для И1=1 По МетаДок.РеквизитТабличнойЧасти() Цикл
ИдРекв=МетаДок.РеквизитТабличнойЧасти(И1).Идентификатор;
ИдИсх=Сп.Получить(ИдРекв);
Если ПустоеЗначение(ИдИсх)=1 Тогда Продолжить; КонецЕсли;
Д.УстановитьАтрибут(ИдРекв, ИсхДок.ПолучитьАтрибут(ИдИсх));
КонецЦикла;
КонецЦикла;
// Документ скопирован. Запишем и покажем
Д.Записать();
Конт="";
ОткрытьФорму(Д.ТекущийДокумент(), Конт, );
КонецПроцедуры