|
Получить даже те месяцы, где нет документов запросом. Без СКД. | ☑ | ||
---|---|---|---|---|
0
Бишбармак
30.07.21
✎
10:23
|
Задача. Посчитать и вывести в табличный документ количество документов за период в разрезе месяцев, за заранее указанный период отбора. Запрос сделал, но если в месяце нет документов, то нет и вывода в табличный документ.
Как дополнить всеми месяцами? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | КорректировкаРеализации.Ссылка КАК ЧислоДоков, | НАЧАЛОПЕРИОДА(КорректировкаРеализации.Дата, МЕСЯЦ) КАК МесяцДоков |ИЗ | Документ.КорректировкаРеализации КАК КорректировкаРеализации |ГДЕ | КорректировкаРеализации.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания |ИТОГИ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЧислоДоков) |ПО | МесяцДоков ПЕРИОДАМИ(МЕСЯЦ, &ДатаНачала, &ДатаОкончания)"; Запрос.УстановитьПараметр("ДатаНачала", Отчет.ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", Отчет.ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); ВыборкаМесяцДоков = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,,"Все"); Пока ВыборкаМесяцДоков.Следующий() Цикл В СКД знаю как сделать. Хотелось бы именно в запросе. Пока рассматриваю вариант сделать таблицу значений с месяцами и соединение к ней. |
|||
1
Андроны едут
30.07.21
✎
10:34
|
...вариант сделать таблицу значений с месяцами и соединение к ней.. считаю правильным
|
|||
2
ДенисЧ
30.07.21
✎
10:34
|
Создать таблицу месяцев, к ней слева подсоединить таблицу документов
|
|||
3
Smallrat
30.07.21
✎
10:38
|
Можно легко сделать запросом к регламентированному производственному календарю, если он ведется.
|
|||
4
Said_We
30.07.21
✎
10:40
|
(3) Обычный порождающий запрос и не надо завязываться на данные в каком-то регистре.
|
|||
5
Бишбармак
30.07.21
✎
10:41
|
Туплю... закрывайте тему.
|
|||
6
Бишбармак
30.07.21
✎
10:49
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | КОЛИЧЕСТВО(РАЗЛИЧНЫЕ КорректировкаРеализации.Ссылка) КАК Количество, | НАЧАЛОПЕРИОДА(КорректировкаРеализации.Дата, МЕСЯЦ) КАК МесяцДоков |ИЗ | Документ.КорректировкаРеализации КАК КорректировкаРеализации |ГДЕ | КорректировкаРеализации.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания | |СГРУППИРОВАТЬ ПО | НАЧАЛОПЕРИОДА(КорректировкаРеализации.Дата, МЕСЯЦ) | |УПОРЯДОЧИТЬ ПО | МесяцДоков |ИТОГИ | СУММА(Количество) |ПО | МесяцДоков ПЕРИОДАМИ(МЕСЯЦ, &ДатаНачала, &ДатаОкончания)"; Запрос.УстановитьПараметр("ДатаНачала", Отчет.ДатаНачала); Запрос.УстановитьПараметр("ДатаОкончания", Отчет.ДатаОкончания); РезультатЗапроса = Запрос.Выполнить(); ВыборкаМесяцДоков = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"МесяцДоков","Все"); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |