Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запрос к документам с полным соединением.

Запрос к документам с полным соединением.
Я
   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 выходят.
 
 
   Ivanych
 
1 - 29.09.16 - 06:20
Вернее с NULL не выходит
   Feunoir
 
2 - 29.09.16 - 06:24
Это весь текст запроса?
   Feunoir
 
3 - 29.09.16 - 06:24
Судя по отсутствию закрывающей кавычки - нет. Так вот проблема в отрезанном хвосте
   Ivanych
 
4 - 29.09.16 - 06:26
Запрос = Новый Запрос;
        Запрос.Текст=
        "ВЫБРАТЬ
        |    РеализацияТоваровУслуг.Ссылка КАК РеализацияТоваровУслуг,
        |    РеализацияТоваровУслуг.СуммаДокумента КАК СуммаДокумента1,
        |    ПриходныйКассовыйОрдер.СуммаДокумента КАК СуммаДокумента3,
        |    ПриходныйКассовыйОрдер.Ссылка КАК ПриходныйКассовыйОрдер
        |ИЗ
        |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
        |        ПОЛНОЕ СОЕДИНЕНИЕ Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
        |        ПО РеализацияТоваровУслуг.Ссылка = ПриходныйКассовыйОрдер.ДокументОснование.Ссылка
        |ГДЕ";
        Если ЗначениеЗаполнено(Склад) Тогда
            Запрос.Текст = Запрос.Текст + "
        |    РеализацияТоваровУслуг.Ссылка.Склад В ИЕРАРХИИ(&Склад) И";
        КонецЕсли;    
        Если ЗначениеЗаполнено(Касса) Тогда
            Запрос.Текст = Запрос.Текст + "
        |    ПриходныйКассовыйОрдер.Ссылка.Касса В ИЕРАРХИИ(&Касса) И";
        КонецЕсли;    
        Если ТолькоПроведенные = Истина Тогда
            Запрос.Текст = Запрос.Текст + "
        |    РеализацияТоваровУслуг.Ссылка.Проведен И
        |    ПриходныйКассовыйОрдер.Ссылка.Проведен И";
        КонецЕсли;    
        Запрос.Текст =Запрос. Текст + "
        |    РеализацияТоваровУслуг.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
        |   И Не РеализацияТоваровУслуг.Ссылка.ПометкаУдаления
        |    И ПриходныйКассовыйОрдер.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
        |   И Не ПриходныйКассовыйОрдер.Ссылка.ПометкаУдаления
        |";

Пробывал с
        //|ИТОГИ ПО

        //|    ОБЩИЕ,

        //|    РеализацияТоваровУслуг"; 

        //    |";

Пробывал с Группировками
   Feunoir
 
5 - 29.09.16 - 06:30
Ну конечно.

При наложении условий в "ГДЕ" проверки проводятся после соединения. И так как NULL не попадает в условие, то эти строки фильтруются.

Либо во все условия включаешь "ИЛИ NULL", либо фильтруешь всё до (или во время) слияния.
   Ivanych
 
6 - 29.09.16 - 06:32
(5) А примере можете показать?
   Ivanych
 
7 - 29.09.16 - 06:33
(5) Спасибо буду пробывать
   Feunoir
 
8 - 29.09.16 - 06:46
(6) Через вложенный запрос, например:

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


Вложенные запросы фильтруются по условиям, результат сливается. Для наглядности можно вложенные запросы вынести во временные таблицы
   Одинесю
 
9 - 29.09.16 - 06:52
ПробЫвать не пиши лучше
   Ivanych
 
10 - 29.09.16 - 07:12
(9) ok)
 
 Рекламное место пустует
   Одинесю
 
11 - 29.09.16 - 07:15
(10) Главное понять ;)
   Ivanych
 
12 - 29.09.16 - 07:41
Спасибо всем. Получилось

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует