База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как сгруппировать данные по каждому году в 1С вместо диапазонов дат?
- В этой теме 1 ответ, 2 участника, последнее обновление 10 часов, 26 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
21 мая 2026 в 9:55 #37393
ВЫБРАТЬ
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПереоценкаОСОС.ОсновноеСредство) КАК ОсновноеСредство,
СУММА(ПереоценкаОСОС.ВосстановительнаяСтоимость) КАК ВосстановительнаяСтоимость,
СУММА(ПереоценкаОСОС.СуммаАмортизации) КАК СуммаАмортизации,
МАКСИМУМ(ПереоценкаОСОС.ДатаВвода) КАК ДатаВвода,
ВЫБОР
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата1_1 И &Дата1_2
ТОГДА «2022-2024»
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата2_1 И &Дата2_2
ТОГДА «2019-2021»
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата3_1 И &Дата3_2
ТОГДА «2014-2018»
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата4_1 И &Дата4_2
ТОГДА «2004-2013»
КОГДА ПереоценкаОСОС.ДатаВвода <= &ДатаМин
ТОГДА «До 2004»
КОНЕЦ КАК Поле1
ИЗ
Документ.ПереоценкаОС.ОС КАК ПереоценкаОСОС
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПереоценкаОС КАК ПереоценкаОС
ПО ПереоценкаОСОС.Ссылка = ПереоценкаОС.Ссылка
ГДЕ
ПереоценкаОС.Ссылка = &СсылкаСГРУППИРОВАТЬ ПО
ВЫБОР
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата1_1 И &Дата1_2
ТОГДА «2022-2024»
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата2_1 И &Дата2_2
ТОГДА «2019-2021»
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата3_1 И &Дата3_2
ТОГДА «2014-2018»
КОГДА ПереоценкаОСОС.ДатаВвода МЕЖДУ &Дата4_1 И &Дата4_2
ТОГДА «2004-2013»
КОГДА ПереоценкаОСОС.ДатаВвода <= &ДатаМин
ТОГДА «До 2004»
КОНЕЦ
Как сделать за каждый год -
21 мая 2026 в 9:55 #37394
Чтобы сделать группировку и вывод данных по каждому году отдельно, а не по диапазонам, нужно заменить условие ВЫБОР на выделение года из даты и группировать именно по году.
В 1С для получения года из даты используется функция ГОД().
Пример исправленного запроса:
|ВЫБРАТЬ
| КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ПереоценкаОСОС.ОсновноеСредство) КАК ОсновноеСредство,
| СУММА(ПереоценкаОСОС.ВосстановительнаяСтоимость) КАК ВосстановительнаяСтоимость,
| СУММА(ПереоценкаОСОС.СуммаАмортизации) КАК СуммаАмортизации,
| МАКСИМУМ(ПереоценкаОСОС.ДатаВвода) КАК ДатаВвода,
| ГОД(ПереоценкаОСОС.ДатаВвода) КАК Год
|ИЗ
| Документ.ПереоценкаОС.ОС КАК ПереоценкаОСОС
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПереоценкаОС КАК ПереоценкаОС
| ПО ПереоценкаОСОС.Ссылка = ПереоценкаОС.Ссылка
|ГДЕ
| ПереоценкаОС.Ссылка = &Ссылка
|СГРУППИРОВАТЬ ПО
| ГОД(ПереоценкаОСОС.ДатаВвода)
|УПОРЯДОЧИТЬ ПО
| ГОД(ПереоценкаОСОС.ДатаВвода)—
Если нужно, чтобы в выборке был именно текстовый год, можно сделать так:
|ВЫБРАТЬ
| …,
| ФОРМАТ(ГОД(ПереоценкаОСОС.ДатаВвода), «ЧГ») КАК ГодТекст
|…—
Таким образом, вы получите данные по каждому году отдельно, без объединения в диапазоны.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.