|
В запросе не вычисляются поля. Не могу понять почему. | ☑ | ||
---|---|---|---|---|
0
Klesk666
03.10.13
✎
18:06
|
поля ОтгрузкаИПрочее и ВозвратИПрочее
Хотя как минимум РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход больше 0 ВЫБРАТЬ СУММА(ВЫБОР КОГДА ДенежныеСредстваБезналичные.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА ДенежныеСредстваБезналичные.Сумма ИНАЧЕ 0 КОНЕЦ) КАК ВозвратКлиентуБезнал, СУММА(ВЫБОР КОГДА ДенежныеСредстваБезналичные.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА ДенежныеСредстваБезналичные.Сумма ИНАЧЕ 0 КОНЕЦ) КАК ПоступлениеОтКлиентаБезнал, ДенежныеСредстваБезналичные.АналитикаУчетаПоПартнерам ПОМЕСТИТЬ ТБезнал ИЗ РегистрНакопления.ДенежныеСредстваБезналичные КАК ДенежныеСредстваБезналичные ГДЕ (ДенежныеСредстваБезналичные.Период МЕЖДУ &НачалоПериода И &КонецПериода ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1)) СГРУППИРОВАТЬ ПО ДенежныеСредстваБезналичные.АналитикаУчетаПоПартнерам ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СУММА(ВЫБОР КОГДА ДенежныеСредстваНаличные.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Расход) ТОГДА ДенежныеСредстваНаличные.Сумма ИНАЧЕ 0 КОНЕЦ) КАК ВозвратКлиентуНал, СУММА(ВЫБОР КОГДА ДенежныеСредстваНаличные.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход) ТОГДА ДенежныеСредстваНаличные.Сумма ИНАЧЕ 0 КОНЕЦ) КАК ПоступлениеОтКлиентаНал, ДенежныеСредстваНаличные.АналитикаУчетаПоПартнерам ПОМЕСТИТЬ ТНал ИЗ РегистрНакопления.ДенежныеСредстваНаличные КАК ДенежныеСредстваНаличные ГДЕ (ДенежныеСредстваНаличные.Период МЕЖДУ &НачалоПериода И &КонецПериода ИЛИ &КонецПериода = ДАТАВРЕМЯ(1, 1, 1)) СГРУППИРОВАТЬ ПО ДенежныеСредстваНаличные.АналитикаУчетаПоПартнерам ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Партнер КАК Партнер, РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент, ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток > 0 ТОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ 0 КОНЕЦ КАК НачОстатокДолгПартнера, ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток < 0 ТОГДА -РасчетыСКлиентамиОстаткиИОбороты.СуммаНачальныйОстаток ИНАЧЕ 0 КОНЕЦ КАК НачОстатокНашДолг, РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход КАК УвеличениеВсего, РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход КАК УменьшениеВсего, ТБезнал.ВозвратКлиентуБезнал, ТБезнал.ПоступлениеОтКлиентаБезнал, ТНал.ВозвратКлиентуНал, ТНал.ПоступлениеОтКлиентаНал, ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток > 0 ТОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК КонОстатокДолгПартнера, ВЫБОР КОГДА РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток < 0 ТОГДА -РасчетыСКлиентамиОстаткиИОбороты.СуммаКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК КонОстатокНашДолг, РасчетыСКлиентамиОстаткиИОбороты.СуммаРасход - ТБезнал.ВозвратКлиентуБезнал - ТНал.ВозвратКлиентуНал КАК ОтгрузкаИПрочее, РасчетыСКлиентамиОстаткиИОбороты.СуммаПриход - ТБезнал.ПоступлениеОтКлиентаБезнал - ТНал.ПоступлениеОтКлиентаНал КАК ВозвратИПрочее ИЗ РегистрНакопления.РасчетыСКлиентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Период, , ) КАК РасчетыСКлиентамиОстаткиИОбороты ЛЕВОЕ СОЕДИНЕНИЕ ТБезнал КАК ТБезнал ПО РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам = ТБезнал.АналитикаУчетаПоПартнерам ЛЕВОЕ СОЕДИНЕНИЕ ТНал КАК ТНал ПО РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам = ТНал.АналитикаУчетаПоПартнерам УПОРЯДОЧИТЬ ПО РасчетыСКлиентамиОстаткиИОбороты.АналитикаУчетаПоПартнерам.Партнер |
|||
1
viktor_vv
03.10.13
✎
18:21
|
Вот здесь могут быть NULL
ТБезнал.ВозвратКлиентуБезнал - ТНал.ВозвратКлиентуНал соотвественно и результат будет NULL. сделай через ISNULL(). |
|||
2
Klesk666
03.10.13
✎
19:15
|
(1) спасибо
думал если от 1 отнять Ничто будет 1 |
|||
3
Wobland
03.10.13
✎
19:39
|
думал, нулл - это ничто?
|
|||
4
Мимохожий Однако
03.10.13
✎
19:40
|
NULL - черная дыра, с которой рядом никто не живет.
|
|||
5
Klesk666
03.10.13
✎
21:48
|
ну кстати в модуле это бы вызвало ошибку несоответствия типов, а запрос лоялен, а на выходе получается фигня, лучше бы ошибку выдавал наверно.
|
|||
6
viktor_vv
03.10.13
✎
21:55
|
(5) Так тут и нет ошибки , просто арифметические операции с null дают null, а логические дают Ложь.
|
|||
7
Klesk666
03.10.13
✎
22:04
|
(6)
нифига &НаКлиенте Процедура Команда1(Команда) А = 1+Null; КонецПроцедуры {Форма.Форма.Форма(4)}: Преобразование значения к типу Число не может быть выполнено А = 1+Null; |
|||
8
Euguln
03.10.13
✎
22:07
|
(7) Не надо путать исполняемый код и запрос, там разные механизмы работают.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |