Отчет по нескольким периодам на Системе Компановки Данных (СКД)
Формирую из 2х наборов данных
первый набор — Запрос по остаткам
второй набор для вывода периодов продаж, генерируется в процедуре, используя «ОБЪЕДИНИТЬ ВСЕ»
сам отчет можно скачать тут http://infostart.ru/public/142953
часть процедуры для формирования Запроса
ПромТекст = "ВЫБРАТЬ | ""Неделя WWW"" КАК Неделя, | Продажи.Склад.Магазин КАК Магазин, | Продажи.Номенклатура, | СРЕДНЕЕ(ВЫБОР | КОГДА Продажи.Количество <> 0 | ТОГДА Продажи.Стоимость / Продажи.Количество | ИНАЧЕ 0 | КОНЕЦ) КАК ЦенаПродаж, | СУММА(Продажи.Количество) КАК Количество, | СУММА(Продажи.Стоимость) КАК Сумма |ИЗ | РегистрНакопления.Продажи КАК Продажи |ГДЕ | Продажи.Период МЕЖДУ &НачалоПериода И &КонецПериода | И Продажи.Номенклатура.НоменклатурнаяГруппа В(&СписНомГрупп) | |СГРУППИРОВАТЬ ПО | Продажи.Склад.Магазин, | Продажи.Номенклатура"; ТекстЗапроса = ""; Для i=1 По КолПериодов Цикл Д1 = НачалоНедели(КонПериода) - (КолПериодов-i)*7*24*60*60; Если i=КолПериодов Тогда Д2 = КонецДня(ТекущаяДата()); Иначе Д2 = КонецНедели(Д1); КонецЕсли; ПромТекст1 = ПромТекст; ПромТекст1 = СтрЗаменить(ПромТекст1, "Неделя WWW", "(" + Строка(i+1) + ") " + ПредставлениеПериода(Д1, Д2, "ФП=Истина") + ""); ПромТекст1 = СтрЗаменить(ПромТекст1, "&НачалоПериода", "ДАТАВРЕМЯ(" + Формат(Год(Д1), "ЧГ=0") + "," + Формат(Месяц(Д1), "ЧГ=0") + "," + Формат(День(Д1), "ЧГ=0") + ",00,00,00)"); ПромТекст1 = СтрЗаменить(ПромТекст1, "&КонецПериода", "ДАТАВРЕМЯ(" + Формат(Год(Д2), "ЧГ=0") + "," + Формат(Месяц(Д2), "ЧГ=0") + "," + Формат(День(Д2), "ЧГ=0") + ",23,59,59)"); ТекстЗапроса = ТекстЗапроса + ?(ТекстЗапроса="", "", Символы.ПС + Символы.ПС + "ОБЪЕДИНИТЬ ВСЕ" + Символы.ПС + Символы.ПС) + ПромТекст1; КонецЦикла; СхемаКомпоновкиДанных.НаборыДанных.НаборДанных2.Запрос = ТекстЗапроса;