Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 21:39

Теория-метаданные

Автор alex38561, 13 авг 2010, 17:06

0 Пользователей и 1 гость просматривают эту тему.

alex38561

Я в 1С лузер, только начал разбираться и в связи с этим возник вопрос: Что такое объект метаданных?
В книге С.Харитонова "Бухгалтерский и налоговый учет в 1С:Бухгалтерии 8 дано такое определение:
Объект метаданных есть формальное описание неких сущностей предметной области автоматизации со сходными свойствами и одинаковым назначением.
Но это определение породило еще множество вопросов:
1. Что значит формальное описание? Чем оно отличается от неформального?
2. Предметная область автоматизации это я так понимаю бухгалтерский учёт в целом?
3. Почему этот объект принадлежит области метаданных?

Объясните, пожалуйста, кто понимает...

DDD

Мне осознать это помогла эта статья:

Основные понятия
В этой главе рассматриваются основные понятия, которыми опе­рирует система 1С:Предприятие. Данная глава будет полезна тем, кто еще не знаком с системой 1С:Предприятие.

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

Понятие «метаданные»
Основу концепции системы 1С:Предприятие составляет понятие метаданные. Однако прежде чем дать расшифровку этого понятия, введем понятие объекта метаданных.

Объект метаданных
Под объектом метаданных в системе 1С:Прсдприятие понимается формальное описание группы понятий предметной области со сход­ными характеристиками и одинаковым предназначением.

Приведем такой пример. Объект метаданных «Справочник» в системе 1С:Предприятие предназначен для ведения списков одно­родных элементов данных — справочников, картотек, нормативных сборников и тому подобное. Использование объектов метаданных этого типа позволяет организовать ведение любых справочников, необходимых для автоматизации деятельности предприятия.

Как правило, объекты метаданных типа «Справочник» являются компьютерными аналогами реально существующих на предприятии справочников, например, справочника сотрудников или номенклату­ры товаров, хотя могут использоваться и для организации списков, не имеющих явных физических аналогов.

Реализованный в системе 1С:Предприятис при помощи объекта метаданных компьютерный аналог конкретного понятия предметной области будем называть объектом данных.

Свойства объекта метаданных
Каждый объект метаданных обладает уникальным набором свойств. Этот набор описан на уровне системы и не может быть из­менен в процессе настройки конфигурации задачи. Набор свойств объекта метаданных определяется, в основном, его назначением в системе 1С:Предприятие.

Главным свойством любого объекта метаданных является иден­тификатор — краткое наименование объекта метаданных. При соз­дании нового объекта метаданных ему автоматически присваивается условный идентификатор, состоящий из слова «Новый» и цифры. Этот идентификатор можно изменить в процессе редактирования свойств объекта метаданных, при этом система отслеживает уни­кальность идентификаторов. Однако идентификатор не может быть удален без удаления самого объекта метаданных.

Некоторые свойства из всего набора свойств, присущих объекту метаданных, доступны для редактирования и могут быть так или иначе изменены в процессе конфигурирования системы 1С:Предприятие. Характер изменений и их пределы также задаются на уровне системы. Целенаправленным изменением свойств объекта метаданных специалист, осуществляющий конфигурирование систе­мы, может добиться требуемого поведения объекта при работе сис­темы. Однако такие изменения не затрагивают сущности объекта и не позволяют добиться от него действий, не свойственных объектам данного типа.

Приведем такой пример.
Объект метаданных «Константа» в системе 1С:Предприятие предназначен для хранения информации, которая не изменяется во времени или изменяется очень редко. Простым примером константы может служить название предприятия: оно, как правило, не меняется о процессе деятельности предприятия.

Константа обладает следующим набором редактируемых свойств:

идентификатор — «имя» константы;
комментарий;
тип значения;
длина значения;
точность значения (для числовых констант);
периодичность.
Еще 2 свойства — «автоматическая проверка на неотрицатель­ность при вводе значения в константу» и «разделение триад цифр при показе числовой константы» — носят, скорее, вспомогательный характер и не оказывают существенного влияния на поведение кон­станты.

В наиболее общем случае информация в константу заносится один раз (как, например, все то же название предприятия). Инфор­мацию, записанную в константу, можно многократно извлекать, про­сто указывая имя константы. Конкретное значение константы в этом случае несущественно, а наиболее важным является то, что констан­та сохранила когда-то записанное в нее значение и возвратила его.

Способность сохранять и возвращать значение — неотъемлемая особенность любой константы в системе 1С:Предприятие. Никакое редактирование свойств константы на эту способность не влияет.

Форма объекта метаданных
Большинство объектов метаданных в системе 1С:Предприятие могут иметь визуальное представление. В самом общем случае визу­альное представление состоит из следующих частей:

экранный диалог, используемый для ввода и редактирования информации, хранящейся в объекте метаданных;
печатная форма объекта метаданных (печатных форм может быть несколько);
модуль формы — программа на встроенном языке системы 1С:Предириятие.
Как правило, модуль формы содержит алго­ритм построения печатной формы объекта метаданных, а так­же может выполнять обработку вводимой в диалог информа­ции для целей входного контроля, выполнения расчетов и т. п.

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

Способность иметь визуальное представление позволяет объекту метаданных организовать интерактивное взаимодействие с пользова­телем. Характер такого взаимодействия разрабатывается специали­стом, осуществляющим конфигурирование системы 1С:Предприятие, и определяется, в основном, типом объекта метаданных.

Для разработки форм в Конфигураторе применяется комплекс­ный редактор форм, позволяющий редактировать все компоненты формы во взаимосвязи.

Агрегатные объекты метаданных
Объекты метаданных в системе 1С:предприятие могут быть как независимыми, так и подчиняться друг другу.

Например, независимым объектом метаданных является констан­та. Константа самодостаточна: она может содержать какое-либо зна­чение, и этим полностью исчерпывается ее назначение в системе 1С:Предприятие. Более того: константа может присутствовать в сис­теме и даже может содержать какое-либо значение, но при этом не использоваться другими объектами метаданных. Правда, на практике такое встречается редко.

Теперь — прямо противоположный пример.
Объект метаданных «Реквизит справочника», который содержит какую-либо дополнительную информацию об элементе справочника, может существовать только в составе объекта метаданных «Справоч­ник». Сам по себе, отдельно от справочника, реквизит справочника никогда не используется. Объект метаданных «Справочник» может вообще не содержать объектов типа «Реквизит справочника», но ес­ли такие объекты существуют, то они «живут» только внутри спра­вочника.

Объекты метаданных, которые могут иметь в своем составе под­чиненные объекты, называются агрегатными объектами метадан­ных.

alex38561

Здесь дано примерно такое же определение объекта метаданных, которое  указано в книге Харитонова "Бухгалтерский и налоговый учет в 1С:Бухгалтерии 8" :
Под объектом метаданных в системе 1С:Прсдприятие понимается формальное описание группы понятий предметной области со сход­ными характеристиками и одинаковым предназначением.
Что означает это формальное описание?
Я более или мене понимаю назначение отдельных типов объектов метаданных, но не могу понять их общей сущности, которое отражается в определении.
Ведь и справочник и константа есть объекты метаданных, то есть в них есть что-то общее, вот я не могу понять это общее...

DDD

Я сам это до конца не понял... сейчас жутко пьян..., Но завтра с удовольствием вступлю в дискуссию... )

Slin

Если своими словами...
1. Формальное описание это описание с помощью формул, таблиц, некоторого математического или понятийного аппарата и т.п. С помощью формального описания мы можем точно сказать из каких частей состоит объект, вплоть до самых мельчайших, что это за части и т.д. Отличается от неформального большей точностью, логичностью, завершенностью, а также ясностью (по крайней мере для того, кто в курсе соглашений, положенных в основу формального описания конкретной сущности). Неформальное описание обычно подразумевает "своими словами" (то, что я сейчас делаю :)). Для тех, кто изучал языки программирования, одним из примеров формального описания являетс БНФ. Неформальное описание встречается гораздо чаще. Например, это почти вся литература (кроме технической и научной, но и там бывает). Посты выше -тоже неформальное описание. Вся литература по 1С тоже неформальное описание. Фактически формальное описание объекта метаданных присутствует только во внутренней документации 1С, если оно существует конечно. В данном случае, они говорят о формальном описании просто для того, чтобы дать точное определение. Не стоит заморачиваться.
2. Предметная область автоматизации - это собственно то, ради чего пишется конфигурация. Обычно это предприятие (усредненное - в типовых конфигурациях), описание его состояния и бизнес-процессов. Бухгалтерский учет - часть этой предметной области. Целиком бух. учет еще никто не автоматизировал, да и не пытался, по-моему. Смысла нет. Документ "Операция" (или как оно там называется) - лишь костыль для возможности отражения операций, которые не автоматизированы.
3. Не совсем понятен вопрос. Почему объект метаданных принадлежит области метаданных? Ответ заключен в вопросе. Есть область метаданных, которая, собственно, и состоит из объектов метаданных. Я так понимаю, что вопрос скорее в том, что такое метаданные. Начать можно с того, что в системе определено конечное число сущностей-объектов-типов (COM-объекты не трогать, они извне). Так задумано разработчиками и сделано, скорее всего, для облегчения разработки и поддержки, в том числе, малоквалифицированными пользователями. Определен ряд объектов встроенного языка, а так же ряд объектов метаданных. Предназаначение этих объектов самое разное. Одни служат для настройки свойств, другие предназначены для хранения, например, участков кода, третьи являются типообразующими (Справочники, Документы и т.п.). Как было сказано выше, все объекты метаданных образуют область метаданных.

Для затравки хватит
P.S. ногами не бить

Slin

Кстати, слово "метаданные" образовано от "мета" (смысл - как бы) и "данные", т.е. как бы данные. Это означает, что метаданные не являются собственно данными, данные хранятся непосредственно в базе и доступ к ним осуществляет из режима "предприятие". Метаданные являются лишь описательной частью.

alex38561

Цитата: Slin от 14 авг 2010, 07:12
Если своими словами...
1. Формальное описание это описание с помощью формул, таблиц, некоторого математического или понятийного аппарата и т.п. С помощью формального описания мы можем точно сказать из каких частей состоит объект, вплоть до самых мельчайших, что это за части и т.д. Отличается от неформального большей точностью, логичностью, завершенностью, а также ясностью (по крайней мере для того, кто в курсе соглашений, положенных в основу формального описания конкретной сущности). Неформальное описание обычно подразумевает "своими словами" (то, что я сейчас делаю :)). Для тех, кто изучал языки программирования, одним из примеров формального описания являетс БНФ. Неформальное описание встречается гораздо чаще. Например, это почти вся литература (кроме технической и научной, но и там бывает). Посты выше -тоже неформальное описание. Вся литература по 1С тоже неформальное описание. Фактически формальное описание объекта метаданных присутствует только во внутренней документации 1С, если оно существует конечно. В данном случае, они говорят о формальном описании просто для того, чтобы дать точное определение. Не стоит заморачиваться.
2. Предметная область автоматизации - это собственно то, ради чего пишется конфигурация. Обычно это предприятие (усредненное - в типовых конфигурациях), описание его состояния и бизнес-процессов. Бухгалтерский учет - часть этой предметной области. Целиком бух. учет еще никто не автоматизировал, да и не пытался, по-моему. Смысла нет. Документ "Операция" (или как оно там называется) - лишь костыль для возможности отражения операций, которые не автоматизированы.
3. Не совсем понятен вопрос. Почему объект метаданных принадлежит области метаданных? Ответ заключен в вопросе. Есть область метаданных, которая, собственно, и состоит из объектов метаданных. Я так понимаю, что вопрос скорее в том, что такое метаданные. Начать можно с того, что в системе определено конечное число сущностей-объектов-типов (COM-объекты не трогать, они извне). Так задумано разработчиками и сделано, скорее всего, для облегчения разработки и поддержки, в том числе, малоквалифицированными пользователями. Определен ряд объектов встроенного языка, а так же ряд объектов метаданных. Предназаначение этих объектов самое разное. Одни служат для настройки свойств, другие предназначены для хранения, например, участков кода, третьи являются типообразующими (Справочники, Документы и т.п.). Как было сказано выше, все объекты метаданных образуют область метаданных.

Для затравки хватит
P.S. ногами не бить

1. Т.е. грубо говоря формальное описание подразумевает наличие некого вполне определённого языка в рамках которого происходит описание той или иной сущности? Т.е. исходя из этого получается, что объект метаданных есть описание сущностей предметной области на неком встроеном языке системы 1С.? 

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

Slin

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

DDD

Цитата: Slin от 14 авг 2010, 17:16
Однако набор свойств сущности в некотором приближении есть сама сущность, допустим в рамках некоторой модели. Так что... без разницы.

Рома... Это пять. (Кстати, помню именно ты мне 2 года назад пытался объяснить, что такое Метаданные)

Slin

Ну может с тех пор я немного поумнел
:D

Теги:
Рейтинг@Mail.ru

Поиск