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

Программист IT и автоматизация бизнеса
← На главную

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

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

Способ 1: Корректировка структуры группировок отчета

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

Рассмотрим по шагам, что нужно сделать:

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

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

Способ 2: Использование макетов для полного контроля над заголовком

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

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

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

Способ 3: Изменение общего расположения ресурсов

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

  1. В настройках отчета перейдите на вкладку "Другие настройки".
  2. Найдите параметр Расположение ресурсов.
  3. По умолчанию его значение может быть "Горизонтально". Измените его на "Вертикально".

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

Способ 4: Программное удаление строк из сформированного отчета

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

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


// Фрагмент кода после формирования отчета
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

ТабличныйДокумент = Элементы.Результат; // Поле табличного документа на форме
ТабличныйДокумент.Очистить();

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);

// Теперь, когда отчет в ТабличныйДокумент выведен, можно его изменить
// Предположим, что ненужный заголовок находится в 3-й строке
// Получаем область этой строки и удаляем ее со сдвигом остальных ячеек вверх
ОбластьДляУдаления = ТабличныйДокумент.Область("R3"); 
ТабличныйДокумент.УдалитьОбласть(ОбластьДляУдаления, ТипСмещенияТабличногоДокумента.ПоВертикали);

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

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

← На главную