Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 04:46

Условие в запросе

Автор Diakon, 15 окт 2012, 14:35

0 Пользователей и 1 гость просматривают эту тему.

Diakon

Помогите с такой проблеммой. Создаю отчет, который тянет колличество заказов на номенклатуру и срвавнивает количесто этого заказанного товара с тем что есть на складе. В силу различный причин, я беру данные не из регистра из документов "Оприходование товаров", "Инвентаризация товаров на складе" и "Заказ покупателя". Расчет отклонения от заказанного и имеющегося товара происхожит путем сложения товаров из документа инвентаризация и оприходование и вычетанием колиичества из документа заказ покупателя. Все работает, но есть одно но. Если я имею по данной номенклатуре пустое значение в каком либо из документов, то вычисление не происходит - поле "Отклонение" остается пустым. Подскажите как в запросе можно вставить условие, что если количество = NULL, то количество = 0??

ВЫБРАТЬ
ВложенныйЗапрос.НоменклатураРодитель КАК НоменклатураРодитель,
ВложенныйЗапрос.Номенклатура КАК Номенклатура,
ВложенныйЗапрос.ИнвентаризацияКоличество КАК ИнвентаризацияКоличество,
ВложенныйЗапрос1.Количество КАК ОприходованиеКоличество,
СУММА(ВложенныйЗапрос.ЗаказКоличество) КАК ЗаказКоличество,
СУММА(ВложенныйЗапрос.ИнвентаризацияКоличество + ВложенныйЗапрос1.Количество - ВложенныйЗапрос.ЗаказКоличество) КАК Отклонение
ИЗ
(ВЫБРАТЬ
  ИнвентаризацияТоваровНаСкладеТовары.Номенклатура КАК Номенклатура,
  ИнвентаризацияТоваровНаСкладеТовары.Количество КАК ИнвентаризацияКоличество,
  СУММА(ЗаказПокупателяТовары.Количество) КАК ЗаказКоличество,
  ИнвентаризацияТоваровНаСкладеТовары.Номенклатура.Родитель КАК НоменклатураРодитель
ИЗ
  Документ.ИнвентаризацияТоваровНаСкладе.Товары КАК ИнвентаризацияТоваровНаСкладеТовары
   ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
   ПО ИнвентаризацияТоваровНаСкладеТовары.Номенклатура.Ссылка = ЗаказПокупателяТовары.Номенклатура.Ссылка
ГДЕ
  ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
  И ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
  И ЗаказПокупателяТовары.Ссылка.СкладГруппа = &Склад
  И ИнвентаризацияТоваровНаСкладеТовары.Ссылка.Склад = &Склад

СГРУППИРОВАТЬ ПО
  ИнвентаризацияТоваровНаСкладеТовары.Номенклатура.Родитель,
  ИнвентаризацияТоваровНаСкладеТовары.Номенклатура,
  ИнвентаризацияТоваровНаСкладеТовары.Количество) КАК ВложенныйЗапрос
  ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
   ОприходованиеТоваровТовары.Номенклатура КАК Номенклатура,
   СУММА(ОприходованиеТоваровТовары.Количество) КАК Количество
  ИЗ
   Документ.ОприходованиеТоваров.Товары КАК ОприходованиеТоваровТовары
  ГДЕ
   ОприходованиеТоваровТовары.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
   И ОприходованиеТоваровТовары.Ссылка.Склад = &Склад

  СГРУППИРОВАТЬ ПО
   ОприходованиеТоваровТовары.Номенклатура) КАК ВложенныйЗапрос1
  ПО ВложенныйЗапрос.Номенклатура = ВложенныйЗапрос1.Номенклатура
СГРУППИРОВАТЬ ПО
ВложенныйЗапрос.НоменклатураРодитель,
ВложенныйЗапрос.Номенклатура,
ВложенныйЗапрос.ИнвентаризацияКоличество,
ВложенныйЗапрос1.Количество
ИТОГИ
СУММА(ИнвентаризацияКоличество),
СУММА(ОприходованиеКоличество),
СУММА(ЗаказКоличество),
СУММА(Отклонение)
ПО
ОБЩИЕ,
НоменклатураРодитель

Заранее спасибо всем кто поможет!

Dethmontt

isNULL(ВложенныйЗапрос1.Количество,0) КАК Количество
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Diakon

Поменял в запросе ВложенныйЗапрос.ИнвентаризацияКоличество КАК ИнвентаризацияКоличество,  на
   "ВЫБРАТЬ
   |   ВложенныйЗапрос.НоменклатураРодитель КАК НоменклатураРодитель,
   |   ВложенныйЗапрос.Номенклатура КАК Номенклатура,
   |   ЕСТЬNULL(ВложенныйЗапрос.ИнвентаризацияКоличество, 0) КАК ИнвентаризацияКоличество,
   |   ЕСТЬNULL(ВложенныйЗапрос1.Количество, 0) КАК ОприходованиеКоличество,
   |   СУММА(ВложенныйЗапрос.ЗаказКоличество) КАК ЗаказКоличество,
   |   СУММА(ВложенныйЗапрос.ИнвентаризацияКоличество + ВложенныйЗапрос1.Количество - ВложенныйЗапрос.ЗаказКоличество) КАК Отклонение
   |ИЗ
...

но всеравно идут пустые поля и формула (ВложенныйЗапрос.ИнвентаризацияКоличество + ВложенныйЗапрос1.Количество - ВложенныйЗапрос.ЗаказКоличество) на них не счетает. Что делать то? >.<

Dethmontt

IsNull(ВложенныйЗапрос.ИнвентаризацияКоличество,0) + IsNull(ВложенныйЗапрос1.Количество,0) - IsNull(ВложенныйЗапрос.ЗаказКоличество,0)
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Diakon


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск