1С Предприятие 8.0. Описание встроенного языка

Передача параметров процедур и функций


По умолчанию параметры методов, процедур и функций передаются по ссылке, то есть изменение внутри процедуры или функции значения формального параметра ведет к изменению значения соответствующего фактического параметра. При передаче параметра по значению изменение значения формального параметра никак не влияет на фактический параметр вызова процедуры. Для указания того, что тот или иной параметр следует передавать по значению, следует в исходном тексте процедуры или функции перед именем параметра записать ключевое слово Знач

Если параметру задано значение по умолчанию, и он является последним в списке, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров и не ставить запятую перед опущенным параметром.

Если параметру не задано значения по умолчанию, то при вызове процедуры его можно опускать в списке передаваемых фактических параметров, но разделительную запятую надо ставить.

Если параметр при вызове процедуры опущен, то он принимает либо установленное по умолчанию значение (если оно есть) либо значение Неопределено.

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

Пример:

Перем Глоб;

// Описание функции

Функция МояФункция(Знач Пар1, Пар2, ПарЗ) Экспорт

    лок = Глоб + Пар1 + Пар2 + ПарЗ;

    Пар1 =40;

    Возврат Лок;

КонецФункции ;

// Описание функции

Процедура МояПроцедура(Пар1, Пар2, ПарЗ) Экспорт

    Лок = Глоб + Пар1 + Пар2 + ПарЗ;

    Пар1 = 40;

КонецПроцедуры ;

Глоб = 100; А = 10;

Рез = МояФункция(А, 10, 10); // Вызов функции

// Здесь Рез =130, а переменная А = 10, несмотря на то, что в теле

// функции значение параметра Пар1 изменено на 40.

МояПроцедура(А, 10, 10); // Вызов процедура

// Здесь переменная А = 40, поскольку в теле

// процедуры значение параметра Пар1 изменено на 40.



Содержание раздела