Реализация контракта
Реализация контракта — это элемент проекта, в котором реализуются свойства и методы контракта.
Реализация свойств
Реализация свойства — это реквизит элемента проекта, который соответствует свойству, объявленному в контракте. Если в контракте есть свойство, то в элементе, реализующем контракт, должен быть реквизит с таким же именем.
Если имя свойства контракта соответствует стандартному реквизиту элемента проекта, который реализует контракт (например, Код в справочнике), то в реализации должен быть этот стандартный реквизит.
Имена стандартных реквизитов могут быть заданы на русском или английском языках (например, Код/Code).
Стандартными свойствам являются:
- У плана обмена:
Код,МеткаВерсии,МоментПометкиУдаления,Наименование,НомерОтправленного,НомерПринятого,ПометкаУдаления,Представление,Ссылка,ЭтотУзел.
- У справочника:
Код,Владелец,МеткаВерсии,ПометкаУдаления,МоментПометкиУдаления,Наименование,Ссылка,Представление.
- У регистра сведений:
КлючЗаписи,КлючОсновногоФильтра,Период.
Реализация методов
Модуль элемента проекта, реализующего контракт, должен содержать определения всех методов, объявленных в контракте.
Методы-реализации:
- Должны иметь аннотацию видимости, равную области видимости контракта (свойство
ОбластьВидимости) или шире. Например, если контракт имеет область видимости@ВПроекте, то методы-реализации могу т иметь область видимости@ВПроектеили@Глобально. - Должны иметь аннотацию
@Реализация.
Например, так выглядит реализация метода СформироватьПредставление().
@ВПроекте
@Реализация
метод СформироватьПредставление()
Представление = "%Фамилия %Имя %Отчество"
;
Методы контракта и методы-реализации сопоставляются по сигнатуре.
Возвращаемое значение метода-реализации может иметь более конкретный тип, чем в контракте.
Если сигнатура метода контракта совпадает со стандартным методом типа, в котором находится реализация, то считается, что стандартный метод является реализацией метода, объявленного в контракте. Пример — метод Записать().