Элемент проекта вида «КонтрактСущности»
Контракт сущности — элемент проекта, который предназначен для описания общих методов и хранимых свойств, которыми обладают элементы, реализующие данный контракт. Контракт сущности обладает основной таблицей и таблицами множественных свойств, в которых хранятся свойства, описанные в контракте.
Важное отличие контракта сущности от контракта типа состоит в том, что контракт типа определяет только интерфейс, в то время как контракт сущности задает ограничени я на данные. Для контракта сущности может создаваться отдельная таблица, которая хранит «общие» данные. Эта таблица доступна в языке запросов. Для контракта сущности также создается ссылочный тип, и его можно использовать в хранимых полях.
Контракт сущности можно реализовывать в следующих элементах проекта:
- План обмена (реквизиты плана обмена и методы в модуле объекта плана обмена, тип <ИмяПланаОбмена>.Объект).
- Справочник (реквизиты справочника и методы в модуле объекта справочника, тип <ИмяСправочника>.Объект).
Доступность в языке запросов
Доступность таблиц контракта сущности определяется его свойством ТаблицыКонтракта. По умолчанию свойство имеет значение Недоступны. Если свойство имеет значение Доступны, то пользователь может обращаться к основной таблице контракта, к таблицам реквизитов-коллекций и табличных частей.
Основная таблица является ссылочной — к полям таблицы можно обращаться по их именам через точку от выражений, имеющих тип <ИмяКонтракта>.Ссылка.
Имя основной таблицы совпадает с именем элемента. Таблица содержит обычные поля, описанные в контракте.
Таблицы множественных свойств содержат множественные свойства, описанные в контракте. Если у контракта нет реализаций, то при запросах всегда возвращается пустой результат.
При наследова нии контрактов сущности табличная часть текущего контракта содержит:
- свойства, объявленные в табличной части текущего контракта;
- свойства, объявленные во всех одноименных табличных частях базовых контрактов.
Для нее будет создана своя таблица с собственными полями, а также полями из базовых контрактов.
Если базовый контракт сущности содержит свойство, которое является реквизитом-коллекцией, в текущем контракте для него создается собственная таблица.
Примеры
- Пример контракта сущности — запрос к таблице контракта, которая хранит общие данные
- Пример контракта сущности — ссылочный тип, который можно использовать в хранимых полях