Как превратить линейно-периодический отчёт в многолинейно-периодический (в платформах 8.х)
Навеяно http://infostart.ru/public/90001/ — решение на основе пользовательских полей в СКД
- Описание
- Подробнее
Описание
Исходные данные: к примеру, у нас есть отчёт по продажам на основе некоего оборотного регистра, написанный на СКД и имеющий возможность разворота по датам продажи.
Что нужно: вывести те же показатели, но в диаграмме по двум аналогичным периодам сразу (например, за год с развёрткой по месяцам).
Чем решаем: пользовательскими полями, без изменения отчёта в конфигураторе.
Разберём, что, собственно, минимально нужно для построения такого отчёта.
- ОДИН ресурсный показатель (сумма продаж)
- ДВА измерения (год и месяц) — остальные, считаем, и так есть (контрагент, например).
Делаем пользовательские поля (выражения):
- Поле «Сумма» — самое сложное: пишем в выражении детальных записей «ВЫБОР КОГДА Год([Дата продажи]=2010(тут подставляете первый нужный год) ТОГДА [Сумма продажи] КОГДА (то же самое для каждого нужного года) ИНАЧЕ 0 КОНЕЦ». В выражении итоговых — Сумма(выражение детальных). Учитывайте, что в некоторых версиях 8.1 множественные «Выбор Когда Тогда Когда Тогда» могут не работать (зафиксированы такие случаи) и придётся писать вложенные «Выбор Когда Тогда Иначе Конец». это и есть ваше поле, по которому нужно отслеживать изменение 🙂
- Поле «Год» — НачалоПериода([Дата продажи],»Год») (и сразу в условном оформлении указываем его формат) (или сразу Год([Дата продажи]) — кому как нравится).
- Поле «Месяц» — Формат([Дата продажи],»ДЛФ=’MM. MMMM'») — так удобнее всего отображается.
Теперь осталось только вывести диаграмму: точки — месяц, серии — год, показатель — сумма, тип диаграммы, например, с накоплением.
Аналогично можно рассмотреть любой период.
Приложение к статье — файл сохранённой настройки для Универсального отчёта в ЗУП 2.5 8.2 (отчёт по регистру взаиморасчётов с сотрудниками организаций).
UPD 1: Для конструкции «ВЫБОР КОГДА ТОГДА» можно применить в данном случае сокращённый вариант записи:
Выбор Год([Дата продажи])
Когда 2007
Тогда [Сумма продажи]
Когда 2008
Тогда [Сумма продажи]
Когда 2009
Тогда [Сумма продажи]
Когда 2010
Тогда [Сумма продажи]
Когда 2011
Тогда [Сумма продажи]
Иначе 0
Конец
Мои благодарности ildarovich за эту информацию.
UPD 2: тем более спасибо artbear, который заставил меня наконец-то отключиться от вообще вычисления суммы продаж таким извратом 🙂 заело с какого-то старого отчёта. Отдельное вычисление суммы не нужно вообще, можно сразу брать нужное поле. Зато мы теперь знаем про UPD 1!

