Дескрипторы классов

Каждый генерируемый класс метаданных имеет статическое свойство StaticClassDescriptor типа IClassDescriptor. Обратившись к этому свойству, можно получить все свойства класса, на какие колонки они отображены и так далее.

Для упрощения работы реализована следующая иерархия дескрипторов:

DevBookmark_Scripts BaseDescriptor

tree DevBookmark_Scripts ClassDescriptor

tree DevBookmark_Scripts DictionaryDescriptor

tree DevBookmark_Scripts DocumentDescriptor

tree DevBookmark_Scripts LinkTableDescriptor

tree DevBookmark_Scripts TablePartDescriptor

tree DevBookmark_Scripts TotalDescriptor

tree DevBookmark_Scripts ScalarPropertyDescriptor

tree DevBookmark_Scripts DictionaryPropertyDescriptor

tree DevBookmark_Scripts DocumentPropertyDescriptor

tree DevBookmark_Scripts LinkTablePropertyDescriptor

tree DevBookmark_Scripts TablePartPropertyDescriptor

tree DevBookmark_Scripts TotalDimensionDescriptor

tree DevBookmark_Scripts TotalVariableDescriptor

tree DevBookmark_Scripts ReferencePropertyDescriptor

tree DevBookmark_Scripts DictionaryReferenceDescriptor

tree DevBookmark_Scripts DocumentReferenceDescriptor

tree DevBookmark_Scripts LinkTableReferenceDescriptor

tree DevBookmark_Scripts TablePartReferenceDescriptor

tree DevBookmark_Scripts ListPropertyDescriptor

tree DevBookmark_Scripts DictionaryListDescriptor

tree DevBookmark_Scripts DictionaryLinkTableDescriptor

tree DevBookmark_Scripts DocumentTablePartDescriptor

DevBookmark_Scripts BaseDescriptor базовый дескриптов, описывающий класс, обладает следующими свойствами:

ID, типа long – идентификатор класса;

Name, типа string – имя класса;

Caption, типа string – описание класса;

Comments, типа string – комментарий к классу.

DevBookmark_Scripts ClassDescriptor – описывает класс, наследуется от базового класса BaseDescriptor, обладает следующими свойствами:

TableName, типа string – имя таблицы объекта в базе данных;

MapObjectName, типа string – имя представления таблицы в базе данных;

IsKernel, типа bool – указывает, является ли класс ядерным (системным);

Icon, типа Image – иконка команды класса;

LargeIcon, типа Image – большая иконка команды класса;

IconName, типа string – название иконки команды класса;

LargeIconName, типа string – название большой иконки команды класса;

ImplementedInterfaces, типа IList<string> – список реализованных классом интерфейсов;

FilterProperties, типа IList<string> – список свойств, отображаемых в панели фильтра списковой формы справочника;

Guid, типа Guid – GUID класса;

DisplayFormat, типа string – возвращает формат отображения записи объекта в строковом виде.

DevBookmark_Scripts DictionaryDescriptor – описывает класс записи справочник, наследуется от класса ClassDescriptor, обладает следующими свойствами:

SequenceName, типа string – имя Sequence-таблицы класса в базе данных;

IsSmall, типа bool – указывает, что справочник должен иметь малое количество строк;

NotificationEnabled, типа bool – указывает, должен ли DictionaryManager рассылать уведомления при изменении данных справочника;

IsCached, типа bool – указывает, должны ли данные класса кэшироваться на стороне клиента;

TransparentTranslation, типа bool – указывает, должен ли справочник быть переведен прозрачно (на лету);

DefaultSearchProperty, типа string – свойство, по которому осуществляется поиск в списковой форме справочника и элементах управления;

ParentProperty, типа string – название свойства, по которому строится дерево в древовидном справочнике;

IsTree, типа bool – указывает, что справочник является древовидным;

DefaultLookupProperties, типа List<string> – формат отображения записи справочника в строковом виде;

DisplayFormat, типа string – возвращает формат отображения записи справочника в строковом виде.

DevBookmark_Scripts DocumentDescriptor – описывает класс документа, наследуется от класса ClassDescriptor, обладает следующими свойствами:

SequenceName, типа string – имя Sequence-таблицы класса в базе данных;

DisplayFormat, типа string – возвращает формат отображения документа в строковом виде.

DevBookmark_Scripts LinkTableDescriptor – описывает класс записи развязочной таблицы, наследуется от класса ClassDescriptor.

DevBookmark_Scripts TablePartDescriptor – описывает класс записи табличной части, наследуется от класса ClassDescriptor:

SequenceName, типа string – имя Sequence-таблицы класса в базе данных;

DisplayFormat, типа string – возвращает формат отображения записи табличной части в строковом виде.

DevBookmark_Scripts TotalDescriptor – описывает класс движения итога, наследуется от класса ClassDescriptor:

TransactionTableName, типа string – имя таблицы класса транзакции итога в базе данных;

BalanceTableName, типа string – имя таблицы класса баланса итога в базе данных;

DetailedTransactionTableName, типа string – имя таблицы класса детализированной транзакции итога в базе данных;

TotalTableName, типа string – имя таблицы класса итога в базе данных;

TemporaryTransactionTableName, типа string – имя таблицы класса временной транзакции итога в базе данных;

TransactionViewName, типа string – имя представления таблицы класса транзакции итога в базе данных;

DetailedTransactionViewName, типа string – имя представления таблицы класса детализированной транзакции итога в базе данных;

TemporaryTransactionViewName, типа string – имя представления таблицы класса временной транзакции итога в базе данных;

TransactionType, типа Type – тип класса транзакции итога;

BalanceType, типа Type – тип класса баланса итога;

DetailedTransactionType, типа Type – тип класса детализированной транзакции итога;

IsDoubleEntry, типа bool – указывает, используется ли правило двойной записи;

IsOperational, типа bool – указывает, является ли движение итога операционным;

UseBalanceTable, типа bool – указывает, имеется ли у итога таблица оперативного баланса.

DevBookmark_Scripts ScalarPropertyDescriptor – описывает скалярные свойства класса, наследуется от базового класса BaseDescriptor, обладает следующими свойствами:

Type, типа PropertyTypes – возвращает типа скалярного свойства сгенерированного класса (подробнее см. раздел Типы данных);

ColumnName, типа string – возвращает имя поля таблицы в базе данных;

DefaultValue, типа string – возвращает значение свойства по умолчанию;

StringSize, типа int – возвращает максимальный размер свойства строкового типа;

IsPrimaryKey, типа bool – указывает, является ли свойство частью первичного ключа;

IsRequired, типа bool – указывает, является ли свойство обязательным для заполнения;

IsSystemProperty, типа bool – указывает, является ли свойство системным.

DevBookmark_Scripts DictionaryPropertyDescriptor – описывает скалярные свойства класса записи справочника, наследуется от класса ScalarPropertyDescriptor, обладает следующими свойствами:

IsRequired, типа bool – указывает, является ли свойство обязательным для заполнения, всегда принимает значение true, если свойство является частью первичного ключа (IsPrimaryKey имеет значение true);

IsPrimaryKey, типа bool – указывает, является ли свойство частью первичного ключа, всегда принимает значение true, если свойство является идентификатором (имеет имя ID типа long);

IsTranslatable, типа bool – указывает, является ли свойство переводимым (мультиязычным).

DevBookmark_Scripts DocumentPropertyDescriptor – описывает скалярные свойства класса документа, наследуется от класса ScalarPropertyDescriptor, обладает следующими свойствами:

IsRequired, типа bool – указывает, является ли свойство обязательным для заполнения, всегда принимает значение true, если свойство является частью первичного ключа (IsPrimaryKey имеет значение true);

IsPrimaryKey, типа bool – указывает, является ли свойство частью первичного ключа, всегда принимает значение true, если свойство является идентификатором (имеет имя ID типа long);

IsMultilanguage, типа bool – указывает, является ли свойство переводимым (мультиязычным);

IsSystemProperty, типа bool – указывает, является ли свойство системным.

DevBookmark_Scripts LinkTablePropertyDescriptor – описывает скалярные свойства класса записи развязочной таблицы, наследуется от класса ScalarPropertyDescriptor.

DevBookmark_Scripts TablePartPropertyDescriptor – описывает скалярные свойства класса записи табличной части, наследуется от класса ScalarPropertyDescriptor, обладает следующими свойствами::

IsRequired, типа bool – указывает, является ли свойство обязательным для заполнения, всегда принимает значение true, если свойство является частью первичного ключа (IsPrimaryKey имеет значение true);

IsPrimaryKey, типа bool – указывает, является ли свойство частью первичного ключа, всегда принимает значение true, если свойство является идентификатором (имеет имя ID типа long);

IsVisible, типа bool – указывает, является ли свойство видимым (в документе);

IsSystemProperty, типа bool – указывает, является ли свойство системным.

DevBookmark_Scripts TablePartPropertyDescriptor – описывает скалярные свойства класса записи табличной части, наследуется от класса ScalarPropertyDescriptor, обладает следующими свойствами::

IsRequired, типа bool – указывает, является ли свойство обязательным для заполнения, всегда принимает значение true, если свойство является частью первичного ключа (IsPrimaryKey имеет значение true);

IsPrimaryKey, типа bool – указывает, является ли свойство частью первичного ключа, всегда принимает значение true, если свойство является идентификатором (имеет имя ID типа long);

IsVisible, типа bool – указывает, является ли свойство видимым (в документе);

IsSystemProperty, типа bool – указывает, является ли свойство системным.

DevBookmark_Scripts TotalDimensionDescriptor – описывает свойства-измерения класса движения итога, наследуется от класса ScalarPropertyDescriptor, обладает следующими свойствами:

IsOperational, типа bool – указывает, является ли измерение операционным.

DevBookmark_Scripts TotalVariableDescriptor – описывает свойства-переменные класса движения итога, наследуется от базового класса BaseDescriptor, обладает следующими свойствами:

IsOperational, типа bool – указывает, является ли переменная операционной.

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

Type, типа string – возвращает типа свойства сгенерированного класса;

ThisKey, типа string – название скалярного свойства к которому привязано это ссылочное свойство;

IsAssociation, типа bool – возвращает true, если ThisKey заполнен.

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

ReferencedDictionaryID, типа long – идентификатор справочника, на который ссылается свойство.

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

ReferencedDictionaryID, типа long – идентификатор справочника, на который ссылается свойство.

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

ReferencedDictionaryID, типа long – идентификатор справочника, на который ссылается свойство.

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

ReferencedDictionaryID, типа long – идентификатор справочника, на который ссылается свойство.

DevBookmark_Scripts ListPropertyDescriptor – описывает вложенную коллекцию класса, наследуется от базового класса BaseDescriptor, обладает следующими свойствами:

Type, типа string – возвращает типа свойства сгенерированного класса;

ThisKey, типа string – название скалярного свойства к которому привязано это ссылочное свойство;

IsAssociation, типа bool – возвращает true, если ThisKey заполнен.

DevBookmark_Scripts DictionaryListDescriptor – описывает вложенную коллекцию класса записи справочника, наследуется от класса ListPropertyDescriptor.

DevBookmark_Scripts DictionaryLinkTableDescriptor – описывает развязочную таблицу класса справочника, наследуется от класса ListPropertyDescriptor.

DevBookmark_Scripts DocumentTablePartDescriptor – описывает табличную часть класса документа, наследуется от класса ListPropertyDescriptor.