Контекст обсуждения
Пример неверного кода:
Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда
Если ТолькоИзмененные Тогда
Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда
Какой-то Код();
КонецЕсли;
КонецЕсли;
КонецЕслИ;
более правильно сделать единое условие и одно Если
Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10")
И ТолькоИзмененные
И ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда
Какой-то Код();
КонецЕслИ;
Сценарий поведения
- Правило срабатывает на несколько вложений “Если”
- Не срабатывает при наличии “ИначеЕсли” или “Иначе”
- Учесть случай, когда на верхних уровнях нет “ИначеЕсли” или “Иначе”, а на нижних есть
- Например, для случая ниже правило должно сработать только для первых 2 Если, для последнего Если правило не должно сработать
Если ИспользуемаяВерсияПлатформыСтаршеИлиРавна("8.3.10") Тогда
Если ТолькоИзмененные Тогда // здесь работает
Если ПроверитьВозможностьОбновленияФайловВыгрузки(КаталогВыгрузки, ПутьКФайлуВерсийДляСравнения, ФорматВыгрузки) Тогда // а здесь уже работает
Какой-то Код();
Иначе
Другой Код();
КонецЕсли;
КонецЕсли;
КонецЕслИ;
PS в стат-анализаторах для разных языков такое правило.
Например, IDEA для Java предлагает такое.
@all Что скажете?