|
Запрос: не вычисляются итоги - глюк или моя ошибка? | ☑ | ||
---|---|---|---|---|
0
dave2000
25.10.11
✎
17:26
|
Есть запрос, объединяющий две таблички (был взят из реальной задачи и упрощён до минимума для наглядности).
Тестировалось на УПП, но в похожих конфигурация думаю тоже пойдёт (УТП например). Результат выполнения запроса: - итоги по полю "НачОстаток" вычисляются нормально; - итоги по полю "КонОстаток" не вычисляются! Почему так, где ошибка? //-------------запрос------------------------- ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, NULL КАК Регистратор, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОстаток ПОМЕСТИТЬ Остатки ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, , ДвиженияИГраницыПериода, Склад В ИЕРАРХИИ (&Склад)) КАК ТоварыНаСкладахОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Регистратор, 0 КАК НачОстаток, 0 КАК КонОстаток ПОМЕСТИТЬ Обороты ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, Движения, Склад В ИЕРАРХИИ (&Склад)) КАК ТоварыНаСкладахОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Остатки.Номенклатура КАК Номенклатура, Остатки.Регистратор, Остатки.НачОстаток КАК НачОстаток, Остатки.КонОстаток КАК КонОстаток ИЗ Остатки КАК Остатки ОБЪЕДИНИТЬ ВЫБРАТЬ Обороты.Номенклатура, Обороты.Регистратор, Обороты.НачОстаток, Обороты.КонОстаток ИЗ Обороты КАК Обороты ИТОГИ СУММА(НачОстаток), СУММА(КонОстаток) ПО Номенклатура |
|||
1
Ненавижу 1С
гуру
25.10.11
✎
17:29
|
зачем все эти извраты?
|
|||
2
Maxus43
25.10.11
✎
17:30
|
в конструкторе делай, увидиш
|
|||
3
dave2000
25.10.11
✎
17:34
|
(1) так того требует задача, это упрощённый пример, но не в том суть - итоги должны считаться по обеим колонкам, а считаются по одной
(2) в конструкторе ведь и делал |
|||
4
dave2000
25.10.11
✎
17:40
|
Может глюк платформы?
|
|||
5
shuhard
25.10.11
✎
17:41
|
(4) с вероятностью 0,00000000001%
|
|||
6
dave2000
25.10.11
✎
17:55
|
На что мне обратить внимание, где может быть ошибка? Уже даже и не знаю в какую сторону рыть. Вроде как две простеньких таблички, значения по ним отбираются нормально, а вот итоги не суммирует. Может из-за того данные отбираются из одной таблицы? Но какая разница..
|
|||
7
AAlexandra
25.10.11
✎
18:06
|
(0) Попробуй написать
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * 1 КАК КонОстаток Вместо ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонОстаток В первом пакете, и будет тебе большое удивление. |
|||
8
Живой Ископаемый
25.10.11
✎
18:08
|
2(4) конечно глюк! ты его открыл!
|
|||
9
dave2000
25.10.11
✎
18:39
|
Кажется нашёл причину. В первой таблице в качестве регистратора я указывал NULL. Если указать пустое значение любого документа, итоги считает правильно. Т.е. заменить
NULL КАК Регистратор, на Значение(Документ.РеализацияТоваровУслуг.ПустаяСсылка) КАК Регистратор, Но не ясно, почему тогда итог "НачОстаток" считался правильно? (7) Спасибо, работает!) Хотя, очень интерестно почему - что меняет *1? По логике, КоличествоКонечныйОстаток*1 преобразует в число, но КоличествоКонечныйОстаток это и так число. (8) Подъебнуть каждый мастер, лучше бы по делу что-то подсказал |
|||
10
AAlexandra
25.10.11
✎
19:09
|
(9) Гугли, как вычисляются итоги по начальному/конечному остатку для виртуальной таблицы ОстаткиИОбороты - там особый алгоритм, а не просто Сумма(), учитывается период (чтобы удобно было оборотку рисовать).
Если НачОстаток/КонОстаток модифицировать (сложить с чем-то, умножить и т.п.) - агрегатные функции для вычисленного значения работают как для всех обыкновенных полей. Не знаю как менее коряво объяснить.. |
|||
11
dave2000
25.10.11
✎
19:13
|
(9) Вышеописанные способы тоже не всегда работают. Похоже, итоги считаются ТОЛЬКО если все поля, учавствующие в итогах, однотипные. В данном случае, поле "Регистратор".
|
|||
12
dave2000
25.10.11
✎
19:16
|
(10) Пасиб! С утра таки покопаю в этом направлении
|
|||
13
AAlexandra
25.10.11
✎
19:17
|
(11) Ты хоть задачу опиши, что изначально получить хотелось?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |