Процедура (Procedure)

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


Синтаксис:

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

Или

Procedure <ProcedureName> ([Val][Parameter1], [Val][Parameter2], ...) [Export]
    // Операторы
    [Return;]
EndProcedure


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

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

Или

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


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

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

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

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

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

Возврат (Return) – ключевое слово, которое прекращает выполнение процедуры.  Ключевое слово «Возврат» («Return») может отсутствовать.

КонецПроцедуры (EndProcedure) – ключевое слово, обозначающее конец тела процедуры.


Пример:

//Объявляется процедура, описывающая приветствие пользователя.
Процедура Приветствие(Пользователь)
/
    Имя = Пользователь.Имя;
    Если Имя <> "" Тогда
        Сообщить("Здравствуйте, " + Имя + "!");
    Иначе
        Сообщить("Не задано имя пользователя!");
    КонецЕсли;
\