Цикл — это конструкция, предназначенная для многократного выполнения набора инструкций. Во встроенном языке 1С существуют три вида циклов: «Пока», «Для» и «Для Каждого из». В этой статье подробно рассмотрим каждый из них, а также особенности работы с вложенными циклами, организацию обратных циклов и способы управления их выполнением.

Цикл «Пока»

Синтаксис:

Пока <Логическое выражение> Цикл
   // Операторы
КонецЦикла;

Этот цикл выполняется до тех пор, пока заданное логическое выражение истинно, т.е. возможно зацикливание

Пример:

Счётчик = 1;
Пока Счётчик <= 10 Цикл
    Сообщить(Счётчик);
    Счётчик = Счётчик + 1;
КонецЦикла;

Результат: В окно сообщений последовательно выводятся числа от 1 до 10. В даном случае приращение (итерацию) счетчика мы выполняем самостоятельно, шаг = 1

Цикл «Для»

Синтаксис:

Для Счётчик = 1 По 10 Цикл
      Сообщить(Счётчик);
КонецЦикла;

Этот цикл автоматически изменяет значение переменной от начального до конечного с шагом 1, в цикле для нельзя задавать шаг

Результат: В окно сообщений последовательно выводятся числа от 1 до 10.

Цикл «Для Каждого»

Используется для последовательной выборки с начала коллекции до конца, доступен для универсальных коллекций, или других объектов и свойств объектов 

Для Каждого Элемент Из МассивТаблица_ДругаяКолекция Цикл
   // Код в цикле	
КонецЦикла;

Результат: В окно сообщений выводятся все элементы массива.

Вложенные циклы

Во встроенном языке программирования 1С можно использовать циклы внутри циклов. Это особенно удобно при работе с многомерными структурами данных, но рекомендуется не применять излишнюю вложенность, иначе будет сложно выходить из таких циклов, без использования метода “Перейти” .

Пример:

Для Каждого Элемент Из МассивТаблица_ДругаяКолекция Цикл 
   // Код перед вложенным циклом
   Для Счетчик = 1 по  100 Цикл 
      // Код вложенного цикла
   КонецЦикла;                  
   // Код после вложенного цикла
КонецЦикла;

Обратный цикл

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

Пример:

Счётчик = 10;
Пока Счётчик >= 1 Цикл
	Сообщить(Счётчик);
	Счётчик = Счётчик - 1;
КонецЦикла;

Результат: В окно сообщений выводятся числа от 10 до 1.

Принудительное продолжение цикла

Для перехода к следующей итерации цикла используется оператор «Продолжить». Имеет смысл, когда код в цикле не всегда должен выполнятся.

 

Прерывание цикла

Для полного выхода из цикла применяется оператор «Прервать».

Эти конструкции позволяют эффективно решать задачи перебора данных, выполнения повторяющихся операций и управления процессом их выполнения в языке 1С:Предприятие.

Легче сочинить десять правильных сонетов, чем хорошее рекламное объявление.

— Олдос Леонард Хаксли