Для Каждого (For Each)

Цикл «Для Каждого» («For Each») — это цикл, задающий выполнение некоторой операции для элементов из заданного множества значений, без явного указания порядка перечисления этих элементов. Оператор цикла «Для Каждого» («For each») предназначен для циклического обхода множества значений. При каждой итерации цикла возвращается новый элемент множества. Обход осуществляется до тех пор, пока не будут перебраны все элементы множества.


Синтаксис:

Для Каждого [<ИмяПеременнойКлюча>,] <ИмяПеременной> Из <ИмяПеременнойМассива> Цикл

    // Операторы 

    [Прервать;]
    // Операторы 

    [Продолжить;]
    // Операторы

КонецЦикла

Или

For Each [<KeyVarName>,] <VarName> In <ArrayName> Do

    // Операторы 

    [Break;]
    // Операторы 

    [Continue;] 
    // Операторы

EndDo


Альтернативный синтаксис:

Для Каждого [<ИмяПеременнойКлюча>,] <ИмяПеременной> Из <ИмяПеременнойМассива>

/

    // Операторы 

    [Прервать;]
    // Операторы 

    [Продолжить;]
    // Операторы

\

Или

For Each [<KeyVarName>,] <VarName> In <ArrayName>

/

    // Операторы 

    [Break;]
    // Операторы 

    [Continue;] 
    // Операторы

\


<ИмяПеременнойКлюча> (<KeyVarName>) — переменная, которой при каждом повторении цикла присваивается значение ключа элемента из множества. Параметр не обязателен.

<ИмяПеременной> (<VarName>) — переменная, которой при каждом повторении цикла присваивается значение очередного элемента из множества.

Из (In) — синтаксическая связка для параметра <ИмяПеременнойМассива>.

<ИмяПеременнойМассива> (<ArrayName>) — переменная или выражение, представляющее множество. Элементы этого множества будут присваиваться переменной <ИмяПеременной>.

Цикл (Do) операторы, следующие за ключевым словом «Цикл», выполняются до тех пор, пока не будут перебраны все элементы множества <ИмяПеременнойМассива>.

// Операторы – исполняемый оператор или последовательность операторов.

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

Продолжить (Continue) — оператор, который немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле цикла за ним, на данной итерации обхода не выполняются. (См. подраздел «Продолжить (Continue)»).

КонецЦикла (EndDo) — ключевое слово, которое завершает структуру оператора цикла.


Пример:

//В массиве, получаемом при помощи метода «ПолучитьСписок» для
//справочника «СпрПользователи» перебираются все записи справочника
i = 0;
Для каждого ТекПользователь Из СпрПользователи.ПолучитьСписок() Цикл
    МассивПользователей[i] = ТекПользователь.ПолучитьИдентификатор();
    //В элемент формы «СписокПользователей» добавляюся строки с данными о пользователях
    ФормаАутентификации.СписокПользователей.ДобавитьЭлемент(i, ТекПользователь.Наименование);
    i = i + 1;
КонецЦикла;