Функция (Function)

Оператор  «Функция» («Function») позволяет объявлять новые функции, которые будут описаны в модуле. Функция – это именованная часть модуля, содержащая описание определенного набора действий. Функция может быть многократно вызвана из разных частей модуля. Функция, в отличие от процедуры, обязательно возвращает значение. На вход функции могут поступать значения параметров.


Синтаксис:

Функция <ИмяФункции> ([Знач][Параметр1], [Знач][Параметр2], ...) [Экспорт]
    // Операторы
    Возврат <Выражение>;
КонецФункции

Или

Function <FunctionName> ([Val][Parameter1], [Val][Parameter2], ...)[Export]
    // Операторы
    Return <Expression>;
EndFunction


Альтернативный синтаксис:

Функция <ИмяФункции> ([Знач][Параметр1], [Знач][Параметр2], ...)[Экспорт]
/
    // Операторы
    Возврат <Выражение>;
\

Или

Function <FunctionName> ([Val][Parameter1], [Val][Parameter2], ...)[Export]
/
    // Операторы
    Return <Expression>;
\


ИмяФункции (FunctionName) – имя функции представляет собой любую последовательность букв, цифр и знаков подчеркивания, начинающуюся с буквы или с подчеркивания. Регистр букв не учитывается. Вновь создаваемые имена не должны совпадать с уже существующими именами, доступными на момент выполнения модуля. В качестве имени не могут использоваться ключевые слова.

Знач (Val) – ключевое слово, которое указывает на то, что следующий за ним параметр передается по значению, т.е. изменение значения формального параметра при выполнении функции никак не повлияет на фактический параметр, переданный при вызове функции. Если это ключевое слово не указано, то параметр функции передается по ссылке, то есть изменение внутри функции значения формального параметра приведет к изменению значения соответствующего фактического параметра.

Параметр1, Параметр2, ... (Parameter1, Parameter2, ...) – список параметров функции. В этом списке определяются имена каждого из параметров так, как они используются в теле функции. Параметры могут отсутствовать.

Экспорт (Export) – ключевое слово, которое обозначает, что доступ к функции возможен из глобального модуля.

// Операторы – исполняемый оператор или последовательность операторов, которые представляют собой тело  функции.

Возврат (Return) – ключевое слово, которое завершает выполнение функции и возвращает указанное значение выражения <Выражение>.

<Выражение> (<Expression>) – выражение, значение которого определяет возвращаемое функцией значение. В качестве возвращаемого значения может выступать выражение или переменная.

КонецФункции (EndFunction) - ключевое слово, обозначающее конец тела функции.


Пример:

//Объявляется функция, описывающая процесс проверки настроек обмена данными.
Функция ОбработкаМодуляПроверкиНастроекОбмена(модФормы)
    МодульНастроек = Неопределено;
    МодульНастроек = ОткрытьМодуль(ИменаМодулей.ФормыДиалогов.ФормаКонстант);
    МодульНастроек.УстановитьОбработкуВыбора(ОбработкаМодуляКонстант);
    МодульНастроек.ЭтаФорма.Показать(1);
    модФормы.ВыгрузитьМодуль();
    Возврат 0;
КонецФункции