СКД: как правильно суммировать? #598136


#0 by 541
Есть вот такой вот самопальный отчет: в нем все поля, кроме последнего, заполняются путем простого выдергивания данных из нужных регистров. Последнее - вычисляемое поле, должно быть равно "остаток + заказано" по каждой позиции (характеристике номенклатуры). На данный момент оно заполняется только если оба поля ("остаток" и "заказано") заполнены. Как заставить систему понимать пустое поле, как значение, равное нулю?
#1 by Смешной 1С
ЕстьNULL
#2 by mikecool
сделай вычисляемое поле
#3 by Смешной 1С
+ т.е ЕстьNULL(остаток, 0) + ЕстьNULL(заказано, 0) У него и так вычисляемое
#4 by 541
Сейчас пришел к выводу, что ошибка не в вычисляемом поле, а в формировании исходных значений. Вот запрос для получения "остаток" и "едет":    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, Результат выполнения запроса - набор записей, в которых заполнены оба значения. Наверное, это из-за условия "ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад"". Как обойти?
#5 by НЕА123
ЛЕВОЕ надо.
#6 by 541
а если остаток будет = 0, а "едет" <> 0 ?
#7 by НЕА123
может ПОЛНОЕ.
#8 by 541
ты издеваешься чтоли?
#9 by НЕА123
ага. ПОЛНОЕ надо.
#10 by Wobland
я тоже за полное
#12 by 541
а, нет, все-равно не работает. Записи, в которых "остаток" = 0, а "едет" <> 0 не отображаются.
#13 by Wobland
а ты до сих пор только по характеристике соединяешь?
#14 by 541
да, а следует дополнительно по номенклатуре? что это изменит?
#15 by Wobland
попадут номенклатуры с пустыми характеристиками
#16 by Wobland
или я не пообедал ещё?
#17 by 541
крайне мало у нас таких номенклатур, если есть вообще. До сих пор ни разу на это не натыкались
#18 by Wobland
всё равно некрасиво. Номенклатура Трамвай (с пустой характеристикой) будет соединена с номенклатурой Бабушка (с пустой характеристикой). в консоли запрос глядел?
#19 by 541
в консоли это и вижу - не показывает нужные строчки
#20 by НЕА123
склад еще есть. и "помни о детях!" (с) т.е. ЕСТЬNULL
#21 by Wobland
(справочник номенклатура левое товары) полное (справочник номенклатура левое заказы) ?
#22 by Wobland
у него остатки, какой ЕСТЬNULL?
#23 by Wobland
+ и СУММА
#24 by Wobland
всё, пойду обедать
#25 by Wobland
ну ты понял, что у тебя в виртуальной таблице некоторых номенклатур может и не быть?
#26 by НЕА123
соединение у него ПОЛНОЕ, вроде. получается, что NULL везде может быть.
#27 by Garkin
Самый настоящий СУММА(ЕСТЬNULL(....) ) и далее по тексту
#28 by Wobland
+ где товары<>NULL и заказы<>NULL
#29 by 541
ЕстьNULL здесь не при чем. Все упирается в условие "ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад"". Подскажите (если можно, максимально конкретно и логично), каким образом к характеристике "хар1" единым запросом найти значения "остаток" (обязательно отбор только по "наш склад") и "едет" (заказано поставщику)?
#30 by Wobland
выбрать заказы.номенклатура, заказы.остаток, естьNULL(товары.остаток) из заказы(&период, &склад) левое товары(&период, &склад)
#31 by 541
А если позиция не заказана, но есть в остатке?
#32 by Garkin
Сделай вложенный запрос по ТоварыНаСкладахОстатки с условием ГДЕ, а потом соединяй вложенный запрос с заказами. ЗЫ: За условие типа ТоварыНаСкладахОстатки.Склад.Наименование = "Наш склад"" обычно предлагают чтонибудь оторвать.
#33 by Wobland
-> +
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С