Собственно есть такой запрос....но вот подходит ли он для решения поставленной задачи...
Если ПериодичностьСтр = "День" Тогда СтрокаПериодв1 = "datePART(dd,LEFT(Жур.Date_Time_IDDoc, 8))Период ,"; СтрокаГруппировкиSQL3 = ",datePART( dd,LEFT(Жур.Date_Time_IDDoc,8))"; ИначеЕсли ПериодичностьСтр = "Неделя" Тогда СтрокаПериодв1 = "datePART( wk,LEFT(Жур.Date_Time_IDDoc,8)) Период,"; СтрокаГруппировкиSQL3 = ",datePART( wk,LEFT(Жур.Date_Time_IDDoc,8))"; ИначеЕсли ПериодичностьСтр = "Месяц" Тогда СтрокаПериодв1 = "datePART( mm,LEFT(Жур.Date_Time_IDDoc,8)) Период,"; СтрокаГруппировкиSQL3 = ",datePART( mm,LEFT(Жур.Date_Time_IDDoc,8))"; ИначеЕсли ПериодичностьСтр = "Квартал" Тогда СтрокаПериодв1 = "datePART( qq,LEFT(Жур.Date_Time_IDDoc,8)) Период,"; СтрокаГруппировкиSQL3 = ",datePART( qq,LEFT(Жур.Date_Time_IDDoc,8))"; ИначеЕсли ПериодичностьСтр = "Год" Тогда СтрокаПериодв1 = "datePART(yyyy,LEFT(Жур.Date_Time_IDDoc,8)) Период,"; СтрокаГруппировкиSQL3 = ",datePART(yyyy,LEFT(Жур.Date_Time_IDDoc,8))"; КонецЕсли;
ТекстЗапроса = "
|SELECT | Жур.IDDOC as [Док $Документ], | Жур.IDDocDef as Док_вид, | CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок, | $ДокС.Товар as [Товар $Справочник.Товары], | $ДокС.Количество as Количество, | $Док.Склад as [Склад $Справочник.Склады], | Док.$ОбщийРеквизит.АвторПроведения as Сотрудник, | Жур.$ОбщийРеквизит.Подразделение as [Подразделение $Справочник.Подразделение], | $Док.ПричинаВозврата as [ПричинаВозврата $Перечисление.Причина_возврата], | "+?(ПериодичностьСтр <> "Пусто" ,""+СтрокаПериодв1+"","")+" | $Док.ПризнакНакладной as [ПризнакН $Перчисление.ПризнНакл] |FROM | $ДокументСтроки.Приходная as ДокС |INNER JOIN | $Документ.Приходная as Док ON Док.IDDoc = ДокС.IDDoc and | $Док.ПризнакНакладной = '"+sql_pзнач_булево_Возврат+"' | "+?(ВыбСотрудник.Выбран() =1 ,"and (Док.$ОбщийРеквизит.АвторПроведения =:Автор)","")+" | "+?(ПричинаВозврата.Выбран() =1 ,"and ($ДокС.ПричинаВозврата =:Причина)","")+" | "+?(ВыбСклад.GetListSize()>0,"and($Док.Склад IN (SELECT val FROM #v_selected_sklad))","")+" | "+?(ВыбТовар.GetListSize()>0,"and($ДокС.Товар IN (SELECT val FROM #v_selected_tovar))","")+" |INNER JOIN | _1SJourn as Жур ON Жур.IDDoc = ДокС.IDDoc AND | Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~ AND | Жур.Closed & 1 = 1 | "+?(Подразделение.Выбран() =1 ,"and (Жур.$ОбщийРеквизит.Подразделение =:Подразделение)","")+" |";
|