СКД вывод данных за разные периоды

Добрый день подскажите как можно сделать такую штуку на скд. Пользователь указывает период например, текущий месяц, а ему показывают данные за тот месяц который он выбрал(1 колонка ) + за предыдущий месяц(2 колонка). Пользователь всегда будет выбирать период месяц, т.к. интересуют данные только за 1 месяц. Просто можно сделать через обьединение запросов, а вот как задать второй период  парметром или еще както… И как будет более правильно сделать это одним запросом, через обьединить или соединить наборы даных в СКД?

Подписаться
Уведомить о
guest
6 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Serega456
Serega456
11 лет назад

Допустим есть 2 параметра
ДанаНач
ДатаКон
Можно создать еще 2 параметра
ДатаНачМесяцНазад
ДатаКонМесяцНазад
В поле “Выражение” на закладке “Параметры” для
ДатаНачМесяцНазад указать “ДобавитьМесяц(&ДатаНач,-1)”
ДатаКонМесяцНазад указать “ДобавитьМесяц(&ДатаКон,-1)”
Что касается соединения или объединения, то с точки зрения производительности объединение лучше.

Sternu
Sternu
11 лет назад

Не “ДобавитьМесяц(&ДатаНач,-1)”, а ДобавитьКДате(&ДатаНач,”Месяц”,-1)
И не работает эта штука, сам неделю бьюсь с таким. Хоть два набора данных, хоть два запроса в одном наборе данных, СКД тупо игнорирует все явно указанные параметры и использует для всего &ДатаНач и &ДатаКон, получаются одинаковые данные за оба периода, а именно за указанный период, ДобавитьКДате игнорируется.
Как заставить СКД выполнять запросы по РАЗНЫМ периодам?

Sternu
Sternu
11 лет назад

“Победил” следующим образом (надо получать обороты за периоды с разницей год):
В СКД для параметра ДатаНачала установил выражение ДобавитьКДате(&ДатаНачала, “Год”, -1)
Таким образом СКД будет брать данные с начала прошлого периода, т.е. год назад, до конца текущего периода.
В наборе данных сделал во вложенном запросе объединение запросов, установил в настройках периоды и в условиях к каждому запросу жестко прописал ограничения Периода относительно ДатаНачала и ДатаКонца с применением ДОБАВИТЬКДАТЕ. Ну и группировку во вложенном запросе по итогам выполнения объединения запросов.
Таким образом СКД выгребает данные за весь период в год с лишним, а каждый из запросов в объединении из этого всего выбирает и выдает то, что нужно именно ему.
Если есть более “изящное” решение – поделитесь, буду весьма признателен.

KovalOleg
KovalOleg
11 лет назад

Не нужно указывать стандартные параметры “НачалоПериода” и “КонецПериода”, т.е. ставим на них ограничение использования и в параметрах виртуальных таблиц ставим свои параметры. Ибо СКД при указании предопределенных параметров, почему то пихает эти параметры во все виртуальные таблицы регистров.

TarasBelousov
TarasBelousov
11 лет назад

Достаточно указать параметр в фигурных скобках : Остатки.СрезПоследних( {(конецпериода(&Дата,день))}, ), этим мы укажем явно параметр для СКД и автоматически параметр создаваться не будет. В конструкторе запроса на вкладке “компопновка данных” есть подвкладка “таблицы” – там можно задать параметры виртуальных таблиц для СКД , если привыкли к конструктору.

Itt5082
Itt5082
6 лет назад

Народ так я так и не понял как мне из двух наборов данных в один столбец вывести данные например за январь 2017 а в другой столбец за январь 2016 номенклатура одинаковая