<< Click to Display Table of Contents >> Разработка > Программный код > Функции Модификаторы |
![]() ![]() ![]() |
Модификаторы предназначены для задания уровня доступности функции, который определяет возможность использования функции из другого кода.
При объявлении функций можно использовать модификаторы:
•public. Указывается, чтобы задать к функции общий доступ из любого другого кода с максимальными правами без ограничений. Модификатор автоматически добавляется в определении функции при ее создании;
•virtual. Указывается, чтобы функцию можно было переопределять в наследниках или перекрывать. Модификатор можно использовать в функциях инициализации.
Пример объявления:
public virtual void FullName();
•override. Указывается при переопределении функции базового типа сущности. Переопределять можно только те наследуемые функции, для которых в базовом типе сущности указан модификатор virtual. Чтобы переопределить функцию, в наследнике объявите эту функцию с модификатором override.
Пример объявления:
public override void FullName();
Подробнее см. переопределение функции базового типа документа OfficialDocument.
Важно. Функции перекрытых модулей, для которых указан модификатор virtual, также можно переопределять с помощью модификатора override.
•static. Указывается, когда при вызове функции типа сущности не нужно создавать экземпляр конкретной сущности. Параметр _obj будет недоступен.
важно. Модификатор static можно применять для функций типов сущностей. Для функций модуля не обязательно указывать модификатор, т.к. они считаются статическими, даже если модификатор static не указан. При этом в работе с отчетами есть особенность: если в тексте объекта отчета используется серверная функция модуля, то в ее объявлении нужно явно указать модификатор static.
Пример объявления:
public static IContractualDocument GetContractualDocumentIgnoreAccessRights(long documentId).
Предположим, что для типа сущности Официальный документ необходимо добавить серверную функцию для получения списка заданий на возврат документа. При этом для функции есть условия: •будет вызываться из клиентского кода. Поэтому перед объявлением функции указывается атрибут Remote; •функция не вносит изменения в данные. Поэтому перед объявлением функции указывается параметр IsPure; •не нужен доступ к экземпляру сущности. Поэтому в объявлении функции указывается модификатор static. Модификатор public в объявлении функции добавится автоматически.
|
Предположим, что в модуле «Делопроизводство» необходимо добавить серверную функцию для создания поручения. При этом есть условия: •функция будет вызываться из клиентского кода и использоваться в функции другого модуля. Поэтому перед объявлением функции указываются атрибуты Remote и Public; •карточка поручения должна загружаться вместе с вложениями за один запрос с веб-сервера. Поэтому перед объявлением функции указывается параметр PackResultEntityEagerly; •чтобы функцию можно было переопределять, в объявлении указывается модификатор virtual. В объявлении функции модификатор static можно не указывать, т.к. это функция модуля, которая по умолчанию считается статической. Модификатор public в объявлении функции добавится автоматически.
|
© Компания Directum, 2024 |