Условие проверяется перед каждым повтором. В теле нужно менять величину, от которой зависит завершение.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
НужноУпаковок = 3;
Собрано = 0;
Пока Собрано < НужноУпаковок Цикл
Собрано = Собрано + 1;
Сообщить("Собрана упаковка " + Строка(Собрано));
КонецЦикла;
Сообщить(Собрано = 3);
КонецПроцедурыРазбор по шагам
Положить Собрано=0 и цель 3.
Перед первой итерацией 0<3, после неё Собрано=1.
Повторить для 1<3 и 2<3; условие 3<3 уже Ложь.
Поставьте цель 0: тело не выполнится ни разу.
Как проверить результат
Сообщения об упаковках 1,2,3, затем Истина.
Для цели 0 Собрано=0; проверка исходного результата 3 станет Ложь.
Ожидаемый результат
Причина завершения цикла показана по значениям каждой итерации.
На что обратить внимание
Если убрать увеличение Собрано, цикл станет бесконечным.
Не проверяйте цикл ожиданием внешней системы в рабочей базе.
Пока не является паузой или планировщиком.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.