Как зафиксировать порядок колонок с ресурсами в отчете СКД?

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

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

Явное задание выбранных полей

Первый и самый очевидный способ — отказаться от использования слова Авто в списке выбранных полей. По умолчанию СКД пытается «помочь» разработчику, самостоятельно распределяя ресурсы. Если вы явно перечислите поля в нужном вам порядке на вкладке «Настройки» в разделе «Выбранные поля», система будет следовать этому списку.

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

Настройка группировок с использованием собственных настроек

Если отчет содержит несколько группировок (например, иерархический список), автоматика СКД особенно активна. Чтобы «заморозить» порядок ресурсов для определенной группы, выполните следующие шаги:

  1. Откройте вкладку «Настройки» в схеме компоновки данных.
  2. Выберите нужную группировку в левом окне.
  3. Перейдите на вкладку «Выбранные поля».
  4. Установите флаг «Использовать собственные настройки».
  5. Удалите из списка элемент <авто>, если он там присутствует.
  6. Вручную добавьте необходимые поля (как группировочные, так и ресурсы) в том порядке, который должен видеть пользователь.

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

Использование пользовательских полей как способ обхода группировки ресурсов

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

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

Проверка пользовательских настроек в управляемых формах

Часто разработчики сталкиваются с ситуацией, когда в конфигураторе все настроено верно, но при запуске отчета в режиме «1С:Предприятие» порядок снова сбивается. Причиной тому становятся пользовательские настройки.

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

Когда стоит использовать собственный макет оформления?

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

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

← На главную