Добрый день. Есть простой отчет на СКД. Он выводит данные по месяцам, в которых есть ресурс. А как можно сделать чтобы он выводил в отчет весь указанный период, независимо, есть там ресурс или нет. Скрины, как есть и как нужно прилагаю. Подскажите куда рыть?
---
в группировке период выбрать тип дополнения. в начальной дате периоде и конечной дате нажать крестик и выбрать поле компоновки данных и нужный параметр, чтобы дополнялись периоды из параметров
---
вот
---
Через выражение представления для поля "Период". Там можно попробовать и как ты делал и Формат там тоже работает.
ЗЫ. Хотя ж наверное можно и прямо через оформление поля "Период" в описании полей в твоем случае (настройку формата). Через выражение представления я делал, когда нужно менять представление в зависимости от настроек отчета.
---
Нужно простой запрос из простого СКД добить всеми месяцами.
---
в группировке период выбрать тип дополнения. в начальной дате периоде и конечной дате нажать крестик и выбрать поле компоновки данных и нужный параметр, чтобы дополнялись периоды из параметров
---
Не совсем понял. Это где?
---
вот
---
Спасибо, получилось, только теперь такой момент, месяца выходят в формате 01.01.18, а как это сделать Январь 2018? Ну или просто январь.
---
Через выражение представления для поля "Период". Там можно попробовать и как ты делал и Формат там тоже работает.
ЗЫ. Хотя ж наверное можно и прямо через оформление поля "Период" в описании полей в твоем случае (настройку формата). Через выражение представления я делал, когда нужно менять представление в зависимости от настроек отчета.
---
Нет тут типа дополнения
---
Внимательней. Дополнение поля Период.
---
Спасибо. Получилось.
"Боже, как много я не знаю!!!"
---
такую картину сейчас увидел, такое группировать в самом запросе нужно, как я понимаю
---
Если используется виртуальная таблица регистра накопления, то там уже есть подходящие группировки.
Если нет - то да, сам в запросе или вычисляемым полем СКД. Можно самому сделать поле "ПериодМесяц", в котором приводить "Период" к началу месяца и по нему потом группировать.
---
Если кто то столкнется с подобной задаче, то вот как сгруппировать в запросе:

```1c
    ВЫБРАТЬ
    ВЫБОР
    КОГДА Док.Период <> НАЧАЛОПЕРИОДА(Док.Период, МЕСЯЦ)
    ТОГДА НАЧАЛОПЕРИОДА(Док.Период, МЕСЯЦ)
    ИНАЧЕ Док.Период
    КОНЕЦ КАК Период,
    Док.ВидОбслуживания,
    Док.КоличествоОсмотров КАК КоличествоОсмотров,
    уДок.ОбъектОПО
    ИЗ
    РегистрСведений.НормыОПО КАК НормыОПО
    ГДЕ
    НормыОПО.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И НормыОПО.ВидОбслуживания.Владелец = НормыОПО.ОбъектОПО
```
---
Не думаю, что проверка периода дает какую-то оптимизацию. Скорее наоборот. И уж точно ухудшает читабельность. Разве не лучше:

```1c
    ВЫБРАТЬ
    НАЧАЛОПЕРИОДА(Док.Период, МЕСЯЦ) КАК ПериодМесяц,
    Док.Период,
    Док.ВидОбслуживания,
    Док.КоличествоОсмотров КАК КоличествоОсмотров,
    уДок.ОбъектОПО
    ИЗ
    РегистрСведений.НормыОПО КАК НормыОПО
    ГДЕ
    НормыОПО.Регистратор.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
    И НормыОПО.ВидОбслуживания.Владелец = НормыОПО.ОбъектОПО
```

(14) Ему для СКД. Он там уже делает тоже самое, только параметрическими настройками.
---
Лучшее решение, на мой взгляд, использовать конструкцию с параметром "ПЕРИОДАМИ" вроде такой:

 |ИТОГИ
 | СУММА(Прибыль),
 | СУММА(СуммаОплаты),
 | СУММА(СуммаПродажи),
 | МАКСИМУМ(ЗаказПокупателя)
 |ПО
 | Дата ПЕРИОДАМИ(МЕСЯЦ, &ДатаНач, &ДатаКон)";