Перейти к основному содержимому

Реализация контракта

Реализация контракта — это элемент проекта, в котором реализуются свойства и методы контракта.

Реализация свойств

Реализация свойства — это реквизит элемента проекта, который соответствует свойству, объявленному в контракте. Если в контракте есть свойство, то в элементе, реализующем контракт, должен быть реквизит с таким же именем.

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

примечание

Имена стандартных реквизитов могут быть заданы на русском или английском языках (например, Код/Code).

Стандартными свойствам являются:

  • У плана обмена:
    • Код,
    • МеткаВерсии,
    • МоментПометкиУдаления,
    • Наименование,
    • НомерОтправленного,
    • НомерПринятого,
    • ПометкаУдаления,
    • Представление,
    • Ссылка,
    • ЭтотУзел.
  • У справочника:
    • Код,
    • Владелец,
    • МеткаВерсии,
    • ПометкаУдаления,
    • МоментПометкиУдаления,
    • Наименование,
    • Ссылка,
    • Представление.
  • У регистра сведений:
    • КлючЗаписи,
    • КлючОсновногоФильтра,
    • Период.

Реализация методов

Модуль элемента проекта, реализующего контракт, должен содержать определения всех методов, объявленных в контракте.

Методы-реализации:

  • Должны иметь аннотацию видимости, равную области видимости контракта (свойство ОбластьВидимости) или шире. Например, если контракт имеет область видимости @ВПроекте, то методы-реализации могут иметь область видимости @ВПроекте или @Глобально.
  • Должны иметь аннотацию @Реализация.

Например, так выглядит реализация метода СформироватьПредставление().

@ВПроекте
@Реализация
метод СформироватьПредставление()
Представление = "%Фамилия %Имя %Отчество"
;

Методы контракта и методы-реализации сопоставляются по сигнатуре.

Возвращаемое значение метода-реализации может иметь более конкретный тип, чем в контракте.

Если сигнатура метода контракта совпадает со стандартным методом типа, в котором находится реализация, то считается, что стандартный метод является реализацией метода, объявленного в контракте. Пример — метод Записать().