Пока: собрать нужное количество упаковок без бесконечного цикла

Учебные задачи

Условие проверяется перед каждым повтором. В теле нужно менять величину, от которой зависит завершение.

Где и как запускать

Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.

Подготовка

  1. Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.

  2. Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().

  3. Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.

  4. Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.

Процедура ВыполнитьПример() Экспорт
    НужноУпаковок = 3;
    Собрано = 0;
    Пока Собрано < НужноУпаковок Цикл
        Собрано = Собрано + 1;
        Сообщить("Собрана упаковка " + Строка(Собрано));
    КонецЦикла;
    Сообщить(Собрано = 3);
КонецПроцедуры

Разбор по шагам

  1. Положить Собрано=0 и цель 3.

  2. Перед первой итерацией 0<3, после неё Собрано=1.

  3. Повторить для 1<3 и 2<3; условие 3<3 уже Ложь.

  4. Поставьте цель 0: тело не выполнится ни разу.

Как проверить результат

  1. Сообщения об упаковках 1,2,3, затем Истина.

  2. Для цели 0 Собрано=0; проверка исходного результата 3 станет Ложь.

Ожидаемый результат

Причина завершения цикла показана по значениям каждой итерации.

На что обратить внимание

  1. Если убрать увеличение Собрано, цикл станет бесконечным.

  2. Не проверяйте цикл ожиданием внешней системы в рабочей базе.

  3. Пока не является паузой или планировщиком.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.