Имя: Пароль:
1C
1С v8
Как будет работать логическое выражение «В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

Понимаешь, что даже в арифметике результаты вычислений двух выражений будут разными, а именно - зависеть от скобок?