|
Не заходит в процедуру в при конструкциИ "отказ или Условие()". Баг или фича? |
☑ |
0
ИС-2
27.06.13
✎
11:06
|
Платформа 8.1.15
Есть такой код:
ЕстьОшибка = ЕстьОшибка или не ПроверитьВозможностьОтгрузкиПоМенеджеру(Менеджер);
ЕстьОшибка = ЕстьОшибка или не ПроверитьВозможностьОтгузкиПоКонтрагенту(Контрагент);
ЕстьОшибка = ЕстьОшибка или не ПроверкаВозможностьОтгрузкиБонуснойНакладной();
заметил, что в проверки не всегда выполняются. Провел эксперемент:
ЕстьОшибка = ЕстьОшибка или не ПроверитьВозможностьОтгрузкиПоМенеджеру(Менеджер);
ЕстьОшибка = ЕстьОшибка или не ПроверитьВозможностьОтгузкиПоКонтрагенту(Контрагент);
ЕстьОшибка = ЕстьОшибка или истина;
// !!! теперь точно перестал заходить.
ЕстьОшибка = ЕстьОшибка или не ПроверкаВозможностьОтгрузкиБонуснойНакладной();
Это баг или фича???
|
|
1
Господин ПЖ
27.06.13
✎
11:08
|
покурить по или иногда нет нужды заходить во второе условие...
учите мат часть
|
|
2
Sammo
27.06.13
✎
11:10
|
Еще с 7.7. в случае И, если первая составляющая = Истина, тогда второе не считается.
|
|
3
ДенисЧ
27.06.13
✎
11:11
|
(2) в 77 считалось всё. В 8.* - по порядку
|
|
4
Maxus43
27.06.13
✎
11:12
|
(2) Ложь, а не истина. если истина - то проверяется второе условие.
Это не со времён 1с, это обычная логика
|
|
5
acsent
27.06.13
✎
11:17
|
(4) это не обычная логика, укороченная
|
|
6
Maxus43
27.06.13
✎
11:20
|
(5) правильная, ибо нет смысла проверять дальше, когда 100% условие будет выполнено, или не будет
|
|
7
Mitriy
27.06.13
✎
11:23
|
ничего не понял... код из (0) должен выполняться последовательно, причем тут вообще И? Если в ИЛИ первый результат ИСТИНА, то остальные на фиг не интересны...
|
|
8
mxs089
27.06.13
✎
11:24
|
извини, но это тупой вопрос, насколько мне память не изменяет, это во всех языках программирования, зачем проверять что-то, если результат заведомо известен
|
|
9
kinno
27.06.13
✎
11:26
|
В случае условия "И" благодаря этому бывает очень удобно, в первой половине условия проверять на тип значения, а во второй части после "И" на значение реквизита.
Например так:
ТиЗнч(ДокументСсылка) = Тип("ДокументСсылка.ТребованиеНакладная") И ДокументСсылка.МойРеквизит = ОтборПоРеквизиту
|
|
10
mxs089
27.06.13
✎
11:28
|
(8) касательно ИЛИ, если И проверяются все условия
|
|
11
Mitriy
27.06.13
✎
11:29
|
(10) если Ложь, то не все...
|
|
12
mxs089
27.06.13
✎
11:32
|
(11) да, до первого Истина
|
|
13
Maxus43
27.06.13
✎
11:47
|
(12) до всех Истина, а прерывается на первом Ложь
|
|
14
mxs089
27.06.13
✎
11:50
|
при ИЛИ?
|
|
16
Sammo
27.06.13
✎
11:58
|
(3) mia culpa. С 8.0. Вспомнил - были вопросы от семерочников при переходе.
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой