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

Подозрительное использование &ИзменениеИКонтроль (SuspiciousChangeAndValidate)

Тип Поддерживаются
языки
Важность Включена
по умолчанию
Время на
исправление (мин)
Теги
Дефект кода BSL Важный Да 5 badpractice
suspicious

Описание диагностики

Метод, помеченный аннотацией &ИзменениеИКонтроль, содержит одновременно директивы #Удаление / #КонецУдаления и #Вставка / #КонецВставки. Такая комбинация означает полную замену тела метода, что скрывает реальные изменения от ревьюера.

Аннотация &ИзменениеИКонтроль предназначена для точечных правок. Для полной замены метода используйте &Вместо.

Примеры

Неправильно

&ИзменениеИКонтроль("МетодИзКонфигурации")
Процедура префМетодИзКонфигурации()

#Удаление
    старый код
#КонецУдаления
#Вставка
    новый код
#КонецВставки

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

Правильно

// Точечные изменения
&ИзменениеИКонтроль("МетодИзКонфигурации")
Процедура префМетодИзКонфигурации()
    ... // оригинальный код

#Удаление
    проблемная строка
#КонецУдаления
#Вставка
    исправленная строка
#КонецВставки

    ... // остальной код
КонецПроцедуры

// Или полная замена через &Вместо
&Вместо("МетодИзКонфигурации")
Процедура префМетодИзКонфигурации()
    новый код
КонецПроцедуры

Сниппеты

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

// BSLLS:SuspiciousChangeAndValidate-off
// BSLLS:SuspiciousChangeAndValidate-on

Параметр конфигурационного файла

"SuspiciousChangeAndValidate": false