Имя: Пароль:
1C
 
Проверяется ли второе значение в условии, если первое не выполнено?
0 Shur1cIT
 
19.10.15
17:47
ТипЗНЧ(ОбъектКоллекции.ПодразделениеКт) = Тип("СправочникСсылка.ПодразделенияОрганизаций")  и  ОбъектКоллекции.Организация = Справочники.Организации.НайтиПоКоду("000000503")

тоесть если ТипЗНЧ(ОбъектКоллекции.ПодразделениеКт) = Тип("СправочникСсылка.ПодразделенияОрганизаций") равняеться ЛОЖЬ и по сути проверять второе условие после "И" смысла нет будет ли проверяться ОбъектКоллекции.Организация = Справочники.Организации.НайтиПоКоду("000000503")
1 Волшебник
 
модератор
19.10.15
17:49
Может не проверяться.
2 ДенисЧ
 
19.10.15
17:49
в 8ке обещают, что не проверяется
3 Смотрящий
 
19.10.15
17:49
(0) Не будет. 1С свою ВМ в данном конкретном случае содрало с С
4 Shur1cIT
 
19.10.15
17:50
то есть дополнительно условия на проверку рисовать не стоит?
5 Shur1cIT
 
19.10.15
17:50
ок спасибо
6 ДенисЧ
 
19.10.15
17:51
Проверку делать всегда нужно
7 Necessitudo
 
19.10.15
17:53
Если было бы ИЛИ - тогда бы проверялось.
8 anatoly
 
19.10.15
17:59
не проверяется.
это отлично видно в отладчике если каждое условие с новой строки писать:
Если ТипЗНЧ(ОбъектКоллекции.ПодразделениеКт) = Тип("СправочникСсылка.ПодразделенияОрганизаций")
    и ОбъектКоллекции.Организация = Справочники.Организации.НайтиПоКоду("000000503") Тогда
9 18_plus
 
19.10.15
18:25
а я всё равно пишу так, как будто проверяется.
мне так спокойнее.
10 EvgeniuXP
 
19.10.15
18:26
(7) если первое истина - то уже не проверяется
11 tznimble
 
19.10.15
18:31
(0) В 1С 8+ используется политика short circuit evaluation, то есть вычисляется часть выражения достаточная для определения результата. В Вашем случае, если первое сравнение дало ЛОЖЬ, второе не вычисляется.
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой