Циклы в 1С на примерах
Цикл – это конструкция, которая предназначена для многократного исполнения неких инструкций. Во встроенном языке 1С существует три вида циклов «Пока», «Для» и «Для Каждого». Рассмотрим на примерах работу с каждым из них.
Содержание
Цикл «Пока»
Синтаксис:
Пока <Логическое выражение> Цикл
// Операторы
КонецЦикла;
Принцип работы такого цикла заключается в том, что операторы находящиеся после ключевого слова «Цикл», будут выполнятся пока логическое выражение будет равно ИСТИНА.
Пример:
Счётчик = 1; Пока Счётчик <= 5 Цикл Сообщить(Счётчик); Счётчик = Счётчик + 1; КонецЦикла;
В результате выполнения такого цикла, в окно сообщений будут последовательно выведены цифры от 1 до 5.
Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С.
Связаться с нами можно по телефону +7 499 350 29 00.
Услуги и цены можно увидеть по ссылке.
Будем рады помочь Вам!
Цикл «Для»
Синтаксис:
Для <Имя переменной> = <Начальное значение> По <Конечное значение> Цикл
// Операторы
КонецЦикла;
После начального присвоения значения для переменной после ключевого слова «Для», такой цикл прекратится, когда значение переменной будет меньше либо равно конечному значению после ключевого слова «По». В таком цикле приращение переменной происходит автоматически, и всегда равно «1».
Пример:
Для Счётчик = 1 По 5 Цикл Сообщить(Счётчик); КонецЦикла;
Результат:
Получите понятные самоучители по 1С бесплатно:
Цикл «Для Каждого»
Синтаксис:
Для Каждого <Элемент> Из <Коллекция> Цикл
// Операторы
КонецЦикла;
Такой вид циклов служит для обхода неких коллекций значений в 1с (массивов, таблиц значений, структур и т.д.). Цикл будет закончен, когда будут перебраны все элементы коллекции. Использование такого цикла рассмотрим на примере последовательного перебора всех элементов одномерного массива, с последующим выводом значений элементов в окно сообщений.
Пример кода:
// Создание массива Массив = Новый Массив(); // Наполнение массива Массив.Добавить("Элемент №1"); Массив.Добавить("Элемент №2"); Массив.Добавить("Элемент №3"); // Обход массива по элементам Для Каждого Элемент Из Массив Цикл Сообщить(Элемент); КонецЦикла;
Визуальное представление созданного массива в 1С:
Результат работы цикла:
Вложенные циклы
Во встроенном языке программирования 1С доступна возможность использования вложенных циклов. К классическому примеру использования таких конструкций можно отнести один из способов последовательного перебора всех ячеек таблицы значений.
Пример:
КоллекцияКолонок = ТаблицаЗначений.Колонки; Для Каждого ТекущаяСтрока Из ТаблицаЗначений Цикл Для Каждого ТекущаяКолонка Из КоллекцияКолонок Цикл // Получаем значение ячейки ТекущаяЯчейка = ТекущаяСтрока[ТекущаяКолонка.Имя]; КонецЦикла; КонецЦикла;
С помощью внешнего цикла мы последовательно получаем строки из коллекции «ТаблицаЗначений». Затем во внутреннем цикле, имея строку, получаем значение каждой ячейки из коллекции «КоллекцияКолонок».
Как организовать обратный цикл
Пример:
Счётчик = 5; Пока Счётчик >= 1 Цикл Сообщить(Счётчик); Счётчик = Счётчик - 1; КонецЦикла;
Результат:
Как принудительно продолжить цикл
Принудительный переход к следующей итерации в циклах 1С осуществляется с помощью оператора «Продолжить» (Continue).
Пример:
Для Счетчик = 1 По 5 Цикл Если Счетчик = 2 Тогда Продолжить; КонецЕсли; Сообщить(Счетчик); КонецЦикла;
В таком примере с помощью операторов «Если» и «Продолжить» пропускаем цифру «2».
Результат:
Как прервать цикл
Полный выход из цикла (прерывание) во встроенном языке программирования 1С осуществляется с помощью оператора «Прервать» (Break).
Пример:
Для Счетчик = 1 По 5 Цикл Если Счетчик = 2 Тогда Прервать; КонецЕсли; Сообщить(Счетчик); КонецЦикла;
Такой цикл перестанет выполняться, как только значение переменной «Счётчик» будет равно «2».
Результат: