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

Перенос логических выражений

Сложные логические условия в Если…ИначеЕсли…КонецЕсли следует переносить следующим образом:

  • каждое элементарное условие нужно начинать с новой строки, если длина строки превышает ограничение в 120 символов;
  • логические операторы И, ИЛИ ставятся в начале строки, а не в конце предыдущей строки;
  • все условия предваряются стандартным отступом, либо выравниваются по началу первого условия, без учета логического оператора (для выравнивания выражений относительно первой строки рекомендуется использовать пробелы).

Примеры:

Если (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозница)
    ИЛИ (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозницаКомиссия) Тогда
    Возврат Истина;
КонецЕсли;
Если ((СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокПроцедуры)
    ИЛИ (СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокФункции))
    И (Найти(ВРЕГ(СтруктураМодуля[Индекс].Текст), КлючБлока)> 0) Тогда

Неправильно:

Если (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозница)
ИЛИ (ВидОперации = Перечисления.ВидыОперацийПоступлениеМПЗ.ПоступлениеРозницаКомиссия) Тогда
    Возврат Истина;
КонецЕсли;
Если ((СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокПроцедуры) ИЛИ
    (СтруктураМодуля[Индекс].Блок = Перечисления.ТипыБлоковМодулей.ЗаголовокФункции)) И
    (Найти(ВРЕГ(СтруктураМодуля[Индекс].Текст), КлючБлока)> 0) Тогда

Особенности

Наличие дополнительного отступа у перенесенных условий проверяется по умолчанию, может быть отключено с помощью параметра Проверять наличие дополнительных отступов при переносе.

См. также

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

// sonar:WrappingBooleanExpressions:off
// sonar:WrappingBooleanExpressions:on