|
СКД Отчет. Пустые строки | ☑ | ||
---|---|---|---|---|
0
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 ИЗ Документ.ЗаказПокупателя КАК ДокЗаказПокупателя ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеВКассу КАК ПоступлениеВКассу ПО (ПоступлениеВКассу.ДокументОснование.Ссылка = ДокЗаказПокупателя.Ссылка) ГДЕ ДокЗаказПокупателя.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ВЫБОР КОГДА &СостояниеЗаказа = НЕОПРЕДЕЛЕНО ИЛИ &СостояниеЗаказа = "" ТОГДА ИСТИНА ИНАЧЕ ДокЗаказПокупателя.СостояниеЗаказа.Наименование = &СостояниеЗаказа КОНЕЦ |
|||
1
DrShad
01.11.16
✎
14:24
|
да не такие уж они и пустые
|
|||
2
DrShad
01.11.16
✎
14:25
|
СГРУППИРОВАТЬ выкинуть к чертовой матери
|
|||
3
DrShad
01.11.16
✎
14:27
|
ВложенныйЗапрос.СчетНаОплатуПоставщика.Ссылка КАК СчетНаОплатуПоставщику,
ВложенныйЗапрос.СчетНаОплатуПоставщика.СуммаДокумента КАК СуммаСНОП, тут для чего еще раз делается соединение по ссылке? |
|||
4
QWarLockQ
01.11.16
✎
14:29
|
(2) Выкинул к чертовой матери )
(3) Это после процесса компоновки всего и вся осталось, уберу |
|||
5
QWarLockQ
01.11.16
✎
14:30
|
Я так понял, что пустые строки появляются из-за использования нулей и NULL. Но без них никак.
|
|||
6
DrShad
01.11.16
✎
14:32
|
(5) тут во первых нужно каждый набор данных делать отдельным запросом + набор
во-вторых делать объединение средствами СКД |
|||
7
QWarLockQ
01.11.16
✎
14:39
|
(6) А это идея. Спасибо, буду пробовать
|
|||
8
QWarLockQ
01.11.16
✎
15:53
|
(6) В общем, получилось так: http://s8.hostingkartinok.com/uploads/images/2016/11/ab833e1d979a5ee1a4860834b2447d1b.png
Но проблема такая же, как здесь : СКД Суммирование в группировке То есть одно присоединяется к другому (доход к расходу, расход к доходу). |
|||
9
QWarLockQ
02.11.16
✎
06:33
|
Ещё проблема в том, что если в приход вставить суммы из двух разных наборов, то он выводит пустоту (делал через вычисляемое поле Сумма1+Сумма2)
|
|||
10
QWarLockQ
02.11.16
✎
07:34
|
(8) Тихо сам с собою я веду беседу )
В общем, проблему с полями решил объединением наборов данных, правда опять появились пустые поля, ну да не так страшно, их значительно меньше, чем в том запросе. Осталась лишь одна проблема, а именно (9). Из-за чего такое происходит, господа знатоки? |
|||
11
aleks_default
02.11.16
✎
09:07
|
(10)IsNull используй
|
|||
12
QWarLockQ
02.11.16
✎
09:58
|
(11) Можно подробнее, пожалуйста?
|
|||
13
Tapeworm
02.11.16
✎
10:29
|
(12) isNull(Сумма1,0)+isNull(Сумма2,0)
|
|||
14
QWarLockQ
02.11.16
✎
10:39
|
(11) (13) Аллилуйя! Оно работает, спасибо ) Но из-за чего так происходит? Можете популярно объяснить?
|
|||
15
Tapeworm
02.11.16
✎
10:46
|
(14) Из-за того что 63000 + null = null, а 63000 + 0 = 63000
Как то так) |
|||
16
Diman000
02.11.16
✎
10:50
|
А еще бывает я null<>null
|
|||
17
QWarLockQ
02.11.16
✎
11:35
|
(15) Понял, ещё раз спасибо всем за помощь )
|
|||
18
QWarLockQ
03.11.16
✎
11:43
|
Нашёл один большой косяк в этом всём. При подсчете Прихода или Расхода, суммируются поля, если в группе полей больше 1 (да, я мастер объяснять:)). На скрине видно, что правый столбец (сумму я считал по "счет на оплату (полученный)") в два раза больше левого (где я считал сумму по "расход со счета"). То есть, в запросе есть две одинаковые строки с счетом на оплату, но с разными документами "расход со счета" и вот получается, что при суммировании схлопываются эти два счета и всё, кошмар, не работает как надо) Такая проблема.
Скрин: http://s8.hostingkartinok.com/uploads/images/2016/11/79cc27d134e4e9df51152c8c09a7f5bb.png Какие методы решения могут быть? Переписывать запрос с нуля как-то по-другому? |
|||
19
QWarLockQ
03.11.16
✎
11:46
|
Кстати, если в ресурсах выставить рассчитать по счету на оплату полученному, то он выдаст верную цифру
|
|||
20
QWarLockQ
07.11.16
✎
07:26
|
Послевыходной АП )
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |