|
УТ 10.3 Запрос по продажам. Не выводит номенклатурные позиции, по которым нет | ☑ | ||
---|---|---|---|---|
0
Koliaff
09.10.15
✎
10:59
|
Доброго времени суток. Пишу отчет по продажам номенклатуры по месяцам.В отчет нужно вывести стоимость продаж по выбранным номенклатурным позициям (перемененная в запросе &Номенклатура, типа список значений). Причем нужно вывести ВСЕ номенклатурные позиции, даже те, по которым вообще не было продаж.
Как изменить запрос, чтобы в отчет попадали те позиции, по которым не было ни одной продажи ? ЗапросПоПродажам = Новый Запрос; ЗапросПоПродажам.Текст = "ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | ПродажиОбороты.Номенклатура КАК Номенклатура, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот |ИЗ | РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода, Месяц, Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ПродажиОбороты | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период, | ПродажиОбороты.Номенклатура |ИТОГИ | СУММА(СтоимостьОборот) |ПО | Номенклатура ИЕРАРХИЯ, | Период ПЕРИОДАМИ(МЕСЯЦ, &НачПериода, &КонПериода)"; Рез = ЗапросПоПродажам.Выполнить(); ОбходПоНоменклатуре = Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура", "Все"); Пока ОбходПоНоменклатуре.Следующий() Цикл ОбходПоПериоду = ОбходПоНоменклатуре.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "Все"); Пока ОбходПоПериоду.Следующий() Цикл // Вывод в табличный документ КонецЦикла; КонецЦикла; |
|||
1
Timon1405
09.10.15
✎
11:01
|
используйте левое соединение
|
|||
2
Maniac
09.10.15
✎
11:03
|
Нужно строить запрос по справочнику номенклатуры и уже только к нему присоединять продажи
|
|||
3
ibreiter
09.10.15
✎
11:03
|
К номенклатуре из списка левое соединение с вашей таблицей
|
|||
4
Koliaff
09.10.15
✎
11:04
|
(Timon1405) Левое соединение со справочником номенклатура ? Мне периоды мешают ).
|
|||
5
Ненавижу 1С
гуру
09.10.15
✎
11:05
|
ИЗ
Справочник.Номенклатура КАК СпрНоменклатура ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода, Месяц, Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ПродажиОбороты ПО СпрНоменклатура.Ссылка = ПродажиОбороты.Номенклатура ГДЕ СпрНоменклатура.Ссылка В ИЕРАРХИИ (&Номенклатура) |
|||
6
Koliaff
09.10.15
✎
11:05
|
ЗапросПоПродажам = Новый Запрос;
ЗапросПоПродажам.Текст = "ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | ВЫБОР | КОГДА ПродажиОбороты.Номенклатура ЕСТЬ NULL | ТОГДА СпрНом.Ссылка | ИНАЧЕ ПродажиОбороты.Номенклатура | КОНЕЦ КАК Номенклатура, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот |ИЗ | Справочник.Номенклатура КАК СпрНом | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода, Месяц, Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ПродажиОбороты | ПО СпрНом.Ссылка = ПродажиОбороты.Номенклатура |ГДЕ | СпрНом.Ссылка В ИЕРАРХИИ(&Номенклатура) | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период, | ВЫБОР | КОГДА ПродажиОбороты.Номенклатура ЕСТЬ NULL | ТОГДА СпрНом.Ссылка | ИНАЧЕ ПродажиОбороты.Номенклатура | КОНЕЦ |ИТОГИ | СУММА(СтоимостьОборот) |ПО | Номенклатура ИЕРАРХИЯ, | Период ПЕРИОДАМИ(МЕСЯЦ, &НачПериода, &КонПериода)"; Вот так пробовал, не получается |
|||
7
Ненавижу 1С
гуру
09.10.15
✎
11:06
|
что не получается?
вместо этого бреда: ВЫБОР | КОГДА ПродажиОбороты.Номенклатура ЕСТЬ NULL | ТОГДА СпрНом.Ссылка | ИНАЧЕ ПродажиОбороты.Номенклатура | КОНЕЦ КАК Номенклатура напиши: СпрНом.Ссылка КАК Номенклатура |
|||
8
Maniac
09.10.15
✎
11:07
|
что за бред
| ВЫБОР | КОГДА ПродажиОбороты.Номенклатура ЕСТЬ NULL | ТОГДА СпрНом.Ссылка | ИНАЧЕ ПродажиОбороты.Номенклатура | КОНЕЦ КАК Номенклатура, |
|||
9
GreatOne
09.10.15
✎
11:08
|
это стаж 9 лет, все норм)
|
|||
10
Ненавижу 1С
гуру
09.10.15
✎
11:09
|
(9) позорит Краснодар
|
|||
11
Koliaff
09.10.15
✎
11:11
|
ЗапросПоПродажам = Новый Запрос;
ЗапросПоПродажам.Текст = "ВЫБРАТЬ | ПродажиОбороты.Период КАК Период, | СпрНом.Ссылка КАК Номенклатура, | СУММА(ПродажиОбороты.СтоимостьОборот) КАК СтоимостьОборот |ИЗ | Справочник.Номенклатура КАК СпрНом | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи.Обороты(&НачПериода, &КонПериода, Месяц, Номенклатура В ИЕРАРХИИ (&Номенклатура)) КАК ПродажиОбороты | ПО СпрНом.Ссылка = ПродажиОбороты.Номенклатура |ГДЕ | СпрНом.Ссылка В ИЕРАРХИИ(&Номенклатура) | |СГРУППИРОВАТЬ ПО | ПродажиОбороты.Период, | СпрНом.Ссылка |ИТОГИ | СУММА(СтоимостьОборот) |ПО | Номенклатура ИЕРАРХИЯ, | Период ПЕРИОДАМИ(МЕСЯЦ, &НачПериода, &КонПериода)"; |
|||
12
Koliaff
09.10.15
✎
11:17
|
ОбходПоНоменклатуре = Рез.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура", "Все");
Пока ОбходПоНоменклатуре.Следующий() Цикл ОбластьСтрокаПервыйСтолбец.Параметры.Номенклатура = ОбходПоНоменклатуре.Номенклатура; ТабДокумент.Вывести(ОбластьСтрокаПервыйСтолбец); ОбходПоПериоду = ОбходПоНоменклатуре.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период", "Все"); Пока ОбходПоПериоду.Следующий() Цикл Если ОбходПоПериоду.СтоимостьОборот = NULL Тогда ТабДокумент.Присоединить(ОбластьПустаяСтрокаПериод); Иначе ОбластьСтрокаПериод.Параметры.Стоимость = ОбходПоПериоду.СтоимостьОборот; ТабДокумент.Присоединить(ОбластьСтрокаПериод); КонецЕсли; КонецЦикла; КонецЦикла; Вот вывод отчета. Я выбрал весь 2015 год в отчете. Почему-то январь 2015 у всех номенклатурных позиции по 0, хотя движения были. |
|||
13
Maniac
09.10.15
✎
12:27
|
Если ОбходПоПериоду.СтоимостьОборот = NULL Тогда
условие кривое |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |