Имя: Пароль:
1C
 
Помогите с условием в запросе((
0 Бешеный заяц
 
06.08.19
16:27
голова не работает(
нужно из регистра добыть документ поступления соответственно ставлю условие на регистратор если это приходный ордер то только с операцией закупка если ПоступлениеТоваровУслуг без условия, составил соответственно часть условие с "И" взял в скопки
(ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПриходныйОрдер И ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПриходныйОрдерНаТовары).ХозяйственнаяОперация = Значение(Перечисление.ХозяйственныеОперации.Закупка))

дабы после вычисления истиности пошло вычисление истиности с выражением через ИЛИ (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг)

Но после сохранения запроса скобки удаляются, те конструктор счетает что данное выражения одинаковы! но это же не так? выражение И применяется только к одному условию??? или я заработался?

Ниже условие
ГДЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг ИЛИ (ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПриходныйОрдер и ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПриходныйОрдерНаТовары).ХозяйственнаяОперация = Значение(Перечисление.ХозяйственныеОперации.Закупка))
1 aleks_default
 
06.08.19
16:30
В отпуск срочно!!!
2 RomanYS
 
06.08.19
16:30
>>но это же не так?
Так. "И" имеет больший приоритет. Хотя читать такие условия конечно ужасно
3 aleks_default
 
06.08.19
16:31
Пока еще это лечится!
4 ДенисЧ
 
06.08.19
16:38
Это лечится очень просто. Не пользуйся конструктором, пиши рками
5 Бешеный заяц
 
06.08.19
16:41
(2) отработает условие по "И" вернет ЛОЖЬ так как документ Документ.ПоступлениеТоваровУслуг не имеет реквизита "ХозяйственнаяОперация" соответственно все выражение будет ложью
6 Бешеный заяц
 
06.08.19
16:44
вопрос по другому если условие будет без скобок

ГДЕ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг ИЛИ ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПриходныйОрдер и ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПриходныйОрдерНаТовары).ХозяйственнаяОперация = Значение(Перечисление.ХозяйственныеОперации.Закупка)

оно будет ИСТИНО если будеит документ ПоступлениеТоваровУслуг ?
7 RomanYS
 
06.08.19
16:44
(5) так "ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг" вернет истину.
Истина ИЛИ Ложь = Истина.
Точно в отпуск
8 RomanYS
 
06.08.19
16:45
(6) оно будет ИСТИНО
9 fDarkness
 
06.08.19
16:46
(8) истинно или истина
10 RomanYS
 
06.08.19
16:51
(9) ты хочешь сказать он будет не "ИСТИНО"? Так мы ТС точно потеряем, послушай (3) ;).
11 Бешеный заяц
 
06.08.19
16:53
(7) а как же условие "И" если условие не выполнено оно переводит всё вырожение в ЛОЖЬ
Например на входе документ "ПоступлениеТоваровУслуг"
ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг вернет ИСТИНУ
ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПриходныйОрдер                 ЛОЖЬ
ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПриходныйОрдерНаТовары).ХозяйственнаяОперация = Значение(Перечисление.ХозяйственныеОперации.Закупка)                       ЛОЖЬ

далее получаем ИСТИНА ИЛИ ЛОЖЬ и ЛОЖЬ = ЛОЖЬ или я не прав?
12 Бешеный заяц
 
06.08.19
16:55
(11) если бы были скобки тут вопросов нет
ИСТИНА ИЛИ (ИСТИНА И ЛОЖЬ) = ИСТИНА
13 Бешеный заяц
 
06.08.19
16:56
(12) те правило если в ИЛИ есть ИСТИНА хоть одна возвращается ИСТИНА если в И хоть оно выраждение не верно возвращается ЛОЖЬ
14 GRAF_84
 
06.08.19
16:56
(1) Делай через ОБЪЕДИНИТЬ.
15 hhhh
 
06.08.19
16:58
(13) ИСТИНА ИЛИ ЛОЖЬ и ЛОЖЬ = ИСТИНА, потому что сначала выполняется И
16 Бешеный заяц
 
06.08.19
16:59
(15) ок спасибо )))
17 hhhh
 
06.08.19
17:00
(13) но ты вот эту штуку выбрось

ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПриходныйОрдер и ВЫРАЗИТЬ(ТоварыНаСкладах.Регистратор КАК Документ.ПриходныйОрдерНаТовары).ХозяйственнаяОперация = Значение(Перечисление.ХозяйственныеОперации.Закупка)


потому что она всегда = ЛОЖЬ. Тут ИСТИНА не может быть