0,0
0,1
0,2
Цикл внутри тела другого цикла — обычная вложенность, у каждого уровня своя переменная счётчика/элемента:
Для Строка = 0 По 2 Цикл
Для Колонка = 0 По 2 Цикл
Сообщить(Строка + "," + Колонка); // 0,0 0,1 0,2 1,0 1,1 1,2 ...
КонецЦикла;
КонецЦикла;Прервать выходит только из ближайшего
В 1С нет меток циклов и конструкции вида «прервать сразу два уровня» — Прервать внутри внутреннего цикла останавливает только его, внешний продолжит следующую итерацию как ни в чём не бывало:
Для Строка = 0 По 2 Цикл
Для Колонка = 0 По 2 Цикл
Если Колонка = 1 Тогда
Прервать; // выходит только из цикла по Колонка
КонецЕсли;
КонецЦикла;
// сюда попадает на каждой итерации Строка
КонецЦикла;Нужно прервать сразу оба уровня — завести булеву переменную-флаг снаружи, проверять её в условии внешнего цикла (или в Если сразу после внутреннего КонецЦикла) и явно ставить перед Прервать внутри:
НужноОстановиться = Ложь;
Для Строка = 0 По 2 Цикл
Для Колонка = 0 По 2 Цикл
Если Строка = 1 И Колонка = 1 Тогда
НужноОстановиться = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если НужноОстановиться Тогда
Прервать;
КонецЕсли;
КонецЦикла;Если оба цикла — внутри отдельной процедуры/функции, часто проще выйти через Возврат, чем городить флаг.
← Циклы