Выражение — это математическая или логическая формула, по которой вычисляется значение. Математическое выражение может стоять справа от знака равенства в операторах присваивания, быть параметром процедур или функций, индексом массива переменных. Логическое выражение может быть условием в управляющих операторах Если, Пока, Для. Выражения состоят из констант, переменных и функций, связанных символами логических и/или арифметических операций.
В языке определены следующие виды арифметических операций:
сложение |
(Оп1 + Оп2) |
вычитание |
(Оп1 - Оп2) |
умножение |
(Оп1 * Оп2) |
деление |
(Оп1 / Оп2) |
остаток от деления |
(Оп1 % Оп2) |
унарный минус |
(-Оп1) |
Арифметические операции имеют один или два операнда, в зависимости от типа которых операция имеет ту или иную семантику. Тот или иной семантический вариант операции определяется по первому операнду. В случае несовпадения типа второго операнда с требуемым, значение преобразуется к требуемому типу в соответствии с правилами преобразования типов. Если тип первого операнда не соответствует ни одному из допустимых типов, то в зависимости от ситуации может производиться преобразование типов или возбуждаться состояние ошибки выполнения.
Сложение определено для следующих типов операндов: |
Число + Число |
Дата + Число (к дате прибавляется число дней) |
|
Вычитание определено для следующих типов операндов: |
Число – Число |
Дата – Число (от даты отнимается число дней) |
|
Дата – Дата (результатом является число дней между датами) |
|
Умножение: |
Число * Число |
Деление: |
Число / Число |
Остаток от деления: |
Число % Число |
Замечание. При выполнении операции % (остаток от деления) оба операнда операции округляются до целого значения.
Операция конкатенации ("+") используется для того, чтобы присоединить одну строку к другой. Длина результирующей строки равна сумме длин соединяемых строк. В случае несовпадения типа данных второго или последующих операндов со строковым типом, их значение преобразуется к строковому типу в соответствии с правилами преобразования типов.
Пример:
· Для того, чтобы удалить ненужные пробелы, используются системные функции СокрЛ и СокрП.
ФИО = СокрП(Фамилия) + " " + СокрП(Имя) + " " + СокрП(Отчество);
Логическая операция сравнивает операнды и вырабатывает логическое значение: «истина» или «ложь». Существует два вида логических операций: операции сравнения и булевы операции. В операциях сравнения сравниваются два значения. Булевы операции выполняются над логическими значениями, реализуя булеву алгебру. Символы булевых операций могут комбинироваться, образуя составные операции.
Операции сравнения:
В языке определены следующие виды операций сравнения:
больше |
(Оп1 > Оп2) |
больше или равно |
(Оп1 >= Оп2) |
равно |
(Оп1 = Оп2) |
не равно |
(Оп1 <> Оп2) |
меньше |
(Оп1 < Оп2) |
меньше или равно |
(Оп1 <= Оп2) |
Операции сравнения определены для следующих типов операндов:
Больше |
Число > Число |
Строка > Строка |
|
Дата > Дата |
|
Больше или равно: |
Число >= Число |
Строка >= Строка |
|
Дата >= Дата |
|
Меньше: |
Число < Число |
Строка < Строка |
|
Дата < Дата |
|
Меньше или равно: |
Число <= Число |
Строка <= Строка |
|
Дата <= Дата |
|
Равно: |
Число = Число |
Строка = Строка |
|
Дата = Дата |
|
АгрегатныйТип = АгрегатныйТип |
|
Не равно: |
Число <> Число |
Строка <> Строка |
|
Дата <> Дата |
|
АгрегатныйТип <> АгрегатныйТип |
Булевы операции:
В языке определены следующие виды булевых операций:
И или AND |
конъюнкция (булево И) |
ИЛИ или OR |
дизъюнкция (булево ИЛИ) |
НЕ или NOT |
логическое отрицание (булево отрицание НЕ) |
Константа числового типа представляется в виде:
[‘+’| ‘-’]{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}[.{‘0’|’1’|’2’|’3’|’4’|’5’|’6’|’7’|’8’|’9’}]
Пример:
0 123 -15 +24.11 0.245
Дата задается в формате 'ДД.ММ.ГГ' или 'ДД.ММ.ГГГГ' (дата заключается в одиночные кавычки). Неопределенная дата задается как '00.00.00'.
Пример:
'12.04.95' '01.01.1996'
Константа строкового типа представляется как любая последовательность символов, заключенных в двойные кавычки.
Пример:
"Ура заработала"
"Это самая правильная строка"
" "
Кроме того, допускаются «многострочные» строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами:
· Первый вариант: В данном случае между фрагментами, представляющими отдельные строки многострочной константы, не должно встречаться никаких символов, за исключением пробелов, переводов строки и строк комментариев.
Пример:
Стр = "Первая строка" // пример строковой константы
"Вторая строка"
"Третья строка";
· Второй вариант: В данном примере значение константы полностью идентично предыдущему примеру. Отличие заключается в том, что каждая отдельная составляющая не замыкается кавычками, а на каждой последующей строке помещен символ переноса строки "|". В этом варианте комментарии между открывающей и закрывающей кавычками не допускаются.
Пример:
Стр = "Первая строка
|Вторая строка
|Третья строка";
Строковые выражения могут использоваться в качестве параметров методов, процедур и функций, либо в правой части оператора присваивания. Строковым выражением может быть отдельная строка или сложное сочетание строковых констант, функций и операций. То, что выражение является строковым, определяется по первому операнду. В случае несовпадения типа второго и последующих операндов со строковым типом, их значения преобразуются к требуемому типу в соответствии с правилами преобразования типов. Чтобы указать, что выражение является строковым, можно, например, начинать его с пустой строки символов "".
Пример:
Стр = СокрП("Фамилия" + ", " + Имя + ", " + " отчество");
Стр1 = "" + Докум.Цена + Валюта.СокрНаим;
В логических выражениях происходит вычисление логического значения (истина/ложь). Обычно логические выражения используются в управляющих операторах, в которых на основании результата логического выражения определяется дальнейшая последовательность выполнения программы. Логические выражения вычисляются слева направо. Для того, чтобы избежать неоднозначности и управлять последовательностью операндов, следует применять круглые скобки.
Уровни старшинства логических операций:
Уровень 1 |
операнды, заключенные в скобки |
Уровень 2 |
NOT |
Уровень 3 |
AND |
Уровень 4 |
OR |
Пример:
Стр = "Угадал!";
а = ВвестиСтроку(Стр, "Назови пароль!", 15);
Если (а=1) И ((Стр = "пароль") ИЛИ (Стр = "Пароль")) Тогда
Сообщить(Стр);
КонецЕсли;
Синтаксис:
<Назначение> = <Источник>;
Параметры:
<Назначение> |
В качестве <Назначения> может выступать простая переменная, элемент массива, атрибут агрегатного типа данных (который допускает запись). Элемент массива задается как Имя_массива[Индексное_выражение]. |
<Источник> |
Выражение. |
Описание:
Оператор присваивания (символ "=") означает присваивание значения <Источник> переменной, обозначенной как <Назначение>.
Пример:
А = В;
Стр1 = "777";
ДатаДок = '14.04.96';