Как в 1С СКД перенести строки в колонки и убрать заголовок ресурса 'Количество' из шапки отчета?

Программист 1С v8.3 (Управляемые формы)
← На главную

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

В этой статье мы подробно разберем, как с помощью Схемы Компоновки Данных (СКД) решить две основные задачи:

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

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: Определяем ресурс в СКД

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

  1. Откроем конструктор СКД и перейдем на вкладку Ресурсы.
  2. В списке доступных полей найдем Количество.
  3. Для поля Количество установим агрегатную функцию. В большинстве случаев это будет СУММА(), так как мы хотим суммировать количества для каждого сочетания Даты и Типа.
  4. В итоге, в поле "Выражение" для ресурса Количество должно быть что-то вроде СУММА(Количество).

Шаг 2: Настраиваем группировки отчета

После определения ресурса нам нужно указать СКД, какие поля должны формировать строки отчета, а какие — колонки.

  1. Перейдем на вкладку Настройки в конструкторе СКД.
  2. Нам понадобится создать новую группировку. Выбираем основной вид отчета Таблица, а не Список – это критически важно для кросс-таблицы.
  3. Добавим группировку по полю Дата в секцию Строки. Это означает, что каждая уникальная дата будет формировать отдельную строку в нашем отчете.
  4. Добавим группировку по полю Тип в секцию Колонки. Это заставит СКД создать отдельные колонки для каждого уникального значения Типа (например, Тип1, Тип2, Тип3).
  5. В секцию Выбранные поля добавим наш определенный ресурс Количество. СКД автоматически разместит значения этого ресурса на пересечении строк (Дата) и колонок (Тип).

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

2. Удаление строки "Количество" из шапки отчета

После выполнения первого шага мы можем столкнуться с тем, что в шапке отчета над колонками с типами будет отображаться дополнительная строка с названием ресурса, например, "Количество", как показано ниже:


Дата_________|_Тип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: Использование собственного макета группировки (наиболее гибкий)

Этот метод предоставляет максимальный контроль над внешним видом заголовков отчета. Мы можем точно определить, какие элементы будут отображаться в шапке группировки и как они будут выглядеть, включая полное удаление нежелательных строк.

  1. Создание макета группировки:
    • Перейдем на вкладку Макеты в конструкторе СКД.
    • Нажмем кнопку Добавить макет группировки.
    • В открывшемся окне "Макет группировки" нам предстоит привязать новый макет к нашей группировке по Тип, которая формирует колонки.
    • В поле Группировка выберем группировку по Тип (та, что находится в колонках).
    • В поле Тип макета обязательно установим значение Заголовок. Нажмем ОК.
  2. Настройка области макета:
    • Откроется табличный документ, который представляет собой холст для нашего макета. Здесь мы должны создать область, которая будет переопределять стандартный заголовок группировки.
    • Представим, что у нас есть ячейки, где должны выводиться названия колонок (Тип1, Тип2, Тип3). Эти ячейки обычно расположены в одной строке. Выделим эту строку или соответствующие ячейки, которые должны содержать заголовки Типов.
    • Зададим для выделенной области имя (например, ШапкаКолонок).
  3. Определение параметров макета:
    • В свойствах области макета (через контекстное меню или панель свойств) для ячеек, где должны выводиться заголовки колонок, создадим параметр. Имя параметра должно соответствовать полю группировки, то есть Тип.
    • Для этого параметра в свойстве Заполнение укажем Параметр. СКД будет динамически подставлять в эти ячейки значения Типов (Тип1, Тип2 и т.д.).
    • Ключевой момент для удаления строки "Количество": Чтобы убрать строку "Количество", мы не создаем в нашем макете никакой области или параметра, который бы отвечал за вывод названия ресурса. Мы просто формируем макет, который содержит только необходимые заголовки колонок. СКД, увидев наш пользовательский макет, будет использовать его вместо стандартного, который включает в себя вывод названия ресурса "Количество".
    • Если мы хотим, чтобы строка была полностью удалена, убедимся, что наш макет не содержит пустых строк, которые могут быть интерпретированы как место для заголовка. Макет должен быть максимально "обрезанным", содержащим только нужные элементы.

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

Метод 2: Настройка автозаголовка ресурса (проще, но с оговорками)

Этот подход проще в реализации, но он не всегда позволяет полностью удалить строку; иногда может остаться пустая ячейка или строка.

  1. Перейдем на вкладку Наборы данных в конструкторе СКД.
  2. Выберите ваш набор данных (если у вас их несколько).
  3. В списке полей найдите поле Количество.
  4. В свойствах этого поля найдите параметр Автозаголовок. Вы можете либо снять флажок рядом с ним, либо очистить текстовое значение заголовка, либо ввести один пробел. Это удалит текст "Количество" из шапки.

Однако, как было сказано, это может привести к тому, что строка или ячейка останется видимой, но пустой, что не всегда эстетично.

Метод 3: Настройка "Расположения ресурсов" и "Расположения полей группировок" (дополнительные возможности)

Эти настройки могут влиять на отображение заголовков и иногда помогают решить задачу частичного или полного скрытия нежелательных элементов, хотя они не являются прямым инструментом для удаления конкретной строки.

  1. Перейдем на вкладку Другие настройки корневого элемента отчета или для конкретной группировки в конструкторе СКД.
  2. Расположение ресурсов: Поэкспериментируем с этим параметром. Если установить его в Вертикально для корневого элемента, это может повлиять на вывод заголовков ресурсов, особенно в сочетании с правильной настройкой выбранных полей для группировки колонок.
  3. Расположение полей группировок: Настройка этого параметра на Отдельно и только в итогах может помочь исключить "хвосты" итогов и придать отчету вид сводной таблицы. В сочетании с другими настройками это может повлиять на отображение заголовков, хотя прямого удаления строки "Количество" оно не обеспечивает.

Метод 4: Условное оформление (менее подходящий вариант)

Теоретически, можно попробовать использовать условное оформление для управления видимостью или размером строки заголовка. Например, установить минимальную высоту строки заголовка в 0.

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

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

← На главную