Перенос логических выражений
Сложные логические условия в Если…ИначеЕсли…КонецЕсли
следует переносить следующим образом:
- каждое элементарное условие нужно начинать с новой строки, если длина строки превышает ограничение в 120 символов;
- логические операторы И, ИЛИ ставятся в начале строки, а не в конце предыдущей строки;
- все условия предваряются стандартным отступом, либо выравниваются по началу первого условия, без учета логического оператора (для выравнивания выражений относительно первой строки рекомендуется использовать пробелы).
Примеры:
Если (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозница)
ИЛИ (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозницаКомиссия) Тогда
Возврат Истина;
КонецЕсли;
Если ((СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокПроцедуры)
ИЛИ (СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокФункции))
И (Найти(ВРЕГ(СтруктураМодуля[Индекс].Текст), КлючБлока)> 0) Тогда
Неправильно:
Если (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозница)
ИЛИ (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозницаКомиссия) Тогда
Возврат Истина;
КонецЕсли;
Если ((СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокПроцедуры) ИЛИ
(СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокФункции)) И
(Найти(ВРЕГ(СтруктураМодуля[Индекс].Текст), КлючБлока)> 0) Тогда
Особенности
Наличие дополнительного отступа у перенесенных условий проверяется по умолчанию, может быть отключено с помощью параметра Проверять наличие дополнительных отступов при переносе
.
См. также
Экранирование кода
// sonar:WrappingBooleanExpressions:off
// sonar:WrappingBooleanExpressions:on