Отчет по нескольким периодам на СКД

Отчет по нескольким периодам на Системе Компановки Данных (СКД)

Формирую из 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.Запрос = ТекстЗапроса;

Добавить комментарий