![]() |
![]() |
![]() |
|
Несколько условий в запросе | ☑ | ||
---|---|---|---|---|
0
jerry mouse
20.07.10
✎
10:34
|
Здравствуйте!
Не могу разобраться что к чему. Есть запрос, приведенный ниже. ЕСть три условия.Каждое из условия, когда оно остается в запросе одно, работает верно. Когда я подключаю все три условия (через И), 1С их игнорирует. Подскажите, в чем причина :( ВЫБРАТЬ СправочникНоменклатура.Ссылка, СправочникНоменклатура.ПометкаУдаления, СправочникНоменклатура.Предопределенный, СправочникНоменклатура.Родитель, СправочникНоменклатура.ЭтоГруппа, СправочникНоменклатура.Код, СправочникНоменклатура.Наименование, СправочникНоменклатура.ПолноеНаименование, СправочникНоменклатура.СрокГарантии, СправочникНоменклатура.Гарантийный, СправочникНоменклатура.НеВключатьВРозничныйПрайс, СправочникНоменклатура.СтараяПозиция, СправочникНоменклатура.ТипНоменклатуры, ЗапросЦена1.Номенклатура КАК Номенклатура1, ЗапросЦена1.ТипЦены КАК ТипЦены1, ЗапросЦена1.Цена КАК Цена1, ЗапросОстатки.КоличествоОстаток КАК КоличествоОстатки, ЗапросОстатки.БроньОстаток КАК БроньОстатки, ЗапросЦена1.Цена * &КурсПересчета1 КАК ВалЦена1 ИЗ Справочник.Номенклатура КАК СправочникНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.ТипЦены КАК ТипЦены, ЦеныНоменклатурыСрезПоследних.Цена КАК Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ГДЕ ЦеныНоменклатурыСрезПоследних.ТипЦены.Ссылка = &ТипЦены1) КАК ЗапросЦена1 ПО СправочникНоменклатура.Ссылка = ЗапросЦена1.Номенклатура.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СкладОстатки.Номенклатура КАК Номенклатура, СУММА(СкладОстатки.КоличествоОстаток) КАК КоличествоОстаток, СУММА(СкладОстатки.БроньОстаток) КАК БроньОстаток ИЗ РегистрНакопления.ОстакиТМЦ.Остатки КАК СкладОстатки СГРУППИРОВАТЬ ПО СкладОстатки.Номенклатура) КАК ЗапросОстатки ПО СправочникНоменклатура.Ссылка = ЗапросОстатки.Номенклатура.Ссылка ГДЕ ((&ТолькоПрайс = ЛОЖЬ) ИЛИ ((&ТолькоПрайс = ИСТИНА) И (СправочникНоменклатура.НеВключатьВРозничныйПрайс = ЛОЖЬ))) И ((&ТолькоНаСкладе = ЛОЖЬ) ИЛИ ((&ТолькоНаСкладе = ИСТИНА) И ((ЗапросОстатки.КоличествоОстаток + ЗапросОстатки.БроньОстаток) > &ПорогОтображения))) И ((&СтарыеПозиции = ИСТИНА) ИЛИ ((&СтарыеПозиции = ЛОЖЬ) И (СправочникНоменклатура.СтараяПозиция = ЛОЖЬ))) |
|||
1
mirosh
20.07.10
✎
10:35
|
(0) ((&ТолькоПрайс = ЛОЖЬ) ИЛИ ((&ТолькоПрайс = ИСТИНА) - прикольна!!!
|
|||
2
dimoff
20.07.10
✎
10:36
|
(1) Не тупим, тут как раз все в порядке
|
|||
3
mirosh
20.07.10
✎
10:37
|
(2) мне просто подход понравился, я вижу, что все в порядке.
|
|||
4
dimoff
20.07.10
✎
10:37
|
Что значит итгонорирует? Все выводит или ничего не выводит?
|
|||
5
dimoff
20.07.10
✎
10:38
|
(3) Гораздо прикольней
РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних ГДЕ ЦеныНоменклатурыСрезПоследних.ТипЦены.Ссылка = &ТипЦены1 |
|||
6
jerry mouse
20.07.10
✎
11:14
|
(4)
выводит все. т.е. даже если указано выводить только то, что в наличии, выводит все (5) а что не так? есть несколько типов цен, мне надо выводить в общий список только один тип цен (розницу), поэтому я из регитров сведений выбираю только данные по этому типу цены |
|||
7
Defender aka LINN
20.07.10
✎
11:16
|
На что только люди не идут, чтобы отбор не использовать...
|
|||
8
dimoff
20.07.10
✎
11:17
|
(6) Во всех учебниках по 8ке будущий специалист предостерегается от главной(не считая залета подруги) ошибки в своей жизни - ВСЕГДА условия по виртуальным таблицам должны указываться в её параметрах во избежание тормозов
|
|||
9
mirosh
20.07.10
✎
11:19
|
(8) Если эти условия по измерениям.
|
|||
10
jerry mouse
20.07.10
✎
11:22
|
(8)(9) а чуть поподробнее можно?
|
|||
11
mirosh
20.07.10
✎
11:23
|
||||
12
Asmody
20.07.10
✎
11:23
|
(10) РегистрСведений.ЦеныНоменклатуры.СрезПоследних(,ТипЦены = &ТипЦены1) КАК ЦеныНоменклатурыСрезПоследних
|
|||
13
jerry mouse
20.07.10
✎
11:27
|
(11) спасибо, буду читать
(12) я такой конструкции не видел, спасибо Переделаю запрос, тогда проблема с условиями может и отпадет. |
|||
14
Рыжий Лис
20.07.10
✎
11:39
|
(13) вот это
ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
можно заменить на ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстакиТМЦ.Остатки КАК ЗапросОстатки
|
|||
15
jerry mouse
23.07.10
✎
01:34
|
Проблема решилась после того как я явно преобразовал NULL в 0, хотя это странно
ЕСТЬNULL(ЗапросОстатки.КоличествоОстаток, 0) КАК КоличествоОстатки, ЕСТЬNULL(ЗапросОстатки.БроньОстаток, 0) КАК БроньОстатки, ЕСТЬNULL(ЗапросЦена1.Цена, 0) * &КурсПересчета1 КАК ВалЦена1 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |