Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 11:43

Один запрос, но несколько периодов

Автор depb, 24 мар 2021, 08:58

0 Пользователей и 1 гость просматривают эту тему.

depb

 Необходимо написать отчет, который представляет собой фиксированный макет в виде таблицы. В строках - статья, в колонках разбивка года по месяцам янв, февр, март и до декабря. В зависимости от даты формирования, будут заполняться  данные в соответствующих колонках по месяцам. Например, в марте янв, февр, март. Т.е запрос для получения данных один, а периоды разны. Как это все элегантнее написать? Вариант переделать на СКД и получать с разбивкой по периодам не предлагать, нужен именно макет с фиксированной таблицей.

Сам склоняюсь, получить кол месяцев из текущей даты, прокрутить их в цикле и в цикле запускать процедуру с запросом получения данных, устанавливать параметры запроса по датам в зависимости от месяца

LexaK

ну зачем так сложно? да еще запрос в цикле!!! :lol:
примерный план запроса может быть такой (возможна куча вариантов)
получаете и передаете в запрос в параметры даты периода
ДатаНачала, ДатаОкончания и по ним отбираете данные в условии
Где
ВашДокумент.Дата между &ДатаНачала и &ДатаОкончания

а для того что бы данные собрались именно по месяцам добавить такую команду
    НачалоПериода(ВашДокумент.Дата, Месяц) как ПериодМесяц, //по нему можно группировать результат

вот небольшой пример запроса
Выбрать
    НачалоПериода(ВашДокумент.Дата, Месяц) как ПериодМесяц, //по нему можно группировать результат
    Сумма(ВашДокумент.Сумма) как Сумма
Из
    Документ.ВашДокумент как ВашДокумент
где
    ВашДокумент.Дата между &ДатаНачала и &ДатаОкончания
сгруппировать по
    НачалоПериода(ВашДокумент.Дата, Месяц)

в результате получите табличку с колонками Месяц - Сумма
что очень легко вывести ваш фиксированный макет

и не забываем что сам запрос очень сильно будет зависеть от данных по которым строится
например по регистрам накопления, даже группировать ни чего не надо
примерно так
Выбрать
рег.Период,
Рег.Контрагент,
Рег.СуммаОборот
из
РегистрНакопления.ВашиРасчеты.Обороты(&ДатаНачала, &ДатаОкончания, Месяц) Рег

если помогло нажмите: Спасибо!

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск