|
СКД: как правильно суммировать? | ☑ | ||
---|---|---|---|---|
0
541
29.02.12
✎
08:57
|
Есть вот такой вот самопальный отчет: http://savepic.net/2523162.png
в нем все поля, кроме последнего, заполняются путем простого выдергивания данных из нужных регистров. Последнее - вычисляемое поле, должно быть равно "остаток + заказано" по каждой позиции (характеристике номенклатуры). На данный момент оно заполняется только если оба поля ("остаток" и "заказано") заполнены. Как заставить систему понимать пустое поле, как значение, равное нулю? |
|||
1
Смешной 1С
29.02.12
✎
09:11
|
ЕстьNULL
|
|||
2
mikecool
29.02.12
✎
09:12
|
(0) сделай вычисляемое поле
|
|||
3
Смешной 1С
29.02.12
✎
09:13
|
+ (1) т.е ЕстьNULL(остаток, 0) + ЕстьNULL(заказано, 0)
(2) У него и так вычисляемое |
|||
4
541
29.02.12
✎
09:27
|
Сейчас пришел к выводу, что ошибка не в вычисляемом поле, а в формировании исходных значений. Вот запрос для получения "остаток" и "едет":
ВЫБРАТЬ ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, ТоварыНаСкладахОстатки.Номенклатура, СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток) КАК ОстатокНаПервомСкладе1, СУММА(ЗаказыПоставщикамОстатки.КоличествоОстаток) КАК ЗаказаноПоставщику1 ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки КАК ЗаказыПоставщикамОстатки ПО ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры = ЗаказыПоставщикамОстатки.ХарактеристикаНоменклатуры ГДЕ ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад" СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, ТоварыНаСкладахОстатки.Номенклатура Результат выполнения запроса - набор записей, в которых заполнены оба значения. Наверное, это из-за условия "ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад"". Как обойти? |
|||
5
НЕА123
29.02.12
✎
09:31
|
(4)
ЛЕВОЕ надо. |
|||
6
541
29.02.12
✎
09:33
|
а если остаток будет = 0, а "едет" <> 0 ?
|
|||
7
НЕА123
29.02.12
✎
09:34
|
может ПОЛНОЕ.
|
|||
8
541
29.02.12
✎
09:34
|
ты издеваешься чтоли?
|
|||
9
НЕА123
29.02.12
✎
09:34
|
(6)
ага. ПОЛНОЕ надо. |
|||
10
Wobland
29.02.12
✎
09:35
|
(8) я тоже за полное
|
|||
11
541
29.02.12
✎
09:35
|
магия. работает
Спасибо всем |
|||
12
541
29.02.12
✎
09:48
|
а, нет, все-равно не работает.
Записи, в которых "остаток" = 0, а "едет" <> 0 не отображаются. |
|||
13
Wobland
29.02.12
✎
09:50
|
(12) а ты до сих пор только по характеристике соединяешь?
|
|||
14
541
29.02.12
✎
09:52
|
да, а следует дополнительно по номенклатуре? что это изменит?
|
|||
15
Wobland
29.02.12
✎
09:52
|
(14) попадут номенклатуры с пустыми характеристиками
|
|||
16
Wobland
29.02.12
✎
09:53
|
(15) или я не пообедал ещё?
|
|||
17
541
29.02.12
✎
09:54
|
крайне мало у нас таких номенклатур, если есть вообще. До сих пор ни разу на это не натыкались
|
|||
18
Wobland
29.02.12
✎
09:57
|
(17) всё равно некрасиво. Номенклатура Трамвай (с пустой характеристикой) будет соединена с номенклатурой Бабушка (с пустой характеристикой).
в консоли запрос глядел? |
|||
19
541
29.02.12
✎
09:58
|
в консоли это и вижу - не показывает нужные строчки
|
|||
20
НЕА123
29.02.12
✎
09:58
|
(14)
склад еще есть. и "помни о детях!" (с) т.е. ЕСТЬNULL |
|||
21
Wobland
29.02.12
✎
10:00
|
(19) (справочник номенклатура левое товары) полное (справочник номенклатура левое заказы) ?
|
|||
22
Wobland
29.02.12
✎
10:01
|
(20) у него остатки, какой ЕСТЬNULL?
|
|||
23
Wobland
29.02.12
✎
10:01
|
+(22) и СУММА()
|
|||
24
Wobland
29.02.12
✎
10:01
|
(21) всё, пойду обедать
|
|||
25
Wobland
29.02.12
✎
10:03
|
(19) ну ты понял, что у тебя в виртуальной таблице некоторых номенклатур может и не быть?
|
|||
26
НЕА123
29.02.12
✎
10:04
|
(22)
соединение у него ПОЛНОЕ, вроде. получается, что NULL везде может быть. |
|||
27
Garkin
29.02.12
✎
10:04
|
(22) Самый настоящий СУММА(ЕСТЬNULL(....) ) и далее по тексту
|
|||
28
Wobland
29.02.12
✎
10:32
|
(21) + где товары<>NULL и заказы<>NULL
|
|||
29
541
29.02.12
✎
11:28
|
ЕстьNULL здесь не при чем. Все упирается в условие "ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад"".
Подскажите (если можно, максимально конкретно и логично), каким образом к характеристике "хар1" единым запросом найти значения "остаток" (обязательно отбор только по "наш склад") и "едет" (заказано поставщику)? |
|||
30
Wobland
29.02.12
✎
11:34
|
(29) выбрать заказы.номенклатура, заказы.остаток, естьNULL(товары.остаток) из заказы(&период, &склад) левое товары(&период, &склад)
|
|||
31
541
29.02.12
✎
11:43
|
А если позиция не заказана, но есть в остатке?
|
|||
32
Garkin
29.02.12
✎
11:46
|
(29) Сделай вложенный запрос по ТоварыНаСкладахОстатки с условием ГДЕ, а потом соединяй вложенный запрос с заказами.
ЗЫ: За условие типа ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад"" обычно предлагают чтонибудь оторвать. |
|||
33
Wobland
29.02.12
✎
11:49
|
(31) -> (21)+(28)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |