Группировка измерений в заголовках СКД

07.11.18

Разработка - СКД

Методика создания общей шапки над измерениями в таблице созданной при помощи СКД. Без всякого кода. Только штатными средствами.

Скачать файлы

Наименование Файл Версия Размер
ДемоОтчетГруппировкаКолонок
.erf 7,25Kb
136
.erf 7,25Kb 136 Скачать

Для начала я хотел бы пояснить, что в СКД штатными методами задать общий заголовок для группы измерений нельзя. Для группы ресурсов - без проблем. Для группы измерений - нельзя. Так что все, что будет написано ниже - это повесть про костыли и грабли. Местами печальная, местами веселая, но уж такая какая получилась. Предупреждаю сразу, потому, что многие не любят такого чтива, а потом упрекают автора, в собственном потерянном времени и прикапываются к тому, что решение далеко от идеала.

Ну а с теми кто остался, мы сейчас попытаемся надеть "шапочку" на измерения в колонках таблицы СКД.

Давайте обратимся к практической задаче. У нас есть таблица с двумя числовыми показателями, которые заполнены по периодам в разрезе 2-х измерений: Вкус и Цвет.

Вот примерно так она выглядит:

Задача стоит тоже не сложная: оставить измерение "Вкус" в строках, а данные показателей по измерению "Цвет" вывести в столбцы, сгруппировав предварительно по месяцам.

Итак мы создаем отчет на СКД с указанными данными и выводим его в виде таблицы с двухуровневой группировкой по колонкам (период по месяцам и цвета внутри каждого месяца)

И здесь нас ждет первое разочарование. Если выводить так, как мы привыкли по строкам, значение периода в группировке верхнего уровня будет упорно предшествовать группировке по цветам, но никак не поднимется наверх. Поэтому мы уберем вывод значений периода из старшей группировки и дополнительно на вкладке "Другие настройки" для этой группировки установим настройку "Расположение группировок" на "Нет". А в поля группировки "Цвет" добавим для вывода интересующий нас период.

Вот примерно что из это выйдет:

Как видим, почти получилось, но вот определитель периода теперь повторяется в каждом столбце, а не объединяется как шапка группировки цветов.

И вот с этого момента коллеги обычно используют танцы с бубном в виде программного объединения ячеек шапки в уже созданном табличном документе. Как например здесь. Ничего не имею принципиально против, но мы, как говорил В.И. Ленин, пойдем другим путем.

Суть альтернативного подхода состоит в использовании возможностей СКД создавать вычисляемые поля и условно форматировать данные. У нас есть возможность с помощью условного форматирования настроить вид ячеек в табличном документе как угодно, а для условий, по которым мы должны применять форматирование, нужно получить несколько показателей в виде вычисляемых полей. К таким показателям относятся:

1. Порядковый номер текущего значения измерения в группировке.

2. Количество значений измерений в текущей группировке.

Таким образом, мы сможем узнать в каких полях начинается и заканчивается группировка по старшему измерению и можем настроить вывод значения старшего измерения только в первой ячейке, параллельно убрав разделительные линии из ячеек внутри группировки. А заодно (чтобы два раза не вставать) отформатируем первый день месяца в ММММ ГГГГ.

Получим в итоге то, что в нашей главной превьюшке (и демо отчете) называется "Пример 1"

Как видим получилось не сильно красиво, но по крайней мере видно как называется, где начинается и где заканчивается группировка по месяцам. Но обычно хочется, чтобы общее название было в центре. Для такого фокуса нам потребуется еще одно вычисляемое поле:

3. Номер колонки для заголовка. Для нечетного количества элементов в подчиненной группировке, это будет центральная ячейка, а для четного (тут уж извините) ближайшая к середине интервала слева.

Если теперь мы настроим условное форматирование так, чтобы выводился текст не в первой для группировки ячейки, а именно в колонке с нужным номером, то получим, то что на превьюшке я назвал "Пример 2"

Уже лучше, но все равно кривовато. Однако, наши возможности улучшить вид решения еще не исчерпаны. Давайте центровать заголовки периодов в ячейке вывода, если она действительно центральная (нечетное количество колонок в группировке) или выравнивать по правому краю, если колонка заголовка ближайшая к центру слева. Для такого фокуса нужно еще одно вычисляемое поле:

4. Необходимость центрировать текст в ячейке с заголовком.

После того, как мы установили общий формат текста для периода по правому краю и добавили условное форматирование для центрирования по необходимости мы получили отчет вида "Пример 3". Не идеально, но в общем-то лучшее, что можно сделать без кодирования в отчете.

Как рассчитать нужные поля, надеюсь понятно из рисунка:

С настройками условного форматирования, надеюсь справитесь. Ну а кто не справится - качаем демку, не стесняемся:)

Демо отчет тестировался и работает на платформе 8.3.9.2309

СКД Схема компоновки данных группировка колонок общий заголовок сгруппировать колонки заголовок колонки

См. также

SALE! %

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 10000 руб.

02.09.2020    93518    477    380    

531

Разрыв страницы в СКД. Легко!

СКД Платформа 1С v8.3 Система компоновки данных Бесплатно (free)

Когда отчет надо разделить по страницам, это всегда проблема для разработчика. Поскольку в СКД нет стандартных вариантов, как это сделать. Нашел (на свой взгляд) самое простое и оптимальное решение.

01.09.2023    2581    KVIKS    14    

76

Гибкие отборы через СКД на управляемых формах. Демо-обработка

СКД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

В данной публикации предлагаю вам рабочий пример использования системы компоновки данных для отборов на управляемых формах.

2 стартмани

07.06.2023    4208    24    quazare    7    

45

Вывод элементов иерархии верхнего уровня на СКД

СКД Платформа 1С v8.3 Абонемент ($m)

Как получить родителя первого уровня иерархического справочника с помощью СКД.

1 стартмани

06.06.2023    3357    echo77    6    

71

Обработка результатов запроса произвольными вычисляемыми полями. Обзор некоторых новых функций СКД

Запросы СКД Платформа 1С v8.3 Запросы Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

В данной статье вспомним, как обрабатывать результаты запроса в вычисляемых полях СКД, а также сделаем небольшой обзор на новые функции СКД платформы 8.3.20.

07.02.2023    4765    quazare    7    

38

Выборочная свертка группировок для СКД

СКД Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Россия Абонемент ($m)

Методика разработки отчета на СКД с возможностью свёртки части группировок по заданному программно условию. - свертка по значению поля (неотрицательные - сворачиваются); - свертка подчиненных в иерархии с произвольным количеством уровней.

1 стартмани

16.01.2023    2831    schthaxe    3    

30
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. echo77 1830 08.11.18 12:24 Сейчас в теме
Очень интересное решение, хоть и костыль :-)
3. dusha0020 1087 08.11.18 12:56 Сейчас в теме
(1) Спасибо. Но я предупреждал в начале статьи про костыли:) Да и практический смысл этого именно в том, чтобы слепить по быстрому на коленке именно так как они (пользователи) хотят и надеяться, что наконец-то отстанут.
2. kiser 08.11.18 12:51 Сейчас в теме
Сломал себе все глаза, но так и не нашел отличий во 2 и 3 примерах
4. echo77 1830 08.11.18 13:01 Сейчас в теме
(2) Надписи периода выровнены по центру по вертикали и по горизонтали
5. dusha0020 1087 08.11.18 13:06 Сейчас в теме
(2) А так?
Ячейки мелковаты для хорошей иллюстрации, согласен. Но третий пример это именно центрирование и выравнивание по правому краю.
Прикрепленные файлы:
6. kser87 2390 08.11.18 16:10 Сейчас в теме
Макеты чем не угодили?
7. dusha0020 1087 08.11.18 17:52 Сейчас в теме
(6) В принципе ничего не имею против макетов. Кроме того, что не смог их заставить работать как нужно в этом случае.
12. SagittariusA 31.10.22 10:12 Сейчас в теме
(6) как с помощью макета такое сделать?
gerandy; METAL; +2 Ответить
8. ixijixi 1547 09.11.18 10:26 Сейчас в теме
Разработчики платформы могли бы озадачится этим вопросом, в сообществе постоянно всплывает этот момент с настройкой шапки.
Valerianich; JohnyDeath; +2 Ответить
9. smershussr 14.11.18 09:26 Сейчас в теме
Ещё когда с помощью макетов исправляешь только шапку, то потом есть определенные проблемы с обработкой расшифровок на некоторых уровнях группировок отчета в определенных ситуациях, который выводится стандартно. Приходится изворачиваться.
Если не использовать макет для изменения шапки, таких проблем нет.
10. svilsa 11 14.11.18 12:40 Сейчас в теме
Классно! Даже и хорошо, что без макета - можно настройки произвольно менять
11. user916099 13.05.19 16:41 Сейчас в теме
А вот меня интересует вопрос - почему для строк в шапке есть описание (Слово "Вкус" в примерах), а для колонок ("Месяц" и "Цвет" в данном случае) их нет и непонятно как их вывести.
Риник; +1 Ответить
13. gerandy 26.08.23 16:11 Сейчас в теме
Всем привет! Поделитесь, пожалуйста файлом обработки.. нету маней.
Оставьте свое сообщение