Логические операции в 1С

Логическая операция позволяет сравнить два значения. Результатом будет значение типа Булево: Истина или Ложь.

Операции сравнения

  • =

Сравнивает два операнда на равенство. Если равны, то вернет Истина, если не равны вернет Ложь.

а = 1;
б = 2;
в = а = б; //Ложь
  • <>

Сравнивает два операнда. Если не равны, то вернет Истина, если равны вернет Ложь.

а = 1;
б = 2;
в = а <> б; //Истина
  • <

Если первый операнд меньше второго, то вернет Истина, иначе Ложь.

а = 1;
б = 2;
в = а < б; //Истина
  • >

Если первый операнд больше второго, то вернет Истина, иначе Ложь.

а = 1;
б = 2;
в = а > б; //Ложь
  • <=

Если первый операнд меньше или равен второму, то вернет Истина, иначе Ложь.

а = 1;
б = 1;
в = а <= б; //Истина
  • >=

Если первый операнд больше или равен второму, то вернет Истина, иначе Ложь.

а = 1;
б = 1;
в = а >= б; //Истина

На равенство, не равенство можно сравнивать любые типы данных. На больше, меньше можно сравнивать дату с датой, строку со строкой, число с числом и число с булево. При сравнении числа с булево сначала булево приводится к числу, а потом выполняется сравнение.

Булевы операции

Булевы операции выполняются над значениями типа Булево. Можно объединять несколько операций сравнения.

  • И

Логическое умножение, конъюнкция. Вернет Истина, если оба операнда равны Истина.

а = 1;
б = 2;
в = а = 1 И б = 1; //Ложь, так как б не равно 1
  • ИЛИ

Логическое сложение, дизъюнкция. Вернет Истина, если хотя бы один операнд равен Истина.

а = 1;
б = 2;
в = а = 1 И б = 1; //Истина, так как а равно 1
  • НЕ

Логическое отрицание. Вернет Истина, если операнд равен Ложь. Вернет Ложь, если операнд равен Истина.

а = Истина;
б = НЕ а; //Ложь

Выполняются только необходимые части выражения.

Например, в выражении в = а = 1 И б = 1, если а не равно 1, то сравнение б не имеет смысла, так как первый операнд уже не равен Истина.

В выражении в = а = 1 ИЛИ б = 1, если а равно 1, то сравнение б не имеет смысла, так первый операнд уже равен Истина.

Приоритеты вычисления выражений в 1С

В порядке понижения приоритета. Операторы с одинаковым приоритетом выполняются слева направо:

., ()Разыменование, вызов метода и т. п.
-,+Унарные плюс и минус
*, /, %Умножение, деление, остаток от деления
+, —Сложение, вычитание
<, <=, =, >=, >, <>Сравнение
Not/НеЛогическое отрицание
And/ИЛогическое умножение
Or/ИлиЛогическое сложение

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями: