|
Как сделать отбор регистратора в запросе по нескольким видам документов? | ☑ | ||
---|---|---|---|---|
0
Prog111
29.12.15
✎
06:16
|
Гуглю - везде разъясняется отбор по одному виду регистратора, а мне нужно по нескольким видам документов сделать. Вот отрывок из запроса:
| ЕСТЬNULL(РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовПриход, 0) КАК СуммаВзаиморасчетовПриход, | ЕСТЬNULL(РасчетыСКонтрагентамиОбороты.СуммаВзаиморасчетовРасход, 0) КАК СуммаВзаиморасчетовРасход, | ЕСТЬNULL(РасчетыСКонтрагентамиОборотыДо.СуммаВзаиморасчетовПриход, 0) КАК СуммаВзаиморасчетовПриходДо, | ЕСТЬNULL(РасчетыСКонтрагентамиОборотыДо.СуммаВзаиморасчетовРасход, 0) КАК СуммаВзаиморасчетовРасходДо |ИЗ | Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов | ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами.Обороты(&НачПериода, &КонПериода, Регистратор) КАК РасчетыСКонтрагентамиОбороты | ПО ДоговорыКонтрагентов.Ссылка = РасчетыСКонтрагентамиОбороты.ДоговорКонтрагента | ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКонтрагентами.Обороты(&НачПериодаДо, &КонПериодаДо, Регистратор) КАК РасчетыСКонтрагентамиОборотыДо | ПО ДоговорыКонтрагентов.Ссылка = РасчетыСКонтрагентамиОборотыДо.ДоговорКонтрагента |ГДЕ | ДоговорыКонтрагентов.ВидДоговора = &ВидДоговора | И ДоговорыКонтрагентов.ЭтоГруппа = ЛОЖЬ | И (РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ИЛИ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее | ИЛИ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеИсходящее) | И (РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ИЛИ РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее | ИЛИ РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеИсходящее) Когда ставлю это условие - то запрос пустой... |
|||
1
los_hooliganos
29.12.15
✎
06:19
|
(0) А если условие закомментить, то запрос будет работать?
|
|||
2
SeraFim
29.12.15
✎
06:21
|
Ошибка - полное условие и "И"
то есть у тебя получается: РасчетыСКонтрагентамиОбороты.Регистратор = КакойТоДокумент, а РасчетыСКонтрагентамиОборотыДо.Регистратор = NULL и наоборот |
|||
3
SeraFim
29.12.15
✎
06:22
|
Перемести условие на тип документа в условие соединения
|
|||
4
Prog111
29.12.15
✎
06:23
|
(1) Да, работает.
|
|||
5
Рэйв
29.12.15
✎
06:24
|
Слишком много "И" Гдето спотыкается походу
|
|||
6
Prog111
29.12.15
✎
06:24
|
(3) Это как?
|
|||
7
Prog111
29.12.15
✎
06:25
|
После добавления этого условия запрос становится пустым:
| И (РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ИЛИ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее | ИЛИ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеИсходящее) | И (РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ИЛИ РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее | ИЛИ РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеИсходящее) |
|||
8
Prog111
29.12.15
✎
06:26
|
Если условие не ставить - то в выборку попадают движения по прочим документам, например, по документу "Заказ покупателей". Вот хочу отобрать только по определенным документам...
|
|||
9
Рэйв
29.12.15
✎
06:28
|
(8)Убери все И , оставь только ИЛИ.
Должно сработать |
|||
10
los_hooliganos
29.12.15
✎
07:01
|
(7) Ставя условие в такой запрос, ты ПОЛНОЕ соединение превращаешь во внутреннее
Ставь условие в моменте СОЕДИНЕНИЕ, а не ГДЕ |
|||
11
ЧеловекДуши
29.12.15
✎
08:59
|
(0)Добавить Поле "ТипЗначения()", посмотри, какие типы у тебя получаются. В консоли запросов.
А уже после играйся ссылками. :) Хотя можно и с типами |
|||
12
ЧеловекДуши
29.12.15
✎
08:59
|
+(11) Условие при этом убери
|
|||
13
ЧеловекДуши
29.12.15
✎
09:01
|
+ Сдается мне ,что у вас там нет какого то регистратора :)
|
|||
14
Fedor-1971
29.12.15
✎
09:06
|
(7) Вот так попробуй:
| И ((РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ИЛИ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее | ИЛИ РасчетыСКонтрагентамиОбороты.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеИсходящее) | или (РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг | ИЛИ РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеВходящее | ИЛИ РасчетыСКонтрагентамиОборотыДо.Регистратор ССЫЛКА Документ.ПлатежноеПоручениеИсходящее)) т.е. И ((регистратор1) или (Регистратор2)), только не понятно зачем ты проверяешь заполненность регистраторов? |
|||
15
Fedor-1971
29.12.15
✎
09:08
|
14+ Двойные скобки просто для наглядности можно всё через ИЛИ проверить
|
|||
16
elisabet
29.12.15
✎
10:57
|
Через объединение двух запросов все работает. Отдельно "Приход" и объединяем "ПриходДо" и условие | И ДоговорыКонтрагентов.ЭтоГруппа = ЛОЖЬ - абсолютно лишнее, поскольку группа не имеет поля "Вид договора".
|
|||
17
PR третий
29.12.15
✎
10:58
|
(0) А что, ТИПЗНАЧЕНИЯ не работает что ли уже?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |