Имя: Пароль:
1C
 
Помогите разобраться с ЕСЛИ (проблемы с пониманием булевой алгебры)
,
0 tatoshka0403
 
15.03.16
14:36
Написал ЕСЛИ, но на иначе у меня не переходит, смотрю по отладке хорошо.

Если (СтрокаТаблицы.ТипЦен<>ТипЦенПоступление) ИЛИ (СтрокаТаблицы.ТипЦен<>ТипЦенСклад) тогда
            Сообщить(СтрокаТаблицы.ТипЦен);
            ТипыЦен.Удалить(СтрокаТаблицы);
Иначе
    Сч = Сч + 1;
КонецЕсли;

Вот моя отладка с которой не переходит на ИНАЧЕ

Выражение    Значение    Тип
СтрокаТаблицы.ТипЦен    Закупочные    СправочникСсылка.ТипыЦенНоменклатуры
ТипЦенПоступление    Закупочные    СправочникСсылка.ТипыЦенНоменклатуры
ТипЦенСклад    Розничные    СправочникСсылка.ТипыЦенНоменклатуры
1 Господин ПЖ
 
15.03.16
14:37
а почему она должна туда перейти...
2 Локи-13
 
15.03.16
14:38
в интитуте мат логики не было?
3 Злопчинский
 
15.03.16
14:38
если А<>Б или А<>С Тогда
  Сообщить("я-тупой");
иначе
  Сообщить("я-умный");
конецЕсли;
4 Dmitry77
 
15.03.16
14:39
СтрокаТаблицы.ТипЦен<>ТипЦенПоступление
СтрокаТаблицы.ТипЦен<>ТипЦенСклад

в отладчике посмотри что возвращают
5 Fish
 
15.03.16
14:41
(0) Результат истина, вот и не переходит.
6 Злопчинский
 
15.03.16
14:41
для тех, у кого трудно с булевой алгеброй - рекомендуется писать условия через И
7 repin_mike
 
15.03.16
14:43
(3) Харашо говориш!!
8 lera01
 
15.03.16
14:45
Если Ты не вася Или Ты не Петя Тогда
А
Иначе
В
КонецЕсли
На ветку В условие переходит, когда ты Вася и Петя одновременно.
9 tatoshka0403
 
15.03.16
14:46
(3) У меня А=Б сам тупой
10 Господин ПЖ
 
15.03.16
14:47
(9) читать (8) до просветления
11 tatoshka0403
 
15.03.16
14:47
Если (СтрокаТаблицы.ТипЦен=ТипЦенПоступление) ИЛИ (СтрокаТаблицы.ТипЦен=ТипЦенСклад) тогда
            Сч = Сч + 1;
        Иначе
            Сообщить(СтрокаТаблицы.ТипЦен);
            ТипыЦен.Удалить(СтрокаТаблицы);
        КонецЕсли;
А вот так работает
12 hhhh
 
15.03.16
14:48
(11) в общем только когда ТипЦенПоступление = ТипЦенСклад перейдет.

Добейся, чтобы у тебя эти типы цен совпадали, тогда перейдет на Иначе
13 Ёпрст
 
15.03.16
14:48
(11) в  (0) поменяй ИЛИ на И
и, не ипи мозг
14 lera01
 
15.03.16
14:48
(9) И у тебя А=Б и А=С одновременно?
15 f_vadim
 
15.03.16
14:49
(11) ты код пишешь угадыванием букв, что ли?
16 tatoshka0403
 
15.03.16
14:49
(13) мне надо ИЛИ
17 tatoshka0403
 
15.03.16
14:49
(14) В посте монитор отладки
18 tatoshka0403
 
15.03.16
14:49
(14)*табло
19 Ёпрст
 
15.03.16
14:50
(16) оно не надо тебе
20 Ёпрст
 
15.03.16
14:50
ты просто об этом еще не в курсе
21 Nuobu
 
15.03.16
14:50
(16) Тебе надо "И".
22 lera01
 
15.03.16
14:51
(11) - сделано же с ИЛИ, все нормально. Вот пристали к человеку
23 hhhh
 
15.03.16
14:52
(17) не нужна здесь отладка. Логически подумай, никогда не перейдет в (0) на Иначе, хоть головой о стенку бейся.
24 Масянька
 
15.03.16
14:52
(22) Это - пока (!!!) работает.
(16) Если очень (ну, очень) надо - делай 2 условия.
25 f_vadim
 
15.03.16
14:53
(22) он не соображает и на правильные советы огрызается. пусть терпит теперь.
26 Господин ПЖ
 
15.03.16
14:54
>Тебе надо "И".

+1

руки "И" мозг

а тут сплошное "ИЛИ"
27 Nuobu
 
15.03.16
14:55
(24) делай 2 условия.

Если А <> Б Тогда
Сообщить("А не равно Б");
ИначеЕсли А <> С Тогда
Сообщить("А не равно С");
Иначе
Сообщить("Какая разница что здесь будет написано");
Конец;
28 tatoshka0403
 
15.03.16
14:55
(25) Чем плохо или? Обясни
29 tatoshka0403
 
15.03.16
14:57
(27) Зачем писать одно и тоже два раза если можно один раз?
30 f_vadim
 
15.03.16
14:58
(28) я не говорил, что плохо. мне или нравится, особенно исключающее :)
31 Злопчинский
 
15.03.16
14:58
на лекции булевой логике (не помню как она называлась точно дисциплина) полковник Ланцев приходил с двумя предметами: указкой и перфокартой. А мы - фанатели от красоты.
32 Масянька
 
15.03.16
15:00
Одна сплошная непрекращающаяся пятница...
33 Nuobu
 
15.03.16
15:00
(29) Чтоб ты поняла, что условие НИКОГДА не попадёт в блок иначе.
34 Масянька
 
15.03.16
15:01
(33) В личке - пол указан мужской...
35 Господин ПЖ
 
15.03.16
15:02
(34) Вайчовски?
36 singlych
 
15.03.16
15:03
(11) почувствуй разницу между
не (А или Б)
и
не-А или не-Б
37 Масянька
 
15.03.16
15:03
(35) Их еще и двое?!
38 Nuobu
 
15.03.16
15:04
(34) А ник будто женский.
39 tatoshka0403
 
15.03.16
15:05
(26) У меня УТ есть несколько складов и несколько типов цен.
Мне надо чтобы на основании поступления вводилась установка цен только с одной розничной ценой которая УКАЗАНА в складе.
Т.е. есть типы цен:
Розница 1
Розница 2
У склада стоит Розница 1, ТипЦенПоступление это закупочные. (СтрокаТаблицы.ТипЦен=ТипЦенПоступление) И (СтрокаТаблицы.ТипЦен=ТипЦенСклад) ты так предлагаешь?
40 Drac0
 
15.03.16
15:05
(29) Ты (8) осмыслил?
41 Drac0
 
15.03.16
15:06
(39) пляяя...
42 Масянька
 
15.03.16
15:07
(41) Что? Не блондинки тоже запутались? :)))))))))))
43 lera01
 
15.03.16
15:07
(24) ТС переписал условия. Если в строке такой тип цен или другой, тогда делать то-то. Иначе (если никакой из двух).... И такая логика нормально работает. Не надо говорить, что ее со временем отменят.
44 Локи-13
 
15.03.16
15:08
пятничная ветки во вторник... миста, ахаха, прекрати!
45 Nuobu
 
15.03.16
15:09
(43) Это ты не правильно прочитала.
"ТС переписал условия. Если в строке такой тип цен или другой, тогда делать то-то. Иначе (если никакой из двух)....""

А нужно так:
"ТС переписал условия. Если в строке такой тип цен И другой, тогда делать то-то. Иначе (если никакой из двух)...."
46 Господин ПЖ
 
15.03.16
15:10
(37) две "сладкие" сестрички...
47 vmlspb
 
15.03.16
15:11
48 lera01
 
15.03.16
15:12
(45) "Если (СтрокаТаблицы.ТипЦен=ТипЦенПоступление) ИЛИ (СтрокаТаблицы.ТипЦен=ТипЦенСклад) тогда
            Сч = Сч + 1;
        Иначе
            Сообщить(СтрокаТаблицы.ТипЦен);
            ТипыЦен.Удалить(СтрокаТаблицы);
        КонецЕсли;
" вот как он переписал. Судя из его поста, ему и нужно, чтобы тип цен был каким-то из двух, тогда одно, в противном случае другое. На кой ему И как ты предлагаешь?
49 tatoshka0403
 
15.03.16
15:13
(40) ты смотрел мою отладку?

Если А<>А Или А<>Б Тогда
Сообщить 1
Иначе
Сообщить 2
КонецЕсли

Куда должно перейти?
50 Drac0
 
15.03.16
15:13
(42) Ты о чем?

(11) корректно. За "правильно" в контексте задачи ручаться не буду.
51 hhhh
 
15.03.16
15:15
(49) на Сообщить 1 конечно. У тебя и переходит туда.
52 Nuobu
 
15.03.16
15:15
(48) Я прочитал пост (39) и думал, что ты про него пишешь. А так да, код отработает.
53 Mikeware
 
15.03.16
15:15
(34) "Блондинка - это не пол и даже не цвет волос... Блондинка - это образ мышления"©
54 lera01
 
15.03.16
15:15
(49) Не тупи. Ты в 11 нормально написал
Если А=В ИЛИ А=С Тогда Сообщить 2 Иначе Сообщить 1 КонецЕсли. Чего ты теперь добиваешься? В (49) всегда будет Сообщить 1!!!
55 lera01
 
15.03.16
15:17
(52) Спасибо. Я уж было вообще решила, что сошла с ума.
56 Nuobu
 
15.03.16
15:18
(55) В пятничных ветках все сходят с ума.
(49) Пользуйся кодом из (11).
57 tatoshka0403
 
15.03.16
15:19
Админ закрывай)))