27 документов
← К списку

Аннотации

страница

Аннотации

В расширениях конфигурации в модулях заимствованных объектов можно расширить поведение методов и обработчиков событий объекта. Для этого метод предваряется аннотацией. Аннотация предваряется символом "&". Допустимые аннотации:

  • &Перед("Название метода или события")/&Before("Название метода или события") - указывает, что данный метод будет вызван перед вызовом метода из модуля расширяемого объекта,

  • &После("Название метода или события")/&After("Название метода или события") - указывает, что данный метод будет вызван после вызова метода из модуля расширяемого объекта,

  • &Вместо("Название метода или события")/&Around("Название метода или события") - указывает, что данный метод будет вызван вместо вызова метода из модуля расширяемого объекта.

  • &ИзменениеИКонтроль("Название метода")/&ChangeAndValidate("Название метода") - позволяет контролировать изменения в заимствованном методе в расширении. При заимствовании метода с аннотацией &ИзменениеИКонтроль в новый метод полностью копируется тело метода из конфигурации. Для применения этого метода требуется, чтобы его тело совпадало с телом метода в конфигурации базы данных, за исключением специальных директив и кода, размещенного внутри директивы #Вставка...#КонецВставки. Код, размещенный внутри директивы #Удаление...#КонецУдаления, не выполняется и служит для восстановления предыдущего состояния метода и контроля возможности его применения.

Для процедур можно указать один из четырех вариантов, а для функций - только &Вместо или &ИзменениеИКонтроль.

Вызвать переопределенный метод можно с помощью функции глобального контекста ПродолжитьВызов().

Наличие самого метода/обработчика в модуле расширяемого объекта необязательно. Если обработчик события в модуле расширяемого объекта отсутствует, то обработчики из расширений будут вызываться так, как будто обработчик в расширяемом модуле существует.

Набор параметров (число параметров и признаки передачи параметра по значению) метода из модуля заимствованного объекта должен в точности соответствовать набору параметров метода из модуля расширяемого объекта. В случае отсутствия обработчика события в модуле расширяемого объекта, параметры не контролируются.

Значения по умолчанию определяются по значениям по умолчанию метода из модуля расширяемого объекта.

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

В одном модуле заимствованного объекта на один метод можно установить одну из следующих комбинаций:

  • &Перед,

  • &После,

  • &Вместо,

  • &Перед и &После.

Допускается совместное использование аннотаций и директив компиляции.

Использование в версии:

Доступен, начиная с версии 8.3.9.


     Методическая информация