|  | Как будет работать логическое выражение «В1 и в2 или в3 или в3 или в4» ? | ☑ | 
    
        | 0
    
        Vladal   04.10.16✎ 09:49 | 
        Привет!
Как будет работать такое логическое условие?
 
 Если ТипЗнч(ТипКорпуса) = Тип("Строка")
 И ВРег(ТипКорпуса) = "СТРОЕНИЕ"
 ИЛИ ВРег(ТипКорпуса) = "СТРОЕН."
 ИЛИ ВРег(ТипКорпуса) = "СТР."
 ИЛИ ТраКторами = Перечисления.ТипыКорпусов.Строение Тогда
 Объект.ТипКорпуса = Перечисления.ТипыКорпусов.Строение
 Иначе
 Объект.ТипКорпуса = Перечисления.ТипыКорпусов.Корпус;
 КонецЕсли;
 
 По логике проверки надо бы поместить выражения в скобки:
 (В1 и (в2 или в3 или в3)) или в4
 
 Или и так будет работать без скребок как и со скобками? (В чем я сомневаюсь и решил обсудить)
 |  | 
    
        | 1
    
        SSSSS_AAAAA   04.10.16✎ 09:51 | 
        (0) "В чем я сомневаюсь и решил обсудить"
А не проще и быстрее свои сомнения проверить в отладчике по Shif-F9?
 |  | 
    
        | 2
    
        Vladal   04.10.16✎ 09:52 | 
        Ой. ТраКторами — ТипКорпуса. Пишу с мобильного.     |  | 
    
        | 3
    
        Vladal   04.10.16✎ 09:52 | 
        (1) нет. Религия запрещает.     |  | 
    
        | 4
    
        bodri   04.10.16✎ 09:53 | 
        а ещё можно кучу если натыкать     |  | 
    
        | 5
    
        Wit77   04.10.16✎ 09:54 | 
        по правилам булевой алгебры приоритет такой:
1. НЕ
 2. И
 3. ИЛИ
 в данном случае работать будет по порядку.
 сначала В1 И В2, потом полученный результат ИЛИ В3 и т.д.
 |  | 
    
        | 6
    
        Vladal   04.10.16✎ 09:56 | 
        (5) вот и я так подумал и потому взял в скобки. Вождь в3 может быть не всегда строкой, и потому только в2 проверится на тип "строка".     |  | 
    
        | 7
    
        В тылу врага   04.10.16✎ 09:56 | 
        не стесняйтесь ставить скобки     |  | 
    
        | 8
    
        aka AMIGO   04.10.16✎ 09:59 | 
        (0) Скобки не нужны, если в1 сочетается по условию только с в2.
 Если и с другими, т.е.
 В1 и В2 ИЛИ В1 и В3 ИЛИ В1 и В4
 
 - то скобки поставь.
 
 А вообще вопрос немного некорректный, надо знать условие задачи
 |  | 
    
        | 9
    
        Vladal   04.10.16✎ 09:59 | 
        Вождь — ведь.
 (7) да не хотелось делать много правок в типовом модуле, но приходится.
 |  | 
    
        | 10
    
        aka AMIGO   04.10.16✎ 10:00 | 
        В1 и В2 ИЛИ В1 и В3 ИЛИ В1 и В4 
 аналог этой строки: В1 и (В2 или В3 или В4)
 |  | 
    
        | 11
    
        aka AMIGO   04.10.16✎ 10:03 | 
        (6) Ммм.. тогда отбой посту (8)     |  | 
    
        | 12
    
        Mort   04.10.16✎ 10:11 | 
        Это отвратный код, перепишите его.     |  | 
    
        | 13
    
        cybfyv   04.10.16✎ 10:15 | 
        лучше скобки ставить - читабельность повышается     |  | 
    
        | 15
    
        Vladal   04.10.16✎ 10:28 | 
        (12) А как будет красиво?     |  | 
    
        | 16
    
        John83   04.10.16✎ 10:56 | 
        В1 * в2 + в3 + в3 + в4
возьми калькулятор и посчитай
 |  | 
    
        | 17
    
        aka AMIGO   04.10.16✎ 11:04 | 
        В топике:
В1 и в2 или в3 или в3 или в4
 
 Аналог в арифметике: В1 * в2 + в3 + в3 + в4
 
 в сабже:
 (В1 и (в2 или в3 или в3)) или в4
 
 Аналог: В1 * (в2 + в3 + в3) + в4
 
 Понимаешь, что даже в арифметике результаты вычислений двух выражений будут разными, а именно - зависеть от скобок?
 |  |