Книга: «1С:Предприятие.Элемент». Возможности встроенного языка
Назад: Методы
Дальше: Передача параметров по значению

Значения по умолчанию

В языке «1С:Предприятия 8» для любого формального параметра можно было указать значение по умолчанию. В следующем примере начальные значения указаны для параметров Пар2 и Пар4:

Процедура Тест(Пар1, Пар2=5, Пар3, Пар4=8)

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

Таким образом, все фактические параметры делились на две категории:

И обязательные, и необязательные фактические параметры можно было указывать или не указывать.

Если обязательный фактический параметр не был указан, то формальный параметр получал значение Неопределено. В следующем примере при вызове процедуры Тест()опущен второй обязательный фактический параметр. В результате соответствующий ему формальный параметр Пар2 имеет значение Неопределено:

Тест(1, );

 

Процедура Тест(Пар1, Пар2)

// Пар2 = Неопределено

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

При этом если не указывался фактический параметр, расположенный в середине списка, то вместо него ставилась запятая. Если такой параметр находился в конце списка, то и запятую можно было не ставить. В следующем примере при вызове процедуры Тест() опущены второй и четвертый необязательные фактические параметры и не указан третий обязательный фактический параметр (вместо него поставлена запятая):

Тест(1, , );

 

Процедура Тест(Пар1, Пар2=5, Пар3, Пар4=8)

// Пар1 = 1

// Пар2 = 5

// Пар3 = Неопределено

// Пар4 = 8

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

В языке «Элемента» точно так же можно указать параметру значение по умолчанию. В следующем примере при объявлении процедуры Тест() начальные значения указаны для параметров Пар2 и Пар4:

метод Тест(Пар1: Число, Пар2 = 5, Пар3: Число, Пар4 = 8)

;

Однако при вызове методов не указывать можно только те необязательные аргументы, которые расположены в конце списка после последнего обязательного. Все остальные аргументы нужно указывать, даже если они необязательные, как второй аргумент в примере.

// Теперь нет смысла параметр с значением по умолчанию ставить в середине, т.к. все равно нужно будет указать соответствующие им аргументы

Тест(1, 2, 3)

метод Тест(Пар1: Число, Пар2 = 5, Пар3: Число, Пар4 = 8)

// Пар1 = 1

// Пар2 = 2

// Пар3 = 3

// Пар4 = 8

;

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

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

Назад: Методы
Дальше: Передача параметров по значению