Пример: Как используется Сложные логические выражения в 1С
Пример 01.
X = 7;
Сообщить( (X >= 5) И (X <= 10) И (X % 2 <> 0) );
// Истина (7 между 5 и 10, и нечётное)
Пример 02.
Имя = "Саша";
Сообщить( ((Имя = "Саша") ИЛИ (Имя = "Маша")) И (СтрДлина(Имя) > 3) );
// Истина
Пример 03.
ДатаЗаказа = '2025-09-15';
Дедлайн = '2025-09-20';
КлиентVIP = Ложь;
Сообщить( (ДатаЗаказа <= Дедлайн) И (НЕ КлиентVIP) );
// Истина
Пример 04.
Возраст = 17;
Город = "Москва";
Сообщить( (Возраст >= 18) ИЛИ (Город = "Москва") );
// Истина (возраст не подошёл, но город "Москва")
Пример 05.
Баланс = 150;
VIP = Ложь;
Сообщить( (Баланс > 100) И (НЕ VIP) );
// Истина
Сложные логические выражения — это такие проверки, где соединяются сразу несколько условий.
Например: одно условие проверяет возраст, другое — город, а третье — статус клиента.
С помощью И, ИЛИ и НЕ мы объединяем их в одно выражение, и программа выдаёт итог: Истина или Ложь.
Это нужно, когда одной проверки недостаточно и важно учесть сразу несколько факторов.
Шпаргалка
- И — истинно, если обе части истинны.
- ИЛИ — истинно, если хотя бы одна часть истинна.
- НЕ — переворачивает результат.
- Приоритет:
НЕ>И>ИЛИ. В реальном коде ставь скобки.
Быстрые примеры (запусти в 1С)
Сообщить( (2 < 3) И (10 = 10) ); // Истина
Сообщить( (2 < 3) И (10 <> 10) ); // Ложь
Сообщить( (2 < 3) ИЛИ (10 = 5) ); // Истина
Сообщить( НЕ (2 < 3) ); // Ложь
// С датами
A = ДатаВремя(2024, 1, 1);
B = ДатаВремя(2024, 6, 1);
Сообщить( (A < B) И (Год(A) = 2024) ); // Истина
Паттерны из практики
// 1) Число в диапазоне [10..20]
X = 15;
ВДиапазоне = (X >= 10) И (X <= 20);
ОткрытьЗначение(ВДиапазоне); // Истина
// 2) Строка валидна: не пустая И длина ≥ 3
Имя = "Павел";
ВалидноИмя = (СтрДлина(Имя) > 0) И (СтрДлина(Имя) >= 3);
ОткрытьЗначение(ВалидноИмя); // Истина
// 3) Обработка заказа: успел по сроку ИЛИ клиент VIP
ДатаЗаказа = ДатаВремя(2025, 9, 1);
Дедлайн = ДатаВремя(2025, 9, 10);
КлиентVIP = Истина;
МожноОбработать = (ДатаЗаказа <= Дедлайн) ИЛИ КлиентVIP;
ОткрытьЗначение(МожноОбработать); // Истина
// 4) Де Морган (проверка эквивалентности)
A = Истина; B = Ложь;
Лево = НЕ (A И B);
Право = (НЕ A) ИЛИ (НЕ B);
Сообщить(Лево = Право); // Истина
Частые ошибки
- Забытые скобки → двусмысленный код. Всегда группируй:
(A) ИЛИ (B И (НЕ C)). - Смешивание типов (строка/число/дата). Делай явные преобразования:
Число(),ДатаВремя(). - «Ручные» даты строками для вычислений — избегай, работай через
ДатаВремя().
Самопроверка (с ответами)
Сообщить( (1 = 1) И (2 = 2) ); // Истина
Сообщить( НЕ (10 > 5) ); // Ложь
Сообщить( ("Солнце" = "Луна") ИЛИ ("Юпитер" = "Юпитер") ); // Истина
Сообщить( НЕ ("Солнце" = "Луна") ); // Истина
Сообщить( (10 <> 5) ИЛИ (5 = 5) ); // Истина
Сообщить( (Истина) ИЛИ (Ложь) ); // Истина
Сообщить( НЕ (Истина) ); // Ложь
Сообщить( (Ложь) И (Истина) ); // Ложь
Сообщить( (Ложь) ИЛИ (Истина) ); // Истина
Итог
Сложные логические выражения помогают проверять сразу несколько условий и принимать более «умные» решения в программе.
Главное помнить: И — все условия верны, ИЛИ — хотя бы одно, НЕ — меняет результат.
Скобки нужны для ясности. Это основа любой реальной логики в 1С.

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