1с 8 метаданные реквизиты найти. Работа с метаданными. Обход метаданных в цикле

Работа с метаданными. Метаданные – это что? Обход метаданных в цикле

1с 8 метаданные реквизиты найти. Работа с метаданными. Обход метаданных в цикле

Метаданные 1С – это список справочников, документов, их реквизитов и прочего, составляющего конфигурацию. Список метаданных 1С правится программистов в конфигураторе в окне конфигурации.

Из программы на языке 1С доступен список метаданных 1С и их свойства.

Это удобно, когда требуется получить список документов в конфигурации или отработать все реквизиты документа.

Рассмотрим, как работать с метаданными 1С конфигурации из языка 1С.

Метаданные 1С конфигурации

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

Пример – создадим список всех документов конфигурации для того, чтобы пользователь мог выбрать нужный документ из списка:
спДокументовКонфигурации = Новый СписокЗначений(); //сюда будем сохранять список

//Метаданные – глобальная переменная, которая дает доступ ко всем метаданным 1С конфигурации//Метаданные.Документы – коллекция документов конфигурацииДля каждого Документ из Метаданные.Документы Цикл //Документ – это метаданные 1С документа (каждого, так как мы обходим их в цикле) //.

Имя – наименование документа так, как оно задано в конфигурации //.Синоним – “человеческое” наименование документа, которое отображается пользователю //список значений может хранить значение (имя документа) и “представление для пользователя” (как раз – синоним документа) спДокументовКонфигурации.Добавить(Документ.

Имя, Документ.Синоним);

КонецЦикла;

//даем возможность пользователю выбрать из списка нужный документ
элДокумент = спДокументовКонфигурации.ВыбратьЭлемент();

//если пользователь нажал “Отмена”, то результатом выбора будет значение НЕОПРЕДЕЛЕНО, иначе результатом будет – выбранный элементЕсли элДокумент Неопределено Тогда //в.

Значение списка значений мы записывали имя документа “как в конфигурации” //создадим новый документ с таким именем, напомним – к документам можно обращаться Документы.ИмяДокумента или Документы[ИмяДокумента] обДокумент = Документы[элДокумент.Значение].СоздатьДокумент(); //ДокументОбъект.

ПолучитьФорму() – возвращает форму с указанным именем, а если имя не указано – то форму “по-умолчанию” обДокумент.ПолучитьФорму().Открыть();

КонецЕсли;

Пример – для общего журнала документов (отображающего все виды документов) создадим запрос, который вернет список всех документов:

Метаданные 1С объекта

Большинство объектов 1С, сохраняемых в базе данных (справочники, документы и т.д.) представлены ссылками и объектами (подробнее см. «Ссылки и объекты»).

У ссылок и объектов есть метод.Метаданные(), который позволяет выйти на метаданные 1С этого объекта.

Пример – проверка на наличие реквизитов с типом «Справочник.Организация» в документе и обнуление значения этих реквизитов: //ДокументОбъект – документ, полученный на изменение или создание//аналогичным образом можно работать со ссылками, например: ДокументСсылка = Документ.ИмяДокумента.ПустаяСсылка().Метаданные()

ДокументОбъект = Документы.ПоступлениеТоваров.СоздатьДокумент();

//цикл по реквизитамДля каждого Реквизит из ДокументОбъект.Метаданные().Реквизиты Цикл //у каждого реквизита может быть как один, так и несколько типов, подробнее см.

“ОписаниеТипов” //проверяем по каждому типу – тот ли это нужный нам? //обнуляем реквизит с этим именем в документе //для “обнуления” можно приравнивать его к Неопределено, //по факту значение будет установлено не Неопределено, а “пустое значение” типа реквизита //Неопределено только если у реквизита несколько типов ДокументОбъект[Реквизит.Имя] = Неопределено; КонецЕсли; КонецЦикла;

КонецЦикла;

//цикл по табличным частямДля каждого ТабЧасть из ДокументОбъект.Метаданные().ТабличныеЧасти Цикл //в табличной части тоже реквизиты (колонки таб.части) Для каждого Реквизит из ТабЧасть.Реквизиты Цикл //здесь аналогично мТипов = Реквизит.Тип.

Типы(); Для каждого Тип из мТипов Цикл Если Тип = Тип(“СправочникСсылка.Организации”) Тогда //так как это таб.часть, то мы должны пройтись по всем строкам этой тач. части Для каждого Строка из ДокументОбъект[ТабЧасть.Имя] Цикл Строка[Реквизит.

Имя] = Неопределено; КонецЦикла; КонецЕсли; КонецЦикла; КонецЦикла;

КонецЦикла; 

Существует множество баз данных. Чтобы понять, что они собой представляют, необходимо рассматривать их содержимое. Но есть одна маленькая полезная деталь – метаданные. Это то, что обобщает всю имеющуюся информацию. Для чего они были разработаны и зачем используются?

Что такое метаданные?

Следует отметить, что единой формулировки данного понятия не существует. Итак, метаданные – это общее название информации о

В основном используется четыре обозначения данного термина:

  1. Могут подразумевать субканальную информацию про используемые данные.
  2. Так называют характеристики, описывающие сущность. Они необходимы, чтобы искать, идентифицировать, оценивать и управлять значениями в БД. Ещё таким образом называют важный набор определённого количества структурированных описаний, предоставленных в допустимой форме и доступных в явном виде, благодаря чему можно найти необходимый объект. Подобная формулировка применяется в случаях, когда необходимо искать сущности, ресурсы и объекты.
  3. Данные из общей формальной системы, которые описывают свойства конкретного хранилища информации.
  4. Информация про характеристики веб-страницы (когда была создана, кто её автор).

Различие между данными и метаданными

Как их отличают? Дело в том, что провести однозначное разделение обычно невозможно. Почему? Давайте рассмотрим более детально на примере:

  1. Что-то может выступать в обеих ролях. Например, заголовок статьи может рассматриваться и как элемент метаданных, и в качестве информации, что передаётся читателю.
  2. Возможность меняться местами. Допустим, кто-то написал стихотворное произведение. Оно представляет собой данные. Композитор, опираясь на слова, создал музыкальную композицию и прикрепил данный текст. В таком случае он превращается в метаданные. Всё зависит от использования. Вообще, подобные случаи возможны из-за восприятия определённой точки зрения на основании своих суждений (тут играет роль пространство имён и система отсчёта).
  3. Возможность создания мета-…-метаданных ориентируясь на аксиому выбора. Это вытекает из того, что почти на любую информацию может быть создана своя система характеристик.

Метаданные файлов в компьютерах

Своё применение они нашли и в автоматизированных рабочих потоках. Если какая-то программа умеет работать с содержимым и то они могут быть преобразованы в другой тип информации, что позволяет освобождать пользователей от множества неудобных и рутинных действий.

Примером могут служить разработки, которые позволяют просматривать графические изображения с разными расширениями. Также можно вспомнить и о различных записях звука, фильмов и многих других вещах.

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

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

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

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

Классификация метаданных

Как их различают? В основном классификация проводится по одному из двух принципов:

  1. . Метаданные используются, чтобы описывать файл, ресурс или его содержимое (к примеру, заголовок – «как готовить картошку»).
  2. По принадлежности. Метаданные могу использовать, чтобы информировать о чем-то целом или его составляющей. Так, название фильма относится ко всему нему, а описание эпизода информирует только об определенной части.

Если метаданные – это совокупность зависимостей от возможностей логического вывода, то в таком случае они делятся на 3 вида:

  1. «Сырые» данные. Основа информационного обеспечения.
  2. Метаданные, описывающие содержимое. Они, в свою очередь, тоже используются.
  3. Метаданные, с помощью которых можно сделать логический вывод.

Такие типы метаданных существуют.

Три наиболее востребованных класса

Предлагаем ознакомиться с тремя классами, которые сейчас широко применяются:

  1. Внутренние метаданные. Это информация, которая описывает составные части вещей, их структуру и что она собой представляет. В качестве примера можно привести размер и формат файла.
  2. Административные метаданные. Требуются для процессов обработки информации, а также для назначения вещи. Например, кто автор, редактор, когда был создан файл.
  3. Описательные метаданные. Используются, чтобы охарактеризовать природу файла и его признаки (к какой категории относится, с чем ещё связан).

Формат метаданных

Так называют стандарт, который используется, чтобы проводить формальное описание какой-то категории ресурсов (сущностей, объектов и тому подобного).

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

Возможные проблемы

Когда может возникать ошибка метаданных? Отсутствие необходимой информации или ограничение доступа – вот основные причины возникающих проблем.

Также ошибка загрузки метаданных появляется в тех случаях, когда файл есть, но он повреждён. Основных причин такого состояния насчитывают три: износ техники, вредоносное влияние отдельных программ (как правило, компьютерных вирусов) и неправильное завершение работы с документом, по причине чего данные сохранились некорректно.

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

Что такое метаданные

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

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

Зачем нужна работа с метаданными

Бывают ситуации когда надо обработать по одному правилу все схожие между собой объекты. Допустим нам надо написать обработку, которая будет производить некие действия со всеми справочниками у которых есть реквизит Товар.

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

А с использованием метаданных мы можем программно обойти все справочники, а затем для каждого справочника можем проанализировать все его реквизиты. И в случае если искомый реквизит найден обработать все элементы справочника. Этот подход значительно уменьшит количество кода и предварительной ручной работы.

Опять же если в конфигурацию будет добавлен новый справочник, в первом случае (без использования метаданных) необходимо будет дорабатывать обработку. Если же были использованы метаданные, никакой доработки не потребуется.

Также метаданные можно использовать в случае работы с реквизитами составного типа. Когда в зависимости от метаданных реквизита может различаться алгоритм работы программы.

Обход метаданных в цикле

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

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

Получение метаданных по ссылке объекта

Зачастую возникает ситуация когда надо получить метаданные по ссылке какого-нибудь объекта. Это может быть элемент справочника, документ и т.д. И здесь нам поможет метод НайтиПоТипу(). Этот метод позволяет получить метаданные по типу объекта.

Соответственно если у нас есть ссылка нам надо сначала узнать ее тип. Сделать это поможет функция ТипЗнч(). В качестве примера возьмем справочник Пользователи (т.к. он есть наверное во всех конфигурациях).

Выберем из него первый попавшийся элемент и получим по нему метаданные.

Запрос = Новый Запрос; Запрос.Текст = “ВЫБРАТЬ ПЕРВЫЕ 1| Пользователи.Ссылка|ИЗ | Справочник.Пользователи КАК Пользователи”; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл МетаданныеОбъекта = Метаданные.НайтиПоТипу(ТипЗнч(Выборка.Ссылка)); Сообщить(МетаданныеОбъекта.Имя); Сообщить(МетаданныеОбъекта.Синоним); КонецЦикла;

Получение метаданных по полному имени

Cуществует еще один метод, который позволяет получить метаданные по полному имени объекта. Речь идет о методе НайтиПоПолномуИмени(). Если взять тот же справочник Пользователи, то его полное имя выглядить как Справочник.Пользователи. Соответственно код для получения метаданных справочника Пользователи по полному имени выглядит вот так

МетаданныеПользователи = Метаданные.НайтиПоПолномуИмени(“Справочник.Пользователи”);

Если выбирать между получением метаданных по ссылке и по полному имени, то мне больше по душе метод НайтиПоТипу().

Конечно Имя и Синоним, в примерах выше — это лишь малая часть информации, которую можно извлечь из метаданных. Но тут как говориться в помощь.

Источник: https://www.auturs.ru/pts/rabota-s-metadannymi-metadannye-eto-chto-obhod-metadannyh-v.html

1с получить имя объекта метаданных. Работа с метаданными. Обход метаданных в цикле

1с 8 метаданные реквизиты найти. Работа с метаданными. Обход метаданных в цикле

Существует множество баз данных. Чтобы понять, что они собой представляют, необходимо рассматривать их содержимое. Но есть одна маленькая полезная деталь – метаданные. Это то, что обобщает всю имеющуюся информацию. Для чего они были разработаны и зачем используются?

Луч закона
Добавить комментарий