Page 1 of 1

Вопрос про логику.

Posted: 2013-10-09 12:48:04
by Mirage
Условие:
Есть группа автомобилей. Красные жигули, зелёный москвич, красная bmw, черная ауди, синий мерс.
Есть ворота на которые нужно повесить условие открытия/неоткрытия. Иномарки пропускаются, классика - нет.

До покупки красной bmw условие было:

Code: Select all

Если цвет_машины=(зеленый) ИЛИ цвет_машины=(красный) Тогда
   открыть_ворота = лож;
конецесли;


Эти условия должны обязательно остаться но добавить исключение на бэху.

Сделал так:

Code: Select all

Если цвет_машины=(зеленый) ИЛИ цвет_машины=(красный) Тогда
   Если марка_машины=(BMW) Тогда
      открыть_ворота = истина;
   Иначе
      открыть_ворота = лож;
   конецесли;
конецесли;

Вроде все работает. Но смущает увеличение строк.


Вопрос - будет ли вышеприведенное решение равнозначно следующему:

Code: Select all

Если цвет_машины=(зеленый) ИЛИ (цвет_машины=(красный) И НЕ марка_машины=(BMW)) Тогда
      открыть ворота = лож;
конецесли;
?

Чето я никак не соображу а на живую тестировать сыкатно :shock:


ЗЫ это пример из 1С, все совпадения цвета и марка случайны :mrgreen:

Re: Вопрос про логику.

Posted: 2013-10-09 13:00:28
by ZeroDX
все в порядке =)

Re: Вопрос про логику.

Posted: 2013-10-09 13:02:53
by Mirage
Вчера (а точнее сегодня) сидел в 3 часа ночи - одной рукой бэкапил базу второй правил конфигу - сломал себе мозг на этом условии :mrgreen:

Re: Вопрос про логику.

Posted: 2013-10-09 13:10:37
by ZeroDX
не проще ли смотреть только марку?

Re: Вопрос про логику.

Posted: 2013-10-09 20:10:33
by Mirage
марок больше чем цветов и цвета изначально в большем количестве условий прописаны.

Re: Вопрос про логику.

Posted: 2013-10-20 07:46:29
by admir
Увидел, все ок но я бы оставил увеличение строк) поскольку в дальнейшем запутаешься, вдруг появится еще красный мерс или красный москвич. В таком случае втпервом если фильтруешь по цвету, а во втором по марке