Сложение определено для следующих типов операндов:
Число + Число
Дата + Число (к дате прибавляется число дней)
Вычитание определено для следующих типов операндов:
Число – Число
Дата – Число (от даты отнимается число дней)
Дата – Дата (результатом является число дней между датами)
Умножение:
Число * Число
Деление:
Число / Число
Остаток от деления:
Число % Число
Замечание. При выполнении операции % (остаток от деления) оба операнда операции округляются до целого значения.
Операция конкатенации
Операция конкатенации ("+") используется для того, чтобы присоединить одну строку к другой. Длина результирующей строки равна сумме длин соединяемых строк. В случае несовпадения типа данных второго или последующих операндов со строковым типом, их значение преобразуется к строковому типу в соответствии с правилами преобразования типов.
Пример:
ФИО="Иванов"+"Иван"+"Иванович";
Логические операции
Логическая операция сравнивает операнды и вырабатывает логическое значение: «истина» или «ложь». Существует два вида логических операций: операции сравнения и булевы операции. В операциях сравнения сравниваются два значения. Булевы операции выполняются над логическими значениями, реализуя булеву алгебру. Символы булевых операций могут комбинироваться, образуя составные операции.
Операции сравнения
В языке определены следующие виды операций сравнения:
Больше (Оп1 > Оп2)
больше или равно (Оп1 >= Оп2)
равно (Оп1 = Оп2)
не равно (Оп1 <> Оп2)
меньше (Оп1 < Оп2)
меньше или равно (Оп1 <= Оп2)
Операции сравнения определены для следующих типов операндов:
Больше
Число > Число
Строка > Строка
Дата > Дата
Больше или равно:
Число >= Число
Строка >= Строка
Дата >= Дата
Меньше:
Число < Число
Строка < Строка
Дата < Дата
Меньше или равно:
Число <= Число
Строка <= Строка
Дата <= Дата
Равно:
Число = Число
Строка = Строка
Дата = Дата
АгрегатныйТип = АгрегатныйТип
Не равно:
Число <> Число
Строка <> Строка
Дата <> Дата
АгрегатныйТип <> АгрегатныйТип
Булевы операции
В языке определены следующие виды булевых операций:
И или AND – конъюнкция (булево И)
ИЛИ или OR – дизъюнкция (булево ИЛИ)
НЕ или NOT – логическое отрицание (булево отрицание НЕ)
Выражения
Выражение – это математическая или логическая формула, по которой вычисляется значение. Математическое выражение может стоять справа от знака равенства в операторах присваивания, быть параметром процедур или функций, индексом массива переменных. Логическое выражение может быть условием в управляющих операторах Если, Пока, Для. Выражения состоят из констант, переменных и функций, связанных символами логических и/или арифметических операций. Информацию о стандартных функциях базовых типов можно получить в Синтаксис–Помощнике (рисунок 2.2.1).
Рисунок 2.2.1
- Строковые выражения
Строковые выражения могут использоваться в качестве параметров методов, процедур и функций, либо в правой части оператора присваивания. Строковым выражением может быть отдельная строка или сложное сочетание строковых констант, функций и операций. То, что выражение является строковым, определяется по первому операнду. В случае несовпадения типа второго и последующих операндов со строковым типом, их значения преобразуются к требуемому типу в соответствии с правилами преобразования типов. Чтобы указать, что выражение является строковым, можно, например, начинать его с пустой строки символов "".
Пример:
Стр = СокрП("Фамилия" + ", " + Имя + ", " + " отчество");
Стр1 = "" + Докум.Цена + Валюта.СокрНаим;
Логические выражения
В логических выражениях происходит вычисление логического значения (истина/ложь). Обычно логические выражения используются в управляющих операторах, в которых на основании результата логического выражения определяется дальнейшая последовательность выполнения программы. Логические выражения вычисляются слева направо. Для того, чтобы избежать неоднозначности и управлять последовательностью операндов, следует применять круглые скобки.
Уровни старшинства логических операций:
Уровень 1 операнды, заключенные в скобки
Уровень 2 NOT
Уровень 3 AND
Уровень 4 OR
Пример:
Стр = "Угадал!";
а = ВвестиСтроку(Стр, "Назови пароль!", 15);
Если (а=1) И ((Стр = "пароль") ИЛИ (Стр = "Пароль")) Тогда
Сообщить(Стр);
КонецЕсли;
Оператор присваивания
Синтаксис:
<Назначение> = <Источник>;
Параметры:
В качестве <Назначения> может выступать простая переменная, элемент массива, атрибут агрегатного типа данных (который допускает запись). Элемент массива задается как Имя_массива[Индексное_выражение].
<Источник> - выражение.
Описание:
Оператор присваивания (символ "=") означает присваивание значения <Источник> переменной, обозначенной как <Назначение>.
Пример:
А = В;
Стр1 = "777";
ДатаДок = '14.04.96';
Обращаем внимание, что в конце каждого оператора ставится точка с запятой.
2.3 Управляющие операторы
Оператор условия (аналогичен оператору IF в Паскале)
Синтаксис:
Если <Логическое_выражение1> Тогда
операторы1;
[ИначеЕсли <Логическое_выражение2> Тогда]
операторы2;
[Иначе]
операторы3;
КонецЕсли;
Части оператора, заключенные в квадратные скобки, могут отсутствовать. Сами квадратные скобки в программе не пишутся. Оператор может содержать любое количество групп операторов, возглавляемых конструкциями ИначеЕсли … Тогда. Обратите внимание, что операторы смещены «вглубь» оператора. Это делается для того, чтобы визуально выделить каждую часть оператора Если.
Оператор работает следующим образом: если результатом <Логическое_выражение1> является истина выполнятся последовательность операторов операторы1 и начинают выполняться операторы стоящие за КонецЕсли. Логическое выражение <Логическое_выражение2> вычисляется только тогда, когда условия в Если и всех предшествующих ИначеЕсли оказались ложными. Операторы, следующие за ключевым словом Иначе выполняются, если результаты логических выражений в конструкции Если и всех предшествующих конструкциях ИначеЕсли оказались ложными. КонецЕсли – ключевое слово, которое завершает структуру оператора условного выполнения.
Пример:
Если a=1 Тогда
x=5;
ИначеЕсли a=2 Тогда
x=6;
ИначеЕсли a=3 Тогда
x=7;
Иначе
x=10;
КонецЕсли;
Цикл с предусловием (аналогичен оператору While … Do в Паскале)
Синтаксис:
Пока <Логическое_выражение> Цикл
операторы;
КонецЦикла;
Цикл работает следующим образом: операторы, следующие за ключевым словом Цикл, выполняются, пока результатом <Логическое_выражение> является истина.
Оператор цикла Пока предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл … КонецЦикла. Цикл выполняется пока логическое выражение – истина. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.
Пример:
a=1;
Пока (a<10) Цикл
a=a+1;
КонецЦикла;
Цикл со счетчиком (аналогичен оператору For в Паскале)
Синтаксис:
Для <Имя_переменной> = <Выражение1> По <Выражение2> Цикл
Операторы;
КонецЦикла;
Параметры:
<Имя_переменной> – идентификатор переменной (счетчика цикла), значение которой автоматически увеличивается при каждом повторении цикла.
<Выражение 1> – числовое выражение, которое задает начальное значение, присваиваемое счетчику цикла при первом проходе цикла.
<Выражение 2> – максимальное значение счетчика цикла. Когда переменная <Имя_переменной> становится больше чем <Выражение2>, выполнение оператора цикла прекращается. Величина приращения счетчика при каждом выполнении цикла равна 1.
Операторы следующие за ключевым словом Цикл выполняются, пока значение переменной <Имя_переменной> меньше значения <Выражение2>.
Оператор цикла Для предназначен для циклического повторения операторов, находящиеся внутри конструкции Цикл ... КонецЦикла. Перед началом выполнения цикла значение <Выражение1> присваивается переменной <Имя_переменной>. Значение <Имя_переменной> автоматически увеличивается при каждом проходе цикла. Цикл выполняется пока значение переменной <Имя_переменной> меньше или равно значению <Выражение2>. Величина приращения счетчика при каждом выполнении цикла равна 1. Условие выполнения цикла всегда проверяется вначале, перед выполнением цикла.
Пример:
Для i = 1 по 10 Цикл
x = x + i;
КонецЦикла;
Продолжить (аналогичен оператору Continue в Паскале)
Синтаксис:
Продолжить;
Описание:
Передает управление в начало цикла. Оператор Продолжить немедленно передает управление в начало цикла, где производится вычисление и проверка условий выполнения цикла. Оператор Продолжить может использоваться только внутри конструкций операторов цикла Пока и Для.
Пример:
Для i = 1 По 10 Цикл
Если i < 5 Тогда
Продолжить;
КонецЕсли;
x = x + i;
КонецЦикла;
Прервать (аналогичен оператору Break в Паскале)
Синтаксис:
Прервать;
Прерывает выполнение цикла. Оператор Прервать приводит к немедленному прекращению выполнения цикла и передает управление первому оператору, следующему за конструкцией оператора Пока или Для. Оператор Прервать может использоваться только внутри конструкций операторов цикла Пока и Для.
Пример:
Для i = 1 По 20 Цикл
x = x + i;
Если i=10 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат
Синтаксис:
Возврат [<Выражение>];
Параметры:
<Выражение> – выражение, значение которого содержит результат обращения к функции. Этот параметр обязателен для оператора Возврат в теле описания функции, но может не использоваться в процедуре.
Описание:
Оператор Возврат завершает выполнение процедуры или функции и передает управление в вызвавшую точку программы. Оператор Возврат обязателен в функции и необязателен в процедуре. Если в процедуре не используется оператор Возврат, то его неявное выполнение происходит вслед за последним исполняемым оператором процедуры. Данный оператор может применяться только в теле описания процедуры или функции, причем <Выражение> может задаваться только в случае использования оператора в контексте функции.
Пример:
Функция ДеньНедели(Номер)
Если Номер =1 Тогда
Возврат "понедельник";
ИначеЕсли Номер =2 Тогда
Возврат "вторник";
ИначеЕсли Номер =3 Тогда
Возврат "среда";
ИначеЕсли Номер =4 Тогда
Возврат "четверг";
ИначеЕсли Номер =5 Тогда
Возврат "пятница";
ИначеЕсли Номер =6 Тогда
Возврат "суббота";
ИначеЕсли Номер =7 Тогда
Возврат "воскресенье";
Иначе
Возврат "ошибка";
КонецЕсли;
КонецФункции
Попытка
Синтаксис:
Попытка
Некоторые действия;
Исключение
Обработка исключительной ситуации;
КонецПопытки;
Параметры:
Некоторые действия – исполняемый оператор или последовательность таких операторов.
Обработка исключительной ситуации – исполняемый оператор или последовательность операторов, которые обрабатывают исключительную ситуацию.
Описание:
Оператор Попытка управляет выполнением программы, основываясь на возникающие при выполнении модуля ошибочные (исключительные) ситуации и определяет обработку этих ситуаций.
В качестве ошибочных (исключительных) ситуаций воспринимаются ошибки времени выполнения модуля. Не предусмотрено определяемых пользователем исключений.
Если при выполнении последовательности операторов <Некоторые действия> произошла ошибка времени выполнения (деление на 0, извлечение корня из отрицательного числа и т.д.), то выполнение оператора, вызвавшего ошибку прерывается и управление передается на первый оператор последовательности операторов <Обработка исключительной ситуации>. После выполнения последовательности операторов <Обработка исключительной ситуации> управление передается на следующий за ключевым словом КонецПопытки оператор. Если же последовательность <Некоторые действия> выполнилась без ошибок, то последовательность операторов <Обработка исключительной ситуации> будет пропущена и управление также будет продолжено с оператора, следующего за ключевым словом КонецПопытки.