Имя: Пароль:
1C
1С v8
УПП Гениальные запросы от 1с
0 Homer
 
12.10.22
14:59
Как вот это можно интерпретировать. Что автор хотел получить?

ГДЕ
    (ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток < 0
            ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0
                И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
                И НЕ ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)
            ИЛИ (ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0
                ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0
                    И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
                    И ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)))
1 Homer
 
12.10.22
15:00
//я предположу что

ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток < 0
            ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0

//и

ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0
                ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0

//необходимо заключить в скобки.
2 RomanYS
 
12.10.22
15:01
(0) знакомая хрень, в результате авансы поставщикам начали переоцениваться. Логику авторов даже понять не пытался.
3 Курцвейл
 
12.10.22
15:15
(0) Неправильный ты предположил
Сначала вычисляют НЕ, потом И, в самом конец ИЛИ
Писать условие можно безо всяких скобок.
4 Курцвейл
 
12.10.22
15:17
(0) Тут минус что одно из условий продублировано
5 Homer
 
12.10.22
15:28
(3) я теорию знаю, вот это условия как разобрать на составляющие?
            ИЛИ (ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0
                ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0
                    И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
                    И ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)))
я предположу что вот это должно вычисляться только если ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде) а по факту этот не так.
6 PR
 
12.10.22
15:36
(5) ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0

ИЛИ

ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0
И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
И ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)
7 Homer
 
12.10.22
15:39
(6) При выполнении запроса если я оставляю как есть то данные у меня попадают по данному условию, хотя счет 60,32. Почему?
А вот если я делаю вот так
ИЛИ ((ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0
                ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0)
                    И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
                    И ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)))

То все ок.
СчетаРасчетыПоАренде = БухгалтерскийУчет.ПолучитьМассивСчетов("Хозрасчетный","76.37.5,76.37.9");
8 PR
 
12.10.22
15:44
(7) Да блин, ты то спрашиваешь, как разобрать на составляющие, то пишешь впереди ИЛИ и все помещаешь в скобки, то спрашиваешь, почему все не так, как тебе хочется...
Напиши, как ты хочешь, расставив с запасом от души скобок и потом открой конструктор запросов и нажми Ok, он сам у тебя уберет все лишние скобки
9 PR
 
12.10.22
15:46
(7) Потому что, видимо, у тебя ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0, что не так-то?
10 Homer
 
12.10.22
15:54
есть у меня положительная ВалютнаяСуммаНачальныйОстаток на 60.32 счете.
Я своим мозгом понимаю что условие
ИЛИ ((ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0
                ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0)
                    И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
                    И ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)))
Должно выполняться только если положительная ВалютнаяСуммаНачальныйОстаток на "76.37.5,76.37.9" счете.
а по факту условие выполняется игнорируя счета учета. Что по мне не правильно.
Соответственно почему игнорируется счет?
11 RomanYS
 
12.10.22
16:22
(9) перепиши (0) правильно :)
12 TormozIT
 
гуру
13.10.22
00:17
Отформатировал конструктором запроса ИР в стиле И-ИЛИ дерева
ГДЕ ЛОЖЬ
    ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток < 0
    ИЛИ (ИСТИНА
        И ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0
        И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
        И НЕ (ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде)))
    ИЛИ ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток > 0
    ИЛИ (ИСТИНА
        И ЗадолженностьПоставщиков.ВалютнаяСуммаНачальныйОстаток = 0
        И ЗадолженностьПоставщиков.СуммаНачальныйОстаток <> 0
        И ЗадолженностьПоставщиков.Счет В (&СчетаРасчетыПоАренде))