Как настроить порядок вывода полей, включая ресурсы, в отчетах СКД?

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

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

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

1. Использование параметра "Авто позиция ресурсов"

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

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

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

2. Настройка порядка в "Выбранных полях"

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

Мы должны убедиться, что поля расположены в желаемом порядке: Номенклатура, Сумма, Валюта. Перетаскивайте поля вверх или вниз с помощью стрелок или drag-and-drop, пока они не окажутся в нужной последовательности. Если Авто позиция ресурсов отключена, СКД будет строго придерживаться этого порядка.

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

3. Применение макетов для тонкой настройки

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

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

Когда использовать макеты:

  1. Когда требуются нестандартные заголовки или объединение ячеек.
  2. При работе с вложенными группами, где стандартные настройки не дают желаемого порядка полей.
  3. Для форматирования определенных ячеек или строк отчета.
  4. Когда нужно строго зафиксировать положение ресурсов относительно других полей, особенно в таблицах.

Для создания макетов необходимо перейти на вкладку "Макеты" в конструкторе СКД. Здесь мы можем создавать макеты для:

Работа с макетами может быть достаточно трудоемкой, но обеспечивает максимальную гибкость. Подробные примеры и рекомендации по работе с макетами вы можете найти в специализированной литературе, например, в книге Е.Ю. Хрусталевой "Разработка сложных отчетов в 1С:Предприятии 8. Система компоновки данных" в главе 5 "Макеты".

4. Особенности работы с вложенными группами и другими параметрами

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

Рассмотрим дополнительные параметры на вкладке "Другие настройки":

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

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

5. Программное управление порядком (расширенный подход)

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

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

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

Заключение

Для решения проблемы с порядком полей в отчетах СКД, включая поля-ресурсы, мы рекомендуем следующий порядок действий:

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

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

← На главную