Потерянная/затираемая переменная
Устанавливается значение одной и той же переменной минимум дважды подряд, и между этими присваиваниями переменная не используется. Подобное повторное присвоение без использования ранее установленного значения может являться следствием опечаток или плохо продуманного алгоритма. Подобный код приводит к снижению как производительности, так и читаемости кода.
Пример кода с ошибкой
Процедура ПростаяПерезапись()
Объект = ВызовФункции();
Объект = ВызовДругойФункции(); //переменная перезаписывается без условий
КонецПроцедуры
Велика вероятность, что код должен выглядеть так:
Процедура ПростаяПерезапись()
Объект = ВызовФункции();
ДругойОбъект = ВызовДругойФункции();
КонецПроцедуры
Или другой пример правильного кода (изменение происходит только при определённых условиях):
Процедура ПерезаписьВУсловии()
ЛокальнаяПеременная = ВызовМоейФункции();
Если Условие Тогда
ЛокальнаяПеременная = 42;
ИначеЕсли ДругоеУсловие Тогда
ЛокальнаяПеременная = ВызовФункции();
Иначе
ЛокальнаяПеременная = 0;
КонецЕсли;
КонецПроцедуры
См также - MITRE, CWE-563 - Assignment to Variable without Use - MITRE, CWE-1109 - Use of Same Variable for Multiple Purposes
Экранирование кода
// sonar:RewritingVariable:off
// sonar:RewritingVariable:on