Имя: Пароль:
1C
1С v8
Подскажите про высчитывание в запросе, если есть NULL
0 Double_Medved
 
30.01.13
00:55
Подскажите плиз, проблема довольно простая наверно, но что-то не выходит: УТ11, дописанная. Мне нужно написать простой отчетик, который будет брать ОстаткиНаСкладе на ДатаКонца, Цену на ДатаНачала и Цену на ДатаКонца. Он должен вывести те позиции, цена на которые изменилась за период отчета и на сколько изменилась  и на сколько суммарно изменилась, например на складе 2 ручки , ЦенаНаНачало = 10, ЦенаКонец = 12, отчет должен показать что цена изменалась на 2, а общая сумма на 4. Проблема в том, что если цена назначалась в период отчета, то есть на начало не была назначена, и видимо это NULL, то он показывает цены, но не высчитывает разницу и сумму, видио ему мешает NULL. Подскажите как ему сказать чтобы он брал NULL за ноль?
ВЫБРАТЬ
   ТоварыНаСкладах.Номенклатура,
   ТоварыНаСкладах.Склад,
   ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
   ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена, 0) КАК Цена2,
   ТоварыНаСкладах.ВНаличииОстаток КАК Количество,
   ВЫРАЗИТЬ(ЦеныНоменклатурыСрезПоследних2.Цена - ЦеныНоменклатурыСрезПоследних.Цена КАК ЧИСЛО(15, 2)) КАК Разница,
   ВЫРАЗИТЬ(ТоварыНаСкладах.ВНаличииОстаток * (ЦеныНоменклатурыСрезПоследних2.Цена - ЦеныНоменклатурыСрезПоследних.Цена) КАК ЧИСЛО(15, 2)) КАК Сумма
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&дата2, Склад = &Склад) КАК ТоварыНаСкладах
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&дата, ВидЦены = &тип) КАК ЦеныНоменклатурыСрезПоследних
       ПО ТоварыНаСкладах.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&дата2, ВидЦены = &тип) КАК ЦеныНоменклатурыСрезПоследних2
       ПО ТоварыНаСкладах.Номенклатура = ЦеныНоменклатурыСрезПоследних2.Номенклатура
1 Бешеная Нога
 
30.01.13
00:56
ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена, 0) - ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)) КАК Разница
2 Double_Medved
 
30.01.13
00:57
может как-то так?
ВЫРАЗИТЬ(ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена, 0) - ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК ЧИСЛО(15, 2)) КАК Разница
3 Double_Medved
 
30.01.13
00:58
ООО, БешенаяНога, спасибо. Вот как только написал на форуме так сразу и сам допер
4 Double_Medved
 
30.01.13
00:58
Сейчас попробую