Использование сложных выражений в условии оператора "Если" (IfConditionComplexity)¶
Тип | Поддерживаются языки |
Важность | Включена по умолчанию |
Время на исправление (мин) |
Теги |
---|---|---|---|---|---|
Дефект кода |
BSL OS |
Незначительный |
Да |
5 |
brainoverload |
Параметры¶
Имя | Тип | Описание | Значение по умолчанию |
---|---|---|---|
maxIfConditionComplexity |
Целое |
Допустимое количество логических конструкций в условии оператора Если |
3 |
Описание диагностики¶
Сложное выражение (содержащее более 3 логических конструкции) необходимо вынести в отдельный метод или переменную.
Примеры¶
Плохо:
Если ИдентификаторОбъекта = "АнализСубконто"
ИЛИ ИдентификаторОбъекта = "АнализСчета"
ИЛИ ИдентификаторОбъекта = "ОборотноСальдоваяВедомость"
ИЛИ ИдентификаторОбъекта = "ОборотноСальдоваяВедомостьПоСчету"
ИЛИ ИдентификаторОбъекта = "ОборотыМеждуСубконто"
ИЛИ ИдентификаторОбъекта = "ОборотыСчета"
ИЛИ ИдентификаторОбъекта = "СводныеПроводки"
ИЛИ ИдентификаторОбъекта = "ГлавнаяКнига"
ИЛИ ИдентификаторОбъекта = "ШахматнаяВедомость" Тогда
ПараметрыРасшифровки.Вставить("ОткрытьОбъект", Ложь);
ЕстьПоказатель = Ложь;
ЕстьКорЗначение = Ложь;
ЕстьСчет = Истина;
Счет = Неопределено;
ПервыйЭлемент = Неопределено;
КонецЕсли;
Хорошо:
Если ОткрыватьОбъектПриИдентификаторе(ИдентификаторОбъекта) Тогда
ПараметрыРасшифровки.Вставить("ОткрытьОбъект", Ложь);
ЕстьПоказатель = Ложь;
ЕстьКорЗначение = Ложь;
ЕстьСчет = Истина;
Счет = Неопределено;
ПервыйЭлемент = Неопределено;
КонецЕсли;
Функция ОткрыватьОбъектПриИдентификаторе(ИдентификаторОбъекта)
Возврат ИдентификаторОбъекта = "АнализСубконто"
ИЛИ ИдентификаторОбъекта = "АнализСчета"
ИЛИ ИдентификаторОбъекта = "ОборотноСальдоваяВедомость"
ИЛИ ИдентификаторОбъекта = "ОборотноСальдоваяВедомостьПоСчету"
ИЛИ ИдентификаторОбъекта = "ОборотыМеждуСубконто"
ИЛИ ИдентификаторОбъекта = "ОборотыСчета"
ИЛИ ИдентификаторОбъекта = "СводныеПроводки"
ИЛИ ИдентификаторОбъекта = "ГлавнаяКнига"
ИЛИ ИдентификаторОбъекта = "ШахматнаяВедомость";
КонецФункции
Сниппеты¶
Экранирование кода¶
// BSLLS:IfConditionComplexity-off
// BSLLS:IfConditionComplexity-on
Параметр конфигурационного файла¶
"IfConditionComplexity": {
"maxIfConditionComplexity": 3
}