Имя: Пароль:
1C
1С v8
подскажите как подставить null в запросе, чтоб выдавал результаты с учетом нулевых остатков
0 Zoeh
 
17.02.22
12:45
пока что в результат дает только те значения где есть остаток по всем трём таблицам(запрос сделал через конструктор, без фильтров работает норм!)

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

СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа,
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыВРезервеНаСкладахОстатки.Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура,
ТоварыВРезервеНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа,
ЗаказыПоставщикамОстатки.Номенклатура,
ЗаказыПоставщикамОстатки.Номенклатура.НоменклатурнаяГруппа

УПОРЯДОЧИТЬ ПО
Склад,
НоменклатураНоменклатурнаяГруппа,
Номенклатура
ИТОГИ
СУММА(КоличествоОстаток),
СУММА(КоличествоОстаток1),
СУММА(КоличествоОстаток2)
ПО
Склад,
НоменклатураНоменклатурнаяГруппа,
Номенклатура
1 zuza
 
17.02.22
12:47
(0) Справочник номенклатуры прикрути в запрос
2 astrawalk
 
17.02.22
12:49
(0) ГДЕ превращает твое ПОЛНОЕ соединение во ВНУТРЕННЕЕ
3 Ёпрст
 
17.02.22
12:53
Еще тем 50 и ТС откроет для себя Объединить все
4 Ёпрст
 
17.02.22
12:54
Ну и сгруппировать По и Итоги..не жизнеспособная конструкция, может открыть для автора мир удивительных открытий
5 Zoeh
 
17.02.22
13:26
(2) + понял спасибо
6 lEvGl
 
гуру
17.02.22
13:58
нулевые остатки - это значит что ничего нет, запрос не может вернуть то, чего нет. нужно определиться, что нужно получить, остатки по чем? по всей номенклатуре, которая когда либо проходила?
7 lEvGl
 
гуру
17.02.22
13:59
потом лепить к этому списку остатки
8 Zoeh
 
17.02.22
15:54
Вот так вот....

ВЫБРАТЬ
ЕСТЬNULL(ЕСТЬNULL(ТоварыНаСкладахОстатки.Склад,ТоварыВРезервеНаСкладахОстатки.Склад),NULL) КАК Склад,
ЕСТЬNULL(ЕСТЬNULL(ТоварыНаСкладахОстатки.Номенклатура,ТоварыВРезервеНаСкладахОстатки.Номенклатура),ЗаказыПоставщикамОстатки.Номенклатура) КАК Номенклатура,
ЕСТЬNULL(ЕСТЬNULL(ТоварыНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа,ТоварыВРезервеНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа),ЗаказыПоставщикамОстатки.Номенклатура.НоменклатурнаяГруппа) КАК НоменклатураНоменклатурнаяГруппа,
ЕСТЬNULL(СУММА(ТоварыНаСкладахОстатки.КоличествоОстаток),0) КАК КоличествоОстаток,
ТоварыВРезервеНаСкладахОстатки.Склад КАК Склад1,
ТоварыВРезервеНаСкладахОстатки.Номенклатура КАК Номенклатура1,
ТоварыВРезервеНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа КАК НоменклатураНоменклатурнаяГруппа1,
СУММА(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток) КАК КоличествоОстаток1,
NULL как Склад2,
ЗаказыПоставщикамОстатки.Номенклатура КАК Номенклатура2,
ЗаказыПоставщикамОстатки.Номенклатура.НоменклатурнаяГруппа КАК НоменклатураНоменклатурнаяГруппа2,
СУММА(ЗаказыПоставщикамОстатки.КоличествоОстаток) КАК КоличествоОстаток2

ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки (&Дата2,Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ(&НоменклатурнаяГруппа)) КАК ТоварыНаСкладахОстатки
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки (&Дата2,Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ(&НоменклатурнаяГруппа)) КАК ТоварыВРезервеНаСкладахОстатки
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗаказыПоставщикам.Остатки (&Дата2,Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ(&НоменклатурнаяГруппа)) КАК ЗаказыПоставщикамОстатки
ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = ЗаказыПоставщикамОстатки.Номенклатура
ПО ТоварыНаСкладахОстатки.Склад = ТоварыВРезервеНаСкладахОстатки.Склад
И ТоварыНаСкладахОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура

СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстатки.Склад,
ТоварыНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа,
ТоварыНаСкладахОстатки.Номенклатура,
ТоварыВРезервеНаСкладахОстатки.Склад,
ТоварыВРезервеНаСкладахОстатки.Номенклатура,
ТоварыВРезервеНаСкладахОстатки.Номенклатура.НоменклатурнаяГруппа,
ЗаказыПоставщикамОстатки.Номенклатура,
ЗаказыПоставщикамОстатки.Номенклатура.НоменклатурнаяГруппа
УПОРЯДОЧИТЬ ПО
Склад,
НоменклатураНоменклатурнаяГруппа,
Номенклатура
ИТОГИ
СУММА(КоличествоОстаток),
СУММА(КоличествоОстаток1),
СУММА(КоличествоОстаток2)
ПО
Склад,
НоменклатураНоменклатурнаяГруппа,
Номенклатура
9 Ёпрст
 
17.02.22
15:57
(8) всё в топку
10 Ёпрст
 
17.02.22
15:58
>>>Номенклатура.НоменклатурнаяГруппа В ИЕРАРХИИ(&НоменклатурнаяГруппа)
это г..о нужжно выносить в отдельный запрос

А так, выкинуть полное соединение и группировку
11 Zoeh
 
17.02.22
16:02
да нормально работает!
12 lEvGl
 
гуру
17.02.22
16:05
заголовок топика сформулирован некорректно
13 Ёпрст
 
17.02.22
16:07
(11) Ну , т.е радуга тебя устраивает ?
У ну тогда ладно, че..
14 Ёпрст
 
17.02.22
16:08
а вот это вот, так вообще шедевр

ЕСТЬNULL(ЕСТЬNULL(ТоварыНаСкладахОстатки.Склад,ТоварыВРезервеНаСкладахОстатки.Склад),NULL)
15 mikecool
 
17.02.22
16:11
(14) 5 баллов, зачетку!
16 Курцвейл
 
17.02.22
16:59
(14) Это гениально!
2 + 2 = 3.9999999999999999999999999999999...