Здравствуйте! Нужна очень нужна помощь. Я делаю отчет на СКД. Мне необходимо видеть отчет в виде показанный на рисунке. Вроде все сделано, вот только в одном проблема. Необходимо там где месяца, чтобы попадали данные по отгрузкам, следующим образом: Отчет формируется на определенную дату, т.е. колонки должны заполняться в соответствии с месяцем,когда была отгрузка, если ПРИМЕР!!!! Сегодня у нас ФЕВРАЛЬ 2016 г, таким образом колонка “январь”“ заполниться данными за январь 2016 года, тоже самое с февралем. Остальные!!!!!т.к. у нас пока нету данных за март 2016,апрель 2016, май 2016, июнь 2016, июль 2016, август 2016, сентябрь 2016, октябрь 2016, ноябрь 2016, декабрь 2016 этого года, то эти колонки должны заполняться данными 2015 г. Вот как выглядит Мой второй набор данных. Пожалуйста помогите!!!!!! Очень нужно, может, что с параметрами нужно сделать….

```1c
    ВЫБРАТЬ
    ОтгрузкаТМЦ.ТМЦ,
    СУММА(ОтгрузкаТМЦ.Количество) КАК Количество,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 1
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Январь,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 2
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Февраль,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 3
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Март,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 4
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Апрель,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 5
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Май,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 6
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Июнь,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 7
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Июль,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 8
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Август,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 9
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Сентябрь,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 10
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Октябрь,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 11
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Ноябрь,
    СУММА(ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) = 12
    ТОГДА ОтгрузкаТМЦ.Количество
    КОНЕЦ) КАК Декабрь
    ПОМЕСТИТЬ ВТ_Месяц
    ИЗ
    РегистрНакопления.ОтгрузкаТМЦ КАК ОтгрузкаТМЦ
    ГДЕ
    ОтгрузкаТМЦ.Период МЕЖДУ &НачалоПериода И &КонецПериода

    СГРУППИРОВАТЬ ПО
    ОтгрузкаТМЦ.ТМЦ
    ;

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    ВТ_Месяц.ТМЦ,
    ВТ_Месяц.Количество,
    ВТ_Месяц.Январь,
    ВТ_Месяц.Февраль,
    ВТ_Месяц.Март,
    ВТ_Месяц.Апрель,
    ВТ_Месяц.Май,
    ВТ_Месяц.Июнь,
    ВТ_Месяц.Июль,
    ВТ_Месяц.Август,
    ВТ_Месяц.Сентябрь,
    ВТ_Месяц.Октябрь,
    ВТ_Месяц.Ноябрь,
    ВТ_Месяц.Декабрь
    ИЗ
    ВТ_Месяц КАК ВТ_Месяц
```
---
Спасибо большое тема закрыта
---
Нужно делать выборку, ВТ, за месяцы текущий год и предыдущий. Если результат за месяц текущего года пустой, пользоваться результатом предыдущего года.
Но я бы добавил некую метку результаты за какой год выводятся.
Хотя возможно ограничиться выводом заголовка в котором указана дата формирования, а там уже читающий отчет пусть включает соображалку: что из результатов этого года, а что из прошлого.
И еще, в таком виде есть проблема текущего месяца.
Поясняю. Сегодня 5 февраля мы отработали только четыре дня из полного месяца. Данные занижены - надо с этим что то делать, или считать по среднему за день и умножать на количество дней в месяце, или остаток месяца считать по прошлому году и совмещать эти данные. Тут решение заказчика.
---
vkozak, Я и пытаюсь сделать "Нужно делать выборку, ВТ, за месяцы текущий год и предыдущий. Если результат за месяц текущего года пустой, пользоваться результатом предыдущего года." но не выходит.. отчет формируется долго... А потом и вовсе пишет "недостаточно памяти"....И как найти верный выход пока не единой мысли....
---
```1c
    ВЫБРАТЬ
    ОтгрузкаТМЦ.ТМЦ,
    МЕСЯЦ(ОтгрузкаТМЦ.Период) КАК Месяц
    Выбор Когда МЕСЯЦ(ОтгрузкаТМЦ.Период)>=5 И МЕСЯЦ(ОтгрузкаТМЦ.Период)<=10 Тогда "Продажи05-10" Иначе "Продажи11-04" КОНЕЦ КАК ЧастьГода,
    ...
    ИЗ
    РегистрНакопления.ОтгрузкаТМЦ КАК ОтгрузкаТМЦ
    ГДЕ
    ОтгрузкаТМЦ.Период МЕЖДУ &НачалоПериода И &КонецПериода

    СГРУППИРОВАТЬ ПО
```

В настройках Выводить в Таблицу, для левой части картинки добавить отдельно группировки колонок - ЧастьГода,Месяц
---
А преобразовывать номер месяца в название условным оформлением
---
За это спасибо, на много проще чем было сделано первоначально у меня.... Вот только проблема с данными так и осталась... Если я правильно понимаю, то необходимо в мои параметры НачалоПериода и КонецПериода, как-то прописать, чтобы данные в соответствии, как " Сегодня у нас ФЕВРАЛЬ 2016 г, таким образом колонка “январь”“ заполниться данными за январь 2016 года, тоже самое с февралем. Остальные!!!!!т.к. у нас пока нету данных за март 2016,апрель 2016, май 2016, июнь 2016, июль 2016, август 2016, сентябрь 2016, октябрь 2016, ноябрь 2016, декабрь 2016 этого года, то эти колонки должны заполняться данными 2015 г." .......
---
если вы в запросе выбираете данные ровно за год - то проблем нет - все упадет куда нужно, главное период в запросе правильный выбрать. Т.е ДатаНачала = ДатаОкончания минус год.
---
32ops, ну вот....смотрите или я не правильно понимаю....

```1c
    ВЫБРАТЬ
    ОтгрузкаТМЦ.ТМЦ,
    СУММА(ОтгрузкаТМЦ.Количество) КАК Количество,
    ВЫБОР
    КОГДА МЕСЯЦ(ОтгрузкаТМЦ.Период) >= 5
    И МЕСЯЦ(ОтгрузкаТМЦ.Период) <= 10
    ТОГДА "Продажи05-10"
    ИНАЧЕ "Продажи11-04"
    КОНЕЦ КАК ЧастьМесяца,
    МЕСЯЦ(ОтгрузкаТМЦ.Период) КАК Месяц
    ИЗ
    РегистрНакопления.ОтгрузкаТМЦ КАК ОтгрузкаТМЦ
    ГДЕ
    ОтгрузкаТМЦ.Период МЕЖДУ &НачалоПериода И &КонецПериода

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

 Параметры = КомпоновщикНастроек.Настройки.ПараметрыДанных;
 Параметры.УстановитьЗначениеПараметра("НачалоПериода",ДобавитьГод(Параметры.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаОтчета ")).Значение ,-1));
А если как у вас - период год должен быть, т.е. произвольный период и год ручками выбирать
---
Внесу ещё конкретики, чтобы было ещё более понятно

Допустим я формирую отчет на 05.02.2016 г. и у нас получиться следующее:

янв 2015 - 101
фев 2015 - 202
март 2015 - 303
апр 2015 - 404
май 2015 - 505
июн 2015 - 606
июл 2015 - 707
авг 2015 - 808
сент 2015 - 909
окт 2015 - 1010
ноя 2015 - 1111
дек 2015 - 1212
янв 2016 - 911
фев 2016 - 119
март 2016 - 303 - потому, как сейчас НЕ март
апр 2016 - 404 - то же самое (см. выше)
май 2016 - 505 - то же самое (см. выше)
июн 2016 - 606 - то же самое (см. выше)

т.е когда у нас будет например апрель, то у нас до апреля(включительно) будут данные за 2016 год, а остальные за 2015 год. и так далее....
---
Гость, На сколько я понял, данные тебе нужны за год. Тогда

```1c
    &Период = 05.02.2016
    &НачалоПериода = НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(&Период, -11, "Месяц"), "Месяц")
    &КонецПериода = КонецПерида(&Период, "ДЕНЬ")
```

Таким образом у тебя получится период с 01.03.15 по 05.02.16. В итоге январь-февраль у тебя за 2016 год, а март-декабрь за 2015.
---
март 2016 - 303 - потому, как сейчас НЕ март Не понял ничего.
Я думал так:
Есть какая-то дата, например 05.02.
В март попадают обороты 01.02.16-05.02.16 и 06.02.15-31.02.15
Так или нет?
---
Спасибо большое тема закрыта