|
Запрос к документам с полным соединением. | ☑ | ||
---|---|---|---|---|
0
Ivanych
29.09.16
✎
06:18
|
Подскажите новичку в 1С8. Где ошибка?
Запрос = Новый Запрос; Запрос.Текст= "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка КАК РеализацияТоваровУслуг, | РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокумента1, | ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаДокумента3, | ПриходныйКассовыйОрдер.Ссылка КАК ПриходныйКассовыйОрдер |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер | ПО РеализацияТоваровУслуг.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование.Ссылка Не выходит полное соединение // ИмяИзТаблицы1 ИмяИзТаблицы2 // Реализация1 Приходник1 // Реализация2 Приходник2 // Реализация3 NULL // Реализация4 NULL NULL // NULL Приходник3 25 // NULL Приходник4 30 А выходит // ИмяИзТаблицы1 ИмяИзТаблицы2 // Реализация1 Приходник1 // Реализация2 Приходник2 с NULL выходят. |
|||
1
Ivanych
29.09.16
✎
06:20
|
Вернее с NULL не выходит
|
|||
2
Feunoir
29.09.16
✎
06:24
|
Это весь текст запроса?
|
|||
3
Feunoir
29.09.16
✎
06:24
|
Судя по отсутствию закрывающей кавычки - нет. Так вот проблема в отрезанном хвосте
|
|||
4
Ivanych
29.09.16
✎
06:26
|
Запрос = Новый Запрос;
Запрос.Текст= "ВЫБРАТЬ | РеализацияТоваровУслуг.Ссылка КАК РеализацияТоваровУслуг, | РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокумента1, | ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаДокумента3, | ПриходныйКассовыйОрдер.Ссылка КАК ПриходныйКассовыйОрдер |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер | ПО РеализацияТоваровУслуг.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование.Ссылка |ГДЕ"; Если ЗначениеЗаполнено(Склад) Тогда Запрос.Текст = Запрос.Текст + " | РеализацияТоваровУслуг.Ссылка.Склад В ИЕРАРХИИ(&Склад) И"; КонецЕсли; Если ЗначениеЗаполнено(Касса) Тогда Запрос.Текст = Запрос.Текст + " | ПриходныйКассовыйОрдер.Ссылка.Касса В ИЕРАРХИИ(&Касса) И"; КонецЕсли; Если ТолькоПроведенные = Истина Тогда Запрос.Текст = Запрос.Текст + " | РеализацияТоваровУслуг.Ссылка.Проведен И | ПриходныйКассовыйОрдер.Ссылка.Проведен И"; КонецЕсли; Запрос.Текст =Запрос. Текст + " | РеализацияТоваровУслуг.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2 | И Не РеализацияТоваровУслуг.Ссылка.ПометкаУдаления | И ПриходныйКассовыйОрдер.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2 | И Не ПриходныйКассовыйОрдер.Ссылка.ПометкаУдаления |"; Пробывал с //|ИТОГИ ПО //| ОБЩИЕ, //| РеализацияТоваровУслуг"; // |"; Пробывал с Группировками |
|||
5
Feunoir
29.09.16
✎
06:30
|
Ну конечно.
При наложении условий в "ГДЕ" проверки проводятся после соединения. И так как NULL не попадает в условие, то эти строки фильтруются. Либо во все условия включаешь "ИЛИ NULL", либо фильтруешь всё до (или во время) слияния. |
|||
6
Ivanych
29.09.16
✎
06:32
|
(5) А примере можете показать?
|
|||
7
Ivanych
29.09.16
✎
06:33
|
(5) Спасибо буду пробывать
|
|||
8
Feunoir
29.09.16
✎
06:46
|
(6) Через вложенный запрос, например:
Вложенные запросы фильтруются по условиям, результат сливается. Для наглядности можно вложенные запросы вынести во временные таблицы |
|||
9
Одинесю
29.09.16
✎
06:52
|
ПробЫвать не пиши лучше
|
|||
10
Ivanych
29.09.16
✎
07:12
|
(9) ok)
|
|||
11
Одинесю
29.09.16
✎
07:15
|
(10) Главное понять ;)
|
|||
12
Ivanych
29.09.16
✎
07:41
|
Спасибо всем. Получилось
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |