При работе с отчетами в 1С:Предприятии часто возникает необходимость преобразовать исходные данные, представленные в виде плоской таблицы, в более наглядную кросс-таблицу, где некоторые значения строк переносятся в заголовки колонок. Кроме того, после такого преобразования может потребоваться дополнительная настройка внешнего вида отчета, например, удаление определенных строк из шапки.
В этой статье мы подробно разберем, как с помощью Схемы Компоновки Данных (СКД) решить две основные задачи:
Предположим, у нас есть набор данных, который выглядит следующим образом:
Дата_________|__Тип___|_Количество_|
01.01.20_____|_Тип1___|_____10_____|
01.01.20_____|_Тип2___|_____15_____|
01.01.20_____|_Тип3___|_____20_____|
01.02.20_____|_Тип1___|_____25_____|
01.02.20_____|_Тип2___|_____30_____|
01.02.20_____|_Тип3___|_____35_____|
Наша цель — превратить его в кросс-таблицу:
Дата_________|_Тип1_|_Тип2_|_Тип3_|
01.01.20_____|__10__|__15__|__20__|
01.02.20_____|__25__|__30__|__35__|
Для достижения этого результата в СКД мы выполним несколько шагов:
Шаг 1: Определяем ресурс в СКД
Поле Количество в нашем случае является измеряемой величиной, которую мы хотим агрегировать и отображать в ячейках кросс-таблицы. Чтобы СКД правильно обрабатывала такие поля, необходимо определить их как Ресурсы.
Количество.Количество установим агрегатную функцию. В большинстве случаев это будет СУММА(), так как мы хотим суммировать количества для каждого сочетания Даты и Типа.Количество должно быть что-то вроде СУММА(Количество).Шаг 2: Настраиваем группировки отчета
После определения ресурса нам нужно указать СКД, какие поля должны формировать строки отчета, а какие — колонки.
Дата в секцию Строки. Это означает, что каждая уникальная дата будет формировать отдельную строку в нашем отчете.Тип в секцию Колонки. Это заставит СКД создать отдельные колонки для каждого уникального значения Типа (например, Тип1, Тип2, Тип3).Количество. СКД автоматически разместит значения этого ресурса на пересечении строк (Дата) и колонок (Тип).После этих настроек мы получим желаемую кросс-таблицу, где значения Тип станут заголовками колонок, а Количество будет отображаться в соответствующих ячейках. Для детального изучения работы с ресурсами и табличными отчетами пригодится пример создания внешнего табличного отчета в СКД.
После выполнения первого шага мы можем столкнуться с тем, что в шапке отчета над колонками с типами будет отображаться дополнительная строка с названием ресурса, например, "Количество", как показано ниже:
Дата_________|_Тип1_|_Тип2_|_Тип3_|
_____________|____Количество_____|
01.01.20_____|__10__|__15__|__20__|
01.02.20_____|__25__|__30__|__35__|
Чтобы убрать эту строку и получить более компактный вид:
Дата_________|_Тип1_|_Тип2_|_Тип3_|
01.01.20_____|__10__|__15__|__20__|
01.02.20_____|__25__|__30__|__35__|
рассмотрим несколько подходов, начиная с наиболее гибкого и эффективного.
Этот метод предоставляет максимальный контроль над внешним видом заголовков отчета. Мы можем точно определить, какие элементы будут отображаться в шапке группировки и как они будут выглядеть, включая полное удаление нежелательных строк.
Тип, которая формирует колонки.Тип (та, что находится в колонках).Тип1, Тип2, Тип3). Эти ячейки обычно расположены в одной строке. Выделим эту строку или соответствующие ячейки, которые должны содержать заголовки Типов.ШапкаКолонок).Тип.Типов (Тип1, Тип2 и т.д.).Важное замечание: При использовании собственных макетов группировок важно помнить, что они жестко привязаны к определенным элементам отчета. Это может несколько ограничить возможности пользователя по динамическому изменению структуры отчета через настройки, поскольку макеты будут переопределять некоторые стандартные поведения.
Этот подход проще в реализации, но он не всегда позволяет полностью удалить строку; иногда может остаться пустая ячейка или строка.
Количество.Однако, как было сказано, это может привести к тому, что строка или ячейка останется видимой, но пустой, что не всегда эстетично.
Эти настройки могут влиять на отображение заголовков и иногда помогают решить задачу частичного или полного скрытия нежелательных элементов, хотя они не являются прямым инструментом для удаления конкретной строки.
Теоретически, можно попробовать использовать условное оформление для управления видимостью или размером строки заголовка. Например, установить минимальную высоту строки заголовка в 0.
Однако на практике этот метод не всегда дает желаемый результат в СКД: он часто приводит к появлению очень тонкой, но все же существующей строки, а не к полному ее исчезновению. Для полного контроля над макетом лучше использовать метод с собственным макетом группировки.
Таким образом, наиболее полный и гибкий контроль над внешним видом заголовков, включая их полное удаление, предоставляет создание собственного макета группировки. Если же требуется просто убрать текст, и оставшаяся пустая ячейка не является критичной, можно воспользоваться настройкой Автозаголовок.