Структура отчета для примера: Направление деятельности ---> Месяц ---> Год
Ресурс - Сумма продаж.
Делаем период отчета за 2 года или за 3 и все замечательно показывает сравнение месяц к месяцу между годами. Но, хотелось бы накопительную сумму сравнивать. Т.е. за март сумму январь+февраль+март по каждому году и т.д.
ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодМесяц", ,"Предыдущая", "Текущая") работает если без сравнения по годам, просто за год по месяцам. А так он суммирует данные за по месяцу за все года.
Не хотелось бы делать объединение запросов отдельно по каждому периоду, т.к. теряется универсальность.
Может найдется у кого стоящая идея.
Ресурс - Сумма продаж.
Делаем период отчета за 2 года или за 3 и все замечательно показывает сравнение месяц к месяцу между годами. Но, хотелось бы накопительную сумму сравнивать. Т.е. за март сумму январь+февраль+март по каждому году и т.д.
ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодМесяц", ,"Предыдущая", "Текущая") работает если без сравнения по годам, просто за год по месяцам. А так он суммирует данные за по месяцу за все года.
Не хотелось бы делать объединение запросов отдельно по каждому периоду, т.к. теряется универсальность.
Может найдется у кого стоящая идея.
По теме из базы знаний
Найденные решения
(11) Ты наверное не понял какая структура отчета и что должно считаться - отчет нужен для анализа данных год к году помесячно. Естественно 15 23 и 10 находятся в на разных значениях группировки в этом и смысл.
В общем помучался и победил в итоге - собрал все таки выражение на СКД для накопительной суммы по-месяцам и годам.
1. В структуре надо делать не двух уровневую группировку по месяц - год. А одна группировка по двум полям месяц и год. Тогда в функции ВычислитьВыражение("Сумма(Факт)", "Период год", , "Первая", Текущая), мы будем пробегать по всем месяцам и годам, т.к. они находятся на одном уровне группировки.
На скрине видно все.
2. В выражении для ресурса накопительной суммы, в зависмости от текущего года, суммируем данные только из столбцов по этому году, для такого условия использовал как точку отсчета параметр НачалоПериода, и сделал чтобы можно было сравнивать данные за максимум 3 года, хотя можно заложить хоть 10. Выражение на скрине выложил, может кому пригодиться.
В итоге без потери гибкости СКД для пользователя получилось решить задачу, без всяких подзапросов.
Можем сравнивать по сути произвольное количество периодов, выберем данные за один год получим просто накопительную сумму по месяцам за этот год, выберем больше сможем анализировать данные в сравнении годов по месяцам.
В общем помучался и победил в итоге - собрал все таки выражение на СКД для накопительной суммы по-месяцам и годам.
1. В структуре надо делать не двух уровневую группировку по месяц - год. А одна группировка по двум полям месяц и год. Тогда в функции ВычислитьВыражение("Сумма(Факт)", "Период год", , "Первая", Текущая), мы будем пробегать по всем месяцам и годам, т.к. они находятся на одном уровне группировки.
На скрине видно все.
2. В выражении для ресурса накопительной суммы, в зависмости от текущего года, суммируем данные только из столбцов по этому году, для такого условия использовал как точку отсчета параметр НачалоПериода, и сделал чтобы можно было сравнивать данные за максимум 3 года, хотя можно заложить хоть 10. Выражение на скрине выложил, может кому пригодиться.
В итоге без потери гибкости СКД для пользователя получилось решить задачу, без всяких подзапросов.
Можем сравнивать по сути произвольное количество периодов, выберем данные за один год получим просто накопительную сумму по месяцам за этот год, выберем больше сможем анализировать данные в сравнении годов по месяцам.
Прикрепленные файлы:

Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Тебе нужен нарастающий Итог в СКД? Если хочешь разбивку по годам, просто выбери соответствующую группировку
ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)
Еще возможно проблема в том, что ты группируешь не по тому полю, проверь в каком поле у тебя какие данные Тебе нужно чтобы были уникальные месяц+ год
ВычислитьВыражение(Выражение, Группировка, ТипРасчета, Начало, Конец, Сортировка, ИерархическаяСортировка, ОбработкаОдинаковыхЗначенийПорядка)
Еще возможно проблема в том, что ты группируешь не по тому полю, проверь в каком поле у тебя какие данные Тебе нужно чтобы были уникальные месяц+ год
Прикрепленные файлы:

(3) С группировкой все правильно, как говорил НаправлениеДеятельности ---> Месяц --->Год
Причем месяц - это дата, первое число месяца 1-го года, т.е. она одна и таже, что например для 2025 года, что для 2024. Например для марта это будет дата 01.03.0001, это и позволяет группировать данные по месяцу в разрезе годов.
Пример, имеем след. суммы год к году по месяцам:
| Направление1 |
| Jan(01.01.0001) | Feb(01.02.0001) | Mar(01.03.0001) |
| 2024 | 2025 | 2024 | 2025 | 2024 | 2025 |
| 10 | 15 | 25 | 23 | 40 | 10 |
А нужно получить накопительные суммы год к году по месяцам:
| 10 | 15 | 35 | 38 | 75 | 48 |
Если делать ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодМесяц", ,"Предыдущая", "Текущая")
то получим:
| 25 | 25 | 73 | 73 | 123 | 123 |
Если делать ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодГод", ,"Предыдущая", "Текущая")
то получим:
| 10 | 25 | 50 | 73 | 113 | 123 |
Причем месяц - это дата, первое число месяца 1-го года, т.е. она одна и таже, что например для 2025 года, что для 2024. Например для марта это будет дата 01.03.0001, это и позволяет группировать данные по месяцу в разрезе годов.
Пример, имеем след. суммы год к году по месяцам:
| Направление1 |
| Jan(01.01.0001) | Feb(01.02.0001) | Mar(01.03.0001) |
| 2024 | 2025 | 2024 | 2025 | 2024 | 2025 |
| 10 | 15 | 25 | 23 | 40 | 10 |
А нужно получить накопительные суммы год к году по месяцам:
| 10 | 15 | 35 | 38 | 75 | 48 |
Если делать ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодМесяц", ,"Предыдущая", "Текущая")
то получим:
| 25 | 25 | 73 | 73 | 123 | 123 |
Если делать ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодГод", ,"Предыдущая", "Текущая")
то получим:
| 10 | 25 | 50 | 73 | 113 | 123 |
(5) Да оно и сейчас все нормально суммы раскладывает по месяцам-годам. Проблемы нет сделать поле ПериодМесяцГод, но это не решит проблему получить НАКОПИТЕЛЬНУЮ сумму в разрезе двух группировок, а не одной, как это делает функция ВычислитьВыражение.
Как ты предлагаешь это тоже самое, как и сейчас на последнем уровне группировки будут идти значения:
01.01.2024 (10) -- 01.01.2025 (15) -- 01.02.2024(25) -- 01.02.2025(23) -- 01.03.2024(40) -- 01.03.2025(10)
И ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодМесяцГод", ,"Предыдущая", "Текущая")
для марта 2024 года посчитает = 10+15+25+23+40 = 113, а надо 10+25+40 = 75
для марта 2025 года = 10+15+25+23+40+10 = 123, а надо 15+23+10 = 48
Как ты предлагаешь это тоже самое, как и сейчас на последнем уровне группировки будут идти значения:
01.01.2024 (10) -- 01.01.2025 (15) -- 01.02.2024(25) -- 01.02.2025(23) -- 01.03.2024(40) -- 01.03.2025(10)
И ВычислитьВыражение("Сумма(СуммаПродаж)", "ПериодМесяцГод", ,"Предыдущая", "Текущая")
для марта 2024 года посчитает = 10+15+25+23+40 = 113, а надо 10+25+40 = 75
для марта 2025 года = 10+15+25+23+40+10 = 123, а надо 15+23+10 = 48
(6) Честно не понимаю что ты хочешь, если у тебя будет группировка по годам
то соответсвенно поле будет обнулятся в начале каждого года
Если по месяцам и годам то в каждом месяце
Если по кварталам, то соответственно по кварталам. Если ты хочешь выбирать какая периодичность будет у твоего сумирующегося поля, то нужно создать в запросе 1 поле которое будет выставлять нужную периодичность по указанному в передаваемом параметре
то соответсвенно поле будет обнулятся в начале каждого года
Если по месяцам и годам то в каждом месяце
Если по кварталам, то соответственно по кварталам. Если ты хочешь выбирать какая периодичность будет у твоего сумирующегося поля, то нужно создать в запросе 1 поле которое будет выставлять нужную периодичность по указанному в передаваемом параметре
Прикрепленные файлы:

(11) Ты наверное не понял какая структура отчета и что должно считаться - отчет нужен для анализа данных год к году помесячно. Естественно 15 23 и 10 находятся в на разных значениях группировки в этом и смысл.
В общем помучался и победил в итоге - собрал все таки выражение на СКД для накопительной суммы по-месяцам и годам.
1. В структуре надо делать не двух уровневую группировку по месяц - год. А одна группировка по двум полям месяц и год. Тогда в функции ВычислитьВыражение("Сумма(Факт)", "Период год", , "Первая", Текущая), мы будем пробегать по всем месяцам и годам, т.к. они находятся на одном уровне группировки.
На скрине видно все.
2. В выражении для ресурса накопительной суммы, в зависмости от текущего года, суммируем данные только из столбцов по этому году, для такого условия использовал как точку отсчета параметр НачалоПериода, и сделал чтобы можно было сравнивать данные за максимум 3 года, хотя можно заложить хоть 10. Выражение на скрине выложил, может кому пригодиться.
В итоге без потери гибкости СКД для пользователя получилось решить задачу, без всяких подзапросов.
Можем сравнивать по сути произвольное количество периодов, выберем данные за один год получим просто накопительную сумму по месяцам за этот год, выберем больше сможем анализировать данные в сравнении годов по месяцам.
В общем помучался и победил в итоге - собрал все таки выражение на СКД для накопительной суммы по-месяцам и годам.
1. В структуре надо делать не двух уровневую группировку по месяц - год. А одна группировка по двум полям месяц и год. Тогда в функции ВычислитьВыражение("Сумма(Факт)", "Период год", , "Первая", Текущая), мы будем пробегать по всем месяцам и годам, т.к. они находятся на одном уровне группировки.
На скрине видно все.
2. В выражении для ресурса накопительной суммы, в зависмости от текущего года, суммируем данные только из столбцов по этому году, для такого условия использовал как точку отсчета параметр НачалоПериода, и сделал чтобы можно было сравнивать данные за максимум 3 года, хотя можно заложить хоть 10. Выражение на скрине выложил, может кому пригодиться.
В итоге без потери гибкости СКД для пользователя получилось решить задачу, без всяких подзапросов.
Можем сравнивать по сути произвольное количество периодов, выберем данные за один год получим просто накопительную сумму по месяцам за этот год, выберем больше сможем анализировать данные в сравнении годов по месяцам.
Прикрепленные файлы:

(12) Возможно я плохо объясняюсь, но ты смог понять, поздравляю!
P.S Год к году или помесячно как твой отчет будет группировать информация настраивается в структуре отчета, а на входе в эту структуру твой отчет имеет лишь таблицу с полями которые имеют входные данные. И вот когда ты добавляешь в нее вычисляемое поле, ты по сути добавляешь в эту таблицу еще одну колонку, ячейки которой будут заполняться по нужному тебе алгоритму. И естественно группировка происходит по одинаковым полям, поэтому чтобы у тебя был накопительный реквизит по определенным строкам твоей таблицы, тебе нужно соответствующее поле которое будет одинаково только у этих строк.
P.S Год к году или помесячно как твой отчет будет группировать информация настраивается в структуре отчета, а на входе в эту структуру твой отчет имеет лишь таблицу с полями которые имеют входные данные. И вот когда ты добавляешь в нее вычисляемое поле, ты по сути добавляешь в эту таблицу еще одну колонку, ячейки которой будут заполняться по нужному тебе алгоритму. И естественно группировка происходит по одинаковым полям, поэтому чтобы у тебя был накопительный реквизит по определенным строкам твоей таблицы, тебе нужно соответствующее поле которое будет одинаково только у этих строк.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот