Перейти к содержанию

Перезапись параметров метода, переданных по значению

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

Подозрительный код

Функция МояФункция(Знач Парам1, Парам2) 
    Парам1 = СтрЗаменить(Парам2, "1", "11"); 
    Парам1 = Объект.Функ(Парам1);
КонецФункции

Исправленный код

Функция МояФункция(Знач Парам1, Парам2) 
    Парам1 = Объект.Функ(Парам1);
    Парам2 = СтрЗаменить(Парам2, "1", "11"); 
КонецФункции

См. также

Экранирование кода

// sonar:RewritingMethodParameters:off
// sonar:RewritingMethodParameters:on