4.6. Операторы и синтаксические конструкции

Печать (Ctrl+P)

? (вычислить выражение по условию)

Описание:
Позволяет вычислить одно из двух заданных выражений в зависимости от результата вычисления логического выражения.
Синтаксис:
?(<Логическое выражение>, <Выражение 1>, <Выражение 2>)
Параметры:
Логическое выражение, результат вычисления которого определяет одно из результирующих выражений, которые будут вычислены. Если результат его
вычисления Истина, то будет вычисляться <Выражение 1>. Если результат Ложь, то <Выражение 2>.
Результирующее выражение, которое будет вычисляться, если результат логического выражения Истина.
Результирующее выражение, которое будет вычисляться, если результат логического выражения Ложь.
Результат вычисления одного из результирующих выражений.
Пример:
Статус = ?(ПолучитьСкидку() > 10, “Особый клиент”, “Обычный клиент”);
Предупреждение(Статус);

ВызватьИсключение (Raise)

Описание:
При использовании данной формы оператора вызывается новое исключение.
Синтаксис:
ВызватьИсключение <Выражение>
Англоязычный синтаксис:
Raise <Expression>
Параметры:
Результат вычисления выражения преобразуется к строке, и данная строка используется в качестве описания исключения.
Пример:
ВызватьИсключение “Документ не может быть проведен”;
См. также:
Описание оператора Попытка.

Выполнить (Execute)

Описание:
Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.
ВНИМАНИЕ! Не рекомендуется реализовывать с помощью этого метода существенную часть функциональности прикладных решений.
Примечание. Исполняемый код не может содержать в себе отдельных процедур или функций, т. к. исполнение кода само по себе идет в рамках
процедуры или функции, в которой использован этот оператор. А также не может содержать явного объявления переменных.
Синтаксис:
Выполнить(<Строка>)
Англоязычный синтаксис:
Execute(<Строка>)
Параметры:
Строка, содержащая текст исполняемого кода.
Пример:
// Выводит в окно сообщений текущую дату
Выполнить(“Сообщить(ТекущаяДата())”);

ДобавитьОбработчик (AddHandler)

Описание:
Добавляет обработчик события. При добавлении обработчика события производится проверка соответствия числа параметров события числу параметров метода, назначаемого в качестве обработчика.
Синтаксис:
ДобавитьОбработчик <Событие>, <ОбработчикСобытия>;
Англоязычный синтаксис:
AddHandler <Событие>, <ОбработчикСобытия>;
Параметры:
<Событие>
Событие, которому добавляется обработчик.
Событие задается в форме <Выражение>.<ИмяСобытия>, где:
● <Выражение> – произвольное выражение на встроенном языке. Его результатом должен быть объект, к событию которого добавляется обработчик.
● <ИмяСобытия> – идентификатор (имя) события. Процедура/функция-обработчик события.
Обработчиком события может являться метод объекта встроенного языка. Тогда <ОбработчикСобытия> задается как <Выражение>.<ИмяОбработчика>,
где:
● <Выражение> – произвольное выражение на встроенном языке. Его результатом должен быть объект, метод которого служит обработчиком события.
● <ИмяОбработчика> – имя метода обработчика события.
Также в качестве обработчика события может быть задана процедура/функция, находящаяся в области видимости. В этом случае обработчик события
задается как имя процедуры/функции.
Имеется возможность оформлять подписку на одноименные (в COM-объектах) события, но с разным числом параметров. Для этого на встроенном языке необходимо создать несколько обработчиков (каждый с указанием уникального имени и с указанием нужного количества параметров), а механизм подписки сам выберет нужный обработчик для нужной подписки.
Пример:

Обработка = Обработки.КонтрольДокумента.Создать();
Накладная = Документы.Накладная.СоздатьДокумент();
ДобавитьОбработчик Накладная.ПриЗаписи, Обработка.ПриЗаписиДокумента;
msword = Новый COMОбъект(“Word.Application”);
ДобавитьОбработчик msword.DocumentChange, ПриИзмененииДокумента;
Процедура ПриИзмененииДокумента()
Сообщить(“Документ изменен”);
КонецПроцедуры
Пример с разными параметрами:
// Обработчик без параметров
Процедура ОбработкаСобытия()
КонецПроцедуры
// Обработчик с одним параметром
Процедура ОбработкаСобытия2(Параметр)
КонецПроцедуры
// Объект может генерировать события как с параметром,
// так и без параметров
Объект = Новый COMОбъект(“Test.Events”);
ДобавитьОбработчик Объект.TestEvent, ОбработкаСобытия
ДобавитьОбработчик Объект.TestEvent, ОбработкаСобытия2

Для (For)

Описание:
Оператор цикла Для предназначен для циклического повторения операторов, находящихся внутри конструкции Цикл – КонецЦикла. Перед началом
выполнения цикла значение <Выражение 1> присваивается переменной <Имя переменной>. Значение <Имя переменной> автоматически увеличивается
при каждом проходе цикла. Величина приращения счетчика при каждом выполнении цикла равна 1. Цикл выполняется, пока значение переменной
<Имя переменной> меньше или равно значению <Выражение 2>. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.
Синтаксис:
Для <Имя переменной> = <Выражение 1> По <Выражение 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;

Англоязычный синтаксис:
For <Имя переменной> = <Выражение 1> To <Выражение 2> Do
// Операторы
[Break;]
// Операторы
[Continue;]
// Операторы
EndDo;
Параметры:

<Имя переменной> – Идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается на 1 при каждом повторении цикла. Так называемый счетчик цикла.
<Выражение 1> – Числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.
По – Синтаксическая связка для параметра <Выражение 2>
<Выражение 2> – Максимальное значение счетчика цикла. Когда переменная <Имя переменной> становится больше чем <Выражение 2>, выполнение оператора цикла Для
прекращается.
Цикл  –  операторы, следующие за ключевым словом Цикл, выполняются, пока значение переменной <Имя переменной> меньше или равно значению <Выражение 2>.
// Операторы
Исполняемый оператор или последовательность таких операторов.
Прервать – Позволяет прервать выполнение цикла в любой точке. После выполнения этого оператора управление передается оператору, следующему за ключевым словом КонецЦикла.
Продолжить – Немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле
цикла за ним, на данной итерации обхода не выполняются.
КонецЦикла – Ключевое слово, которое завершает структуру оператора цикла.
Пример:

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

Для каждого (For each)

Описание:
Оператор цикла Для каждого предназначен для циклического обхода коллекций значений. При каждой итерации цикла возвращается новый элемент коллекции. Обход осуществляется до тех пор, пока не будут перебраны все элементы коллекции, или может быть завершен досрочно при выполнении оператора Прервать.
Синтаксис:
Для каждого <Имя переменной 1> Из <Имя переменной 2> Цикл
// Операторы
[Прервать;]
// Операторы
[Продолжить;]
// Операторы
КонецЦикла;

Англоязычный синтаксис:

For each <Имя переменной 1> In <Имя переменной 2> Do
// Операторы
[Break;]
// Операторы
[Continue;]
// Операторы
EndDo;
Параметры
<Имя переменной> -Переменная, которой при каждом повторении цикла присваивается значение очередного элемента коллекции.
Из – Синтаксическая связка для параметра <Имя переменной 2>.
<Имя переменной 2> -Переменная или выражение, предоставляющее коллекцию. Элементы этой коллекции будут присваиваться параметру <Имя переменной 1>.
Цикл – Операторы, следующие за ключевым словом Цикл, выполняются до тех пор, пока не будут перебраны все элементы коллекции.
// Операторы

Исполняемый оператор или последовательность таких операторов.
Прервать – Позволяет прервать выполнение цикла в любой точке. После выполнения этого оператора управление передается оператору, следующему за ключевым словом КонецЦикла.
Продолжить – Немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Операторы, следующие в теле
цикла за ним, на данной итерации обхода не выполняются.
КонецЦикла – Ключевое слово, которое завершает структуру оператора цикла.
Пример:

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

КонецЦикла;
КонецЕсли;

Previous Article
Next Article

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.