Логическая операция позволяет сравнить два значения. Результатом будет значение типа Булево: Истина или Ложь.
Операции сравнения
- =
Сравнивает два операнда на равенство. Если равны, то вернет Истина, если не равны вернет Ложь.
1 2 3 |
а = 1; б = 2; в = а = б; //Ложь |
- <>
Сравнивает два операнда. Если не равны, то вернет Истина, если равны вернет Ложь.
1 2 3 |
а = 1; б = 2; в = а <> б; //Истина |
- <
Если первый операнд меньше второго, то вернет Истина, иначе Ложь.
1 2 3 |
а = 1; б = 2; в = а < б; //Истина |
- >
Если первый операнд больше второго, то вернет Истина, иначе Ложь.
1 2 3 |
а = 1; б = 2; в = а > б; //Ложь |
- <=
Если первый операнд меньше или равен второму, то вернет Истина, иначе Ложь.
1 2 3 |
а = 1; б = 1; в = а <= б; //Истина |
- >=
Если первый операнд больше или равен второму, то вернет Истина, иначе Ложь.
1 2 3 |
а = 1; б = 1; в = а >= б; //Истина |
На равенство, не равенство можно сравнивать любые типы данных. На больше, меньше можно сравнивать дату с датой, строку со строкой, число с числом и число с булево. При сравнении числа с булево сначала булево приводится к числу, а потом выполняется сравнение.
Все логические операции имеют одинаковый приоритет.
Булевы операции
Булевы операции выполняются над значениями типа Булево. Можно объединять несколько операций сравнения.
- И
Логическое умножение, конъюнкция. Вернет Истина, если оба операнда равны Истина.
1 2 3 |
а = 1; б = 2; в = а = 1 И б = 1; //Ложь, так как б не равно 1 |
- ИЛИ
Логическое сложение, дизъюнкция. Вернет Истина, если хотя бы один операнд равен Истина.
1 2 3 |
а = 1; б = 2; в = а = 1 И б = 1; //Истина, так как а равно 1 |
- НЕ
Логическое отрицание. Вернет Истина, если операнд равен Ложь. Вернет Ложь, если операнд равен Истина.
1 2 |
а = Истина; б = НЕ а; //Ложь |
Выполняются только необходимые части выражения.
Например, в выражении в = а = 1 И б = 1, если а не равно 1, то сравнение б не имеет смысла, так как первый операнд уже не равен Истина.
В выражении в = а = 1 ИЛИ б = 1, если а равно 1, то сравнение б не имеет смысла, так первый операнд уже равен Истина.
Приоритеты вычисления выражений в 1С
В порядке понижения приоритета. Операторы с одинаковым приоритетом выполняются слева направо:
., () | Разыменование, вызов метода и т. п. |
-,+ | Унарные плюс и минус |
*, /, % | Умножение, деление, остаток от деления |
+, — | Сложение, вычитание |
<, <=, =, >=, >, <> | Сравнение |
Not/Не | Логическое отрицание |
And/И | Логическое умножение |
Or/Или | Логическое сложение |