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

Использование итератора или счетчика цикла вне тела цикла

Обращение к итератору или счетчику цикла вне тела цикла может привести к ошибке.

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

Для Каждого Элемент Из Коллекция Цикл
    Сообщить(Элемент);
КонецЦикла;
НовоеЗначение = Элемент; // ошибка

или

Для Счетчик = 0 По Коллекция.Количество() - 1 Цикл
    Сообщить(Счетчик);
КонецЦикла;
НовоеЗначение = Счетчик; // ошибка

Так же не стоит получать первый элемент коллекции через перебор значений и прерывание цикла.

Плохая практика:

Для Каждого Элемент Из Коллекция Цикл
  Прервать;
КонецЦикла;
ПервыйЭлемент = Элемент; // ошибка

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

// sonar:IteratorOutsideTheLoop:off
// sonar:IteratorOutsideTheLoop:on