В языке «1С:Предприятия» параметры можно было передавать в методы как по значению, так и по ссылке.
Если в описании процедуры или функции перед параметром стояло ключевое слово Знач, то параметр передавался по значению. При этом изменение значения формального параметра внутри процедуры или функции не приводило к изменению значения фактического параметра. Например:
Процедура МояПроцедура()
Переменная1 = 30;
Метод1(Переменная1);
// Переменная1 будет равна 30
КонецПроцедуры
Процедура Метод1(Знач Перем1)
Перем1 = 100;
КонецПроцедуры
Если ключевое слово Знач перед параметром не стояло, то параметр передавался по ссылке. При этом изменение значения формального параметра внутри процедуры или функции приводило к изменению значения фактического параметра. Например:
Процедура МояПроцедура()
Переменная1 = 30;
Метод1(Переменная1);
// Переменная1 будет равна 100
КонецПроцедуры
Процедура Метод1(Перем1)
Перем1 = 100;
КонецПроцедуры
Теперь в языке «Элемента» аргументы можно передавать в методы только по значению. Это значит, что изменение значения параметра при выполнении метода никак не повлияет на аргумент. Например:
метод МойМетод()
пер Переменная1 = 30
Метод1(Переменная1)
// Переменная1 будет равна 30
;
метод Метод1(Перем1: Число)
Перем1 = 100
;
В то же время, как и в языке «1С:Предприятия», можно изменять состояние экземпляров, переданных через параметры, с помощью методов этих экземпляров. Например:
метод МойМетод()
пер Массив1 = <Число>[1]
Метод3(Массив1)
// В переменной Массив1 будет содержаться два элемента.
;
метод Метод3(Парам: Массив<Число>)
Парам.Добавить(4)
;