Метаданные 1С

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

В учебной конфигурации, справочник Номенклатура – это объект метаданных. Документ Закупка товаров – тоже объект метаданных.

Все объекты метаданных 1С перечислены в дереве конфигурации.

Метаданные 1С

У объектов метаданных имеются прототипы. Визуально в дереве конфигурации прототипы представлены в виде веток дерева.

Например, у справочника Номенклатура прототип Справочники.

Прототип объекта метаданных 1С

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

Прототип объекта метаданных 1С

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

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

Свойство объекта метаданных 1С

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

Свойство объекта метаданных 1С

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

Свойство объекта метаданных 1С

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

Свойство объекта метаданных 1С

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

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

Метаданные 1С

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

Метаданные 1С

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

Метаданные 1С

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

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

Метаданные 1С

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

Например, обойдем циклом справочники и выведем имя справочника, синоним и длину кода.

Для Каждого стрСправочника из Метаданные.Справочники Цикл 
		
	Сообщить("Имя " + стрСправочника.Имя + 
			 ", синоним: " + стрСправочника.Синоним + 
			 " (длина кода: " + стрСправочника.ДлинаКода + ")");
		
КонецЦикла;	

В учебной конфигурации, у этого кода будет следующий результат.

Метаданные 1С

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

Метаданные 1С

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

Например, к реквизитам конкурентного справочника можно обратиться так:

РеквизитыСправочника = Метаданные.Справочники.Контрагенты.Реквизиты;

А к реквизитам конкурентного документа – так:

РеквизитыДокумента = Метаданные.Документы.ЗакупкаТоваров.Реквизиты;

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

РеквизитыДокумента = Метаданные.Документы.ЗакупкаТоваров.Реквизиты;
	
Сообщить("Выводим реквизиты документа " + Метаданные.Документы.ЗакупкаТоваров.Синоним); 
	
Для Каждого стрРеквизит из РеквизитыДокумента Цикл 
		
	Сообщить("	Имя: " + стрРеквизит.Имя + ", синоним " + стрРеквизит.Синоним);
		
КонецЦикла;	

Результат работы этого кода в учебной конфигурации будет следующим.

Метаданные 1С

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

Перечисленный тип 1С

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

Перечисленный тип 1С

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

Для Каждого стрДокумент Из Метаданные.Документы Цикл 
		
	Сообщить("Выводим " + стрДокумент.Представление() + "(" + стрДокумент.ПолноеИмя() + ")");
		
	Если СтрДокумент.Проведение = Метаданные.СвойстваОбъектов.Проведение.Разрешить Тогда 
		Сообщить(Символы.Таб + "Документ можно проводить");
	ИначеЕсли СтрДокумент.Проведение = Метаданные.СвойстваОбъектов.Проведение.Запретить Тогда  
		Сообщить(Символы.Таб + "Документ нельзя проводить");
	КонецЕсли;	
		
КонецЦикла;

Перечисленный тип 1С

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

Читайте также по теме:

Объект в 1С

Ссылка в 1С

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

Основы разработки в 1С такси
  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму
.

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

четырнадцать − семь =