Имя: Пароль:
1C
 
Условный оператор Если
, ,
0 Pepeega
 
10.03.21
13:16
Добрый день коллеги, возникла проблема, в связи с тем, что я не особо хорошо еще разбираюсь в "оптимизации" конструкции если, есть 2 переменные(булево) и 2 колонки тз, обзовём их "Булево1" "Булево2" "Приём1" "Приём2"(приём, колонки в ТЗ) написал условие

Если Булево1 и Булево2 И приём1 = 0 и приём2 = 0 Тогда
колонкаТЗ = 3
ИначеЕсли булево1 и приём1 = 0 Тогда
колонкаТЗ = 5
ИначеЕсли булево2 и приём2 = 0 Тогда
колонкаТЗ = 5
КонецЕсли;


Но сейчас сказали, что такое условие можно написать проще и  понятнее, не совсем понимаю, как его можно написать еще проще, подскажите, если кто-то понимает
1 ДенисЧ
 
10.03.21
13:17
А спросить у тех, кто сказали?
2 Pepeega
 
10.03.21
13:19
(1) к сожалению не подсказывают, я уже полчаса пробую, меняю условие, но все равно не то, что нужно выходит .-.
3 dka80
 
10.03.21
13:19
Если Булево1 и Булево2 И Не приём1 и Не приём2
4 Kassern
 
10.03.21
13:20
(2) объедини последние условия, по ним у тебя результат колонки одинаковый
5 dka80
 
10.03.21
13:20
Если Булево1 и Булево2 И Не(приём1 и приём2)
6 dka80
 
10.03.21
13:22
ИначеЕсли булево1 и приём1 = 0 Тогда
колонкаТЗ = 5
ИначеЕсли булево2 и приём2 = 0 Тогда
колонкаТЗ = 5
КонецЕсли;


ИначеЕсли (булево1 Или булево2) и Не(приём1 Или приём2 ) Тогда
колонкаТЗ = 5
КонецЕсли;
7 Злопчинский
 
10.03.21
13:22
Кривые данные. нет условий на прием1 и прием2 если они не ноль. отсюда - значение Прием1 и прием2 - несущественно.
остается операции с Б1 и Б2
8 Pepeega
 
10.03.21
13:22
(5) там же числа в колонке ТЗ хранятся, почему "И НЕ(приём1 и приём2)?
9 dka80
 
10.03.21
13:23
(8) потому что при сравнении 0 эквивалентно Ложь, а все остальное истина
10 Pepeega
 
10.03.21
13:24
(4) Пытался, но проще что-то не ставится
(6) Спасибо за пример, но конструкция ИначеЕсли которую вы написали, она же сложнее читается(мне, не знаю как остальным) или я тут не прав?
11 H A D G E H O G s
 
10.03.21
13:29
Правильно Пипега, а не Пепига.
12 Pepeega
 
10.03.21
13:30
(11) это специфичность Пепега
13 Йохохо
 
10.03.21
13:33
если  (а1 и б1) и (а2 и б2) тогда гоуту3
иначеесли (а1 и б1) или (а2 и б2) тогда гоуту5
14 Малыш Джон
 
10.03.21
13:36
а вы говорите зачем математика программисту нужна...
15 Pepeega
 
10.03.21
13:43
(13) Спасибо за пример
(14) тут вы правы
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший