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


СКД Отчет. Пустые строки

СКД Отчет. Пустые строки
Я
   QWarLockQ
 
01.11.16 - 14:23
Собсна, вот: http://s8.hostingkartinok.com/uploads/images/2016/11/e0fc64e5c589265a3017918e4c44e5df.png

Как эти пустые строки убрать?

Запрос такой: (сильно камнями не кидайте :) )

ВЫБРАТЬ
    ДокЗаказПокупателя.Ссылка КАК ЗаказПокупателя,
    ВложенныйЗапрос.ЗаказПоставщику.СуммаДокумента КАК СуммаЗаказПоставщику,
    ВложенныйЗапрос.ЗаказПоставщику.Ссылка КАК ЗаказПоставщику,
    0 КАК СуммаСНО,
    0 КАК СчетНаОплату,
    0 КАК СуммаПВК,
    0 КАК ПоступлениеВКассу,
    ВложенныйЗапрос.СчетНаОплатуПоставщика.Ссылка КАК СчетНаОплатуПоставщику,
    ВложенныйЗапрос.СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСНОП,
    ДокЗаказПокупателя.Дата,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент,
    ВложенныйЗапрос.ЗаказПоставщику.Контрагент КАК Поставщик,
    NULL КАК ПоступлениеНаСчетСсылка,
    NULL КАК ПоступлениеНаСчетСуммаДокумента
ИЗ
    Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ЗаказПоставщику.Ссылка КАК ЗаказПоставщику,
            ЗаказПоставщику.СуммаДокумента КАК СуммаЗаказПоставщику,
            СчетНаОплатуПоставщика.Ссылка КАК СчетНаОплатуПоставщика,
            СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСНОП
        ИЗ
            Документ.СчетНаОплатуПоставщика КАК СчетНаОплатуПоставщика
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПоставщику КАК ЗаказПоставщику
                ПО СчетНаОплатуПоставщика.ДокументОснование = ЗаказПоставщику.Ссылка) КАК ВложенныйЗапрос
        ПО ДокЗаказПокупателя.Ссылка = ВложенныйЗапрос.ЗаказПоставщику.ЗаказПокупателя.Ссылка
ГДЕ
    ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И ВЫБОР
            КОГДА &СостояниеЗаказа = НЕОПРЕДЕЛЕНО
                    ИЛИ &СостояниеЗаказа = ""
                ТОГДА ИСТИНА
            ИНАЧЕ ДокЗаказПокупателя.СостояниеЗаказа.Наименование = &СостояниеЗаказа
        КОНЕЦ

СГРУППИРОВАТЬ ПО
    ДокЗаказПокупателя.Ссылка,
    ДокЗаказПокупателя.Дата,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент,
    ВложенныйЗапрос.ЗаказПоставщику.СуммаДокумента,
    ВложенныйЗапрос.ЗаказПоставщику.Ссылка,
    ВложенныйЗапрос.СчетНаОплатуПоставщика.СуммаДокумента,
    ВложенныйЗапрос.СчетНаОплатуПоставщика.Ссылка,
    ВложенныйЗапрос.ЗаказПоставщику.Контрагент

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДокЗаказПокупателя.Ссылка,
    0,
    0,
    ВложенныйЗапрос.СчетНаОплату.СуммаДокумента,
    ВложенныйЗапрос.СчетНаОплату.Ссылка,
    0,
    0,
    0,
    0,
    ДокЗаказПокупателя.Дата,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент,
    NULL,
    ВложенныйЗапрос.ПоступлениеНаСчет.Ссылка,
    ВложенныйЗапрос.ПоступлениеНаСчет.СуммаДокумента
ИЗ
    Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            РП.Ссылка.Ссылка КАК ПоступлениеНаСчет,
            РП.СчетНаОплату.Ссылка КАК СчетНаОплатуСсылка,
            СчетНаОплату1.Ссылка КАК СчетНаОплату
        ИЗ
            Документ.ПоступлениеНаСчет.РасшифровкаПлатежа КАК РП
                ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплату КАК СчетНаОплату1
                ПО (СчетНаОплату1.Ссылка = РП.СчетНаОплату.Ссылка)) КАК ВложенныйЗапрос
        ПО ДокЗаказПокупателя.Ссылка = ВложенныйЗапрос.СчетНаОплату.ДокументОснование.Ссылка
ГДЕ
    ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И ВЫБОР
            КОГДА &СостояниеЗаказа = НЕОПРЕДЕЛЕНО
                    ИЛИ &СостояниеЗаказа = ""
                ТОГДА ИСТИНА
            ИНАЧЕ ДокЗаказПокупателя.СостояниеЗаказа.Наименование = &СостояниеЗаказа
        КОНЕЦ

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ДокЗаказПокупателя.Ссылка,
    0,
    0,
    0,
    0,
    ПоступлениеВКассу.СуммаДокумента,
    ПоступлениеВКассу.Ссылка,
    0,
    0,
    ДокЗаказПокупателя.Дата,
    ДокЗаказПокупателя.СостояниеЗаказа.Наименование,
    ДокЗаказПокупателя.Контрагент,
    NULL,
    NULL,
    NULL
ИЗ
    Документ.ЗаказПокупателя КАК ДокЗаказПокупателя
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеВКассу КАК ПоступлениеВКассу
        ПО (ПоступлениеВКассу.ДокументОснование.Ссылка = ДокЗаказПокупателя.Ссылка)
ГДЕ
    ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода
    И ВЫБОР
            КОГДА &СостояниеЗаказа = НЕОПРЕДЕЛЕНО
                    ИЛИ &СостояниеЗаказа = ""
                ТОГДА ИСТИНА
            ИНАЧЕ ДокЗаказПокупателя.СостояниеЗаказа.Наименование = &СостояниеЗаказа
        КОНЕЦ
 
 
   DrShad
 
1 - 01.11.16 - 14:24
да не такие уж они и пустые
   DrShad
 
2 - 01.11.16 - 14:25
СГРУППИРОВАТЬ  выкинуть к чертовой матери
   DrShad
 
3 - 01.11.16 - 14:27
ВложенныйЗапрос.СчетНаОплатуПоставщика.Ссылка КАК СчетНаОплатуПоставщику,
    ВложенныйЗапрос.СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСНОП,

тут для чего еще раз делается соединение по ссылке?
   QWarLockQ
 
4 - 01.11.16 - 14:29
(2) Выкинул к чертовой матери )
(3) Это после процесса компоновки всего и вся осталось, уберу
   QWarLockQ
 
5 - 01.11.16 - 14:30
Я так понял, что пустые строки появляются из-за использования нулей и NULL. Но без них никак.
   DrShad
 
6 - 01.11.16 - 14:32
(5) тут во первых нужно каждый набор данных делать отдельным запросом + набор
во-вторых делать объединение средствами СКД
   QWarLockQ
 
7 - 01.11.16 - 14:39
(6) А это идея. Спасибо, буду пробовать
   QWarLockQ
 
8 - 01.11.16 - 15:53
(6) В общем, получилось так: http://s8.hostingkartinok.com/uploads/images/2016/11/ab833e1d979a5ee1a4860834b2447d1b.png

Но проблема такая же, как здесь : СКД Суммирование в группировке
То есть одно присоединяется к другому (доход к расходу, расход к доходу).
   QWarLockQ
 
9 - 02.11.16 - 06:33
Ещё проблема в том, что если в приход вставить суммы из двух разных наборов, то он выводит пустоту (делал через вычисляемое поле Сумма1+Сумма2)
   QWarLockQ
 
10 - 02.11.16 - 07:34
(8) Тихо сам с собою я веду беседу )
В общем, проблему с полями решил объединением наборов данных, правда опять появились пустые поля, ну да не так страшно, их значительно меньше, чем в том запросе.
Осталась лишь одна проблема, а именно (9).
Из-за чего такое происходит, господа знатоки?
 
 Рекламное место пустует
   aleks_default
 
11 - 02.11.16 - 09:07
(10)IsNull используй
   QWarLockQ
 
12 - 02.11.16 - 09:58
(11) Можно подробнее, пожалуйста?
   Tapeworm
 
13 - 02.11.16 - 10:29
(12) isNull(Сумма1,0)+isNull(Сумма2,0)
   QWarLockQ
 
14 - 02.11.16 - 10:39
(11) (13) Аллилуйя! Оно работает, спасибо ) Но из-за чего так происходит? Можете популярно объяснить?
   Tapeworm
 
15 - 02.11.16 - 10:46
(14) Из-за того что 63000 + null = null, а 63000 + 0 = 63000
Как то так)
   Diman000
 
16 - 02.11.16 - 10:50
А еще бывает я null<>null
   QWarLockQ
 
17 - 02.11.16 - 11:35
(15) Понял, ещё раз спасибо всем за помощь )
   QWarLockQ
 
18 - 03.11.16 - 11:43
Нашёл один большой косяк в этом всём. При подсчете Прихода или Расхода, суммируются поля, если в группе полей больше 1 (да, я мастер объяснять:)). На скрине видно, что правый столбец (сумму я считал по "счет на оплату (полученный)") в два раза больше левого (где я считал сумму по "расход со счета"). То есть, в запросе есть две одинаковые строки с счетом на оплату, но с разными документами "расход со счета" и вот получается, что при суммировании схлопываются эти два счета и всё, кошмар, не работает как надо) Такая проблема.
Скрин: http://s8.hostingkartinok.com/uploads/images/2016/11/79cc27d134e4e9df51152c8c09a7f5bb.png

Какие методы решения могут быть? Переписывать запрос с нуля как-то по-другому?
   QWarLockQ
 
19 - 03.11.16 - 11:46
Кстати, если в ресурсах выставить рассчитать по счету на оплату полученному, то он выдаст верную цифру
   QWarLockQ
 
20 - 07.11.16 - 07:26
Послевыходной АП )

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