Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1C_ПрикладноеПрограммирование8.doc
Скачиваний:
45
Добавлен:
22.09.2019
Размер:
51.67 Mб
Скачать

1.4.3.14 Оператор условного выполнения

Оператор условного выполнения позволяет выбирать один из путей продолжения вычислений, в зависимости от проверяемых логических условий. Синтаксис этого оператора:

Если <Логическое_выражение> Тогда

//операторы;

[ИначеЕсли <Логическое_выражение> Тогда]

//операторы;

[Иначе]

//операторы;

КонецЕсли;

Таблица 1.7 Описание параметров оператора условного выполнения

<Логическое_выражение>

Логическое выражение.

Тогда

Операторы следующие за «Тогда» выполняются, если результатом логического выражения в конструкции «Если» является истина.

//операторы

Исполняемый оператор или последовательность таких операторов.

ИначеЕсли

Логическое выражение, следующее за ключевым словом «ИначеЕсли» вычисляется только тогда, когда условия в «Если» и всех предшествующих «ИначеЕсли» оказались ложными. Операторы, следующие за конструкцией «ИначеЕсли — Тогда» выполняются, если результатом логического выражения в данном «ИначеЕсли» является истина.

Иначе

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

КонецЕсли

Ключевое слово, которое завершает структуру оператора условного выполнения.

Оператор «Если» управляет выполнением программы, основываясь на результате одного или более логических выражений. Оператор может содержать любое количество групп операторов, возглавляемых конструкциями «ИначеЕсли – Тогда» для построения более сложных логических конструкций, например:

Если (Строка1<Строка2) И (Строка1=”Место для подписи”) Тогда

Сообщить("Недостаточно места" );

КонецЕсли;

Если ДеньНедели(РабочаяДата) = 6 Тогда     Сообщить("Сегодня суббота.") ; ИначеЕсли ДеньНедели(РабочаяДата) = 7 Тогда     Сообщать("Сегодня воскресенье.") ; Иначе     Сообщить("Сегодня рабочий день."); КонецЕсли;

1.4.3.15 Операторы цикла

В языке 1С реализованы три оператора цикла:

  • оператор «Пока»;

  • оператор «Для»;

  • оператор «Для каждого».

Оператор «Пока» реализует итерационный цикл с заранее неизвестным числом повторений, и каждый раз при выполнении тела цикла решается вопрос, надо ли повторять тело цикла еще один раз. Этот оператор реализует цикл с предусловием, т.е. проверка условия повторения производится до выполнения тела цикла. Синтаксис этого оператора:

Пока <Логическое_выражение> Цикл

//операторы;

КонецЦикла;

Таблица 1.8 Описание параметров оператора «Пока»

<Логическое_выражение>

Логическое выражение.

Цикл

Операторы, следующие за ключевым сло­вом «Цикл», выполняются, пока результа­том логического выражения является истина.

//операторы;

Исполняемый оператор или последова­тельность таких операторов.

КонецЦикла

Ключевое слово, которое завершает структуру оператора цикла.

Оператор цикла «Пока» предназначен для циклического повторения операторов, находящиеся внутри конструкции «Цикл ... КонецЦикла». Цикл выполняется до тех пор, пока логическое выражение сохраняет значение «Истина». Условие выполнения цикла всегда проверяется в начале, перед выполнением цикла. Например:

I=1;

S=0;

Пока I<=10 Цикл

S=S+I;

I=I+1;

КонецЦикла;

Оператор выполнения цикла «Для» реализует арифметический цикл, в котором число повторений цикла известно до первого вхождения в тело цикла. Этот оператор реализует цикл с предусловиями, т.е. проверка условия повторения производится до выполнения тела цикла. Синтаксис этого оператора:

Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл

//Операторы;

КонецЦикла;

Таблица 1.9 Описание параметров оператора «Для»

<Имя_переменной>

Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается при каждом повторении цикла.

<Выражение 1>

Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.

По

Синтаксическая связка для параметра <Выражение 2>.

<Выражение 2>

Максимальное значение счетчика цикла. Когда переменная Имя_переменной становится больше чем <Выражение 2>, выполнение оператора цикла «Для» прекращается. Величина приращения счетчика при каж­дом выполнении цикла равна 1.

Цикл

Операторы следующие за ключевым словом Цикл выполняются, пока значение переменной Имя_переменной меньше значения <Выражение 2>.

//Операторы

Исполняемый оператор или последовательность таких операторов.

КонецЦикла

Ключевое слово, которое завершает структуру оператора цикла.

Оператор цикла «Для» предназначен для циклического повторения операторов, находящиеся внутри конструкции «Цикл ... КонецЦикла». Перед началом выполнения цикла значение <Выражение 1> присваивается переменной <Имя_переменной>. Значение <Имя_переменной> автоматически увеличивается при каждом проходе цикла. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение 2>. Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.

Пример:

// Перебор дней текущего месяца ПоследнийДеньМесяца = День(КонецМесяца(РабочаяДата)); Для ТекДень = 1 по ПоследнийДеньМесяца Цикл     Состояние("Обрабатывается день: " + ТекДень); // Операторы обработки очередного дня месяца КонецЦикла;

Оператор выполнения цикла «Для каждого» реализует арифметический цикл, в котором число повторений цикла известно до первого вхождения в тело цикла, это число элементов коллекции значений. Этот оператор реализует цикл с предусловиями, т.е. проверка условия повторения производится до выполнения тела цикла. Синтаксис этого оператора:

Для каждого <Имя переменной 1> Из <Имя переменной 2> Цикл

// Операторы

КонецЦикла;

Таблица 1.10 Описание параметров оператора «Для каждого»

<Имя_переменной 1>

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

Из

Синтаксическая связка для параметра <Имя переменной 2>.

<Имя переменной 2>

Переменная или выражение, предоставляющее коллекцию. Элементы этой коллекции будут присваиваться параметру <Имя переменной 1>.

Цикл

Операторы следующие за ключевым сло­вом Цикл выполняются, пока значение переменной Имя_переменной 1 пробегает все множество значений коллекции <Имя переменной 2>.

//Операторы

Исполняемый оператор или последовательность таких операторов.

КонецЦикла

Ключевое слово, которое завершает структуру оператора цикла.

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

Пример:

// Перебор строк табличной части документа. НужныйДокумент=Документы.РасходнаяНакладная.НайтиПоКоду(12345); // Проверим найден нужный нам документ или нет Если Не НужныйДокумент.Пустая() Тогда     Для каждого СтрокаСостава из НужныйДокумент.Состав Цикл     Состояние("Строка: " + Состав.Индекс(СтрокаСостава) + 1);     // Операторы обработки очередной строки табличной части   КонецЦикла;

КонецЕсли;