­
­

Законы де Моргана в 1С

топ 100 блогов fixin05.05.2016

Казалось бы, при чем Булева Алгебра к 1С?

Законы де Моргана в 1С

Предположим, есть задача - отобрать действующие договора на некую дату проверки &Дата.

При этом у договора есть дата начала и дата окончания, если дата окончания не задана, то договор действует до конца времен.

Как решается задача? В лоб так:


ВЫБРАТЬ Ссылка ИЗ Справочник.Договоры ГДЕ ДатаНачала <= &Дата И (ДатаОкончания >= &Дата ИЛИ ДатаОкончания = ДатаВремя(1,1,1))

Но операция ИЛИ вызывает некоторые проблемы по скорости, поэтому есть желание обойтись без нее. Как это сделать? Тут приходит на помощь законы Де Моргана.

Перепишем так:


ВЫБРАТЬ Ссылка ИЗ Справочник.Договоры ГДЕ ДатаНачала <= &Дата И НЕ (ДатаОкончания < &Дата И ДатаОкончания <> ДатаВремя(1,1,1))

И всё работает.

Проверяем выделенную зеленым часть условия:

1. Если дата окончания договора меньше даты проверки, то получим НЕ (ИСТИНА И ИСТИНА) = ЛОЖЬ

2. Если дата окончания договора больше или равно даты проверки, то получим НЕ (ЛОЖЬ И ИСТИНА) = ИСТИНА

3. Если дата окончания договора не заполнена, то получим НЕ (ЛОЖЬ) = истина.

Торжество формальной логики! Причем некоторые товарщи пытаются оптимизировать этот запрос через запросы с объединением, а ларчик открывается просто!

 

Оставить комментарий

Архив записей в блогах:
Сегодня я оказался на улице Ращупкина, что в Кунцево. Поворот, поворот, через двор,протер глаза - и вдруг: здравствуй, родной СССР! Я неплохо знаю Москву, слежу за её новостями и до сегодняшнего дня был уверен, что нынче уже в каждом районе налажено транспортное снабжение, магазин ...
Имею сказать в продолжение темы неприятностей Джоковича . Много веков внутри человечества идёт борьба двух концепций , о коих я неоднократно упоминал в этом журнале. Вот что совсем недавно написал об оной борьбе товарищ Мараховский. Обобщённо говоря, в нашем мире имеются только ...
Москва. Трубная площадь. Чудесный момент трансляции Радио Свобода. В кадр попал флаг ДНР и плакат про ДНР и ЛНР - святая Русь. Оператор растерялся, журналистка замолкла. После чего показали студию, откуда более профессиональный либераст строго спросил: - Почему полиция не пытается пресечь ...
Густав Климт. Шуберт за клавиром. 1899         Композитор Франц Шуберт порой весьма равнодушно относился к своим произведениям, и то, что уже ...
Покровский собор. Проект здания был заказан у Матвея Фёдоровича Казакова и в 1791 году состоялась закладка. На фото 1883 года пренебрежительно подписан как часовня.7 июля 1856 года по доносу митрополита Филарета алтари церквей на Рогожском кладбище были опечатаны. Распечатаны они были ...