При разработке отчетов на Системе компоновки данных (СКД) разработчики часто сталкиваются с ситуацией, когда платформа 1С:Предприятие самовольно меняет порядок параметров на форме. Например, вы хотите, чтобы сначала шел вспомогательный параметр (переключатель), а затем — СтандартныйПериод, но система упорно выносит период на первое место. Рассмотрим подробно, как управлять последовательностью вывода параметров и какие механизмы на это влияют.
Первое и самое важное заблуждение заключается в том, что порядок параметров на вкладке «Параметры» в схеме компоновки данных определяет их порядок на форме. На самом деле, эта вкладка служит лишь для определения состава параметров, их типов и выражений. Порядок отображения в пользовательском интерфейсе задается в настройках варианта отчета.
Выполним следующие шаги для настройки:
Основной).В открывшемся окне мы увидим список всех параметров, включенных в пользовательские настройки. Именно здесь, используя стрелки «Вверх» и «Вниз», мы можем жестко задать последовательность, в которой параметры появятся на форме отчета. Проанализируем ситуацию: если параметр включен в «Быстрые настройки», платформа будет ориентироваться именно на этот список при генерации формы.
Если ваша конфигурация построена на базе БСП (например, «1С:ERP», «Управление торговлей 11» или «Бухгалтерия предприятия 3.0»), стандартный механизм платформы дополняется программной логикой подсистемы «Варианты отчетов». Выясним причину, почему даже после настройки в компоновщике порядок может нарушаться:
Группировка по типу данных. БСП часто принудительно выносит элементы с типом СтандартныйПериод в отдельный блок или в начало списка. Это сделано для единообразия интерфейса, чтобы пользователь всегда видел период в одном и том же месте.
Двухколоночный режим. Форма отчета в БСП обычно распределяет параметры в две колонки. Если один параметр по объему занимает больше места (как период с кнопкой выбора), система может переставить его для более компактного размещения элементов. Чтобы этого избежать, рассмотрим использование групп пользовательских настроек.
Начиная с версии платформы 8.3.8, в СКД появился мощный инструмент — группы. Они позволяют не просто задать порядок, но и логически объединить параметры. Проанализируем, как это помогает решить проблему:
Без группировки).Обычный, В отдельной колонке или На новой странице.Поместив ВидИспользованияПериода и СтандартныйПериод в одну группу с типом Группа колонок, мы заставляем платформу отрисовывать их как единый блок в строго заданном нами порядке. Это самый надежный способ «усмирить» автоматические алгоритмы платформы.
Объект СтандартныйПериод является привилегированным в глазах системы компоновки. Если нам критически важно, чтобы дата была в самом конце или перемежалась с другими типами данных без использования групп, иногда проще отказаться от СтандартныйПериод в пользу двух параметров с типом Дата (например, ДатаНачала и ДатаОкончания). К обычным датам платформа применяет стандартные правила сортировки и не пытается «вытолкнуть» их вверх списка.
Посмотрим на пример настройки выражения для использования отдельных дат вместо стандартного периода в тексте запроса:
ГДЕ
Продажи.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
ИЛИ (&НеИспользоватьПериод = ИСТИНА)
В этом случае параметры будут выводиться в том порядке, который указан в пользовательских настройках, без учета специфики «периодических» объектов.
Часто разработчик меняет порядок параметров в конфигураторе, запускает отчет в пользовательском режиме, но не видит изменений. Проанализируем ситуацию: это происходит потому, что 1С сохраняет настройки формы для каждого пользователя индивидуально. Система сначала считывает настройки из кэша (как они были расположены в прошлый раз), а потом уже обращается к схеме.
Чтобы увидеть новый порядок, необходимо выполнить следующие действия в пользовательском режиме:
Только после этого платформа перечитает структуру параметров из обновленной схемы компоновки данных.
Если вы работаете в старых версиях платформы или в конфигурациях без БСП, где интерфейс генерируется максимально упрощенно, можно воспользоваться методом «визуальной сортировки». Рассмотрим его подробнее: перед именами представлений параметров ставятся цифры (например, 1. Вид использования, 2. Период). Хотя это выглядит менее эстетично, такой подход гарантирует, что даже при алфавитной сортировке (которую иногда применяет платформа внутри коллекций) параметры выстроятся правильно.
Подведем итог: для управления порядком параметров мы используем окно «Свойства пользовательских настроек» на вкладке «Настройки», группируем элементы для фиксации их положения и не забываем сбрасывать пользовательские настройки к стандартным после внесения изменений в конфигуратор.