Настройки отображения выборки#

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

В системе используются два механизма сохранения состояния выборки:

  • пользовательские настройки — именованные настройки, которые явно сохраняются через контекстное меню списка;

  • автонастройки — текущее состояние интерфейса, которое автоматически сохраняется в реестре при выходе из приложения.

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

Отображения выборки#

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

Стандартные отображения для класса:

  • Default — отображение по умолчанию, в котором определяется общая функциональность выборки. Остальные отображения обычно наследуют его настройки;

  • List — отображение списка объектов класса;

  • Card — отображение карточки объекта;

  • Lookup — отображение списка объектов, открываемого для выбора значения.

О настройке деревьев с частичной загрузкой данных см. в разделе «Частично загружаемые деревья».

Пользовательские настройки отображения#

Пользовательские настройки отображения позволяют адаптировать внешний вид и поведение списка под рабочий сценарий.

В настройке сохраняются:

  • видимость колонок;

  • порядок следования колонок;

  • ширина колонок;

  • сортировка колонок;

  • группировка строк;

  • отображение области итогов.

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

Права на создание и изменение настроек определяются ролями пользователя.

Управление пользовательскими настройками#

Управление настройками выполняется через контекстное меню списка.

Чтобы открыть меню:

  1. Нажмите правой кнопкой мыши на любую область таблицы.

  2. Выберите пункт Настройки пользователя.

В меню доступны операции:

  • сохранение настройки;

  • сохранение настройки с новым именем;

  • загрузка настройки;

  • восстановление настроек по умолчанию.

Сохранение настройки#

Чтобы сохранить текущую настройку:

  1. Откройте контекстное меню списка.

  2. Выберите Настройки пользователя > Сохранить или Настройки пользователя > Сохранить как.

Откроется окно сохранения настройки.

В окне указываются:

  • наименование настройки;

  • доступность настройки;

  • признак По умолчанию.

Для настройки можно выбрать один из следующих вариантов доступности:

  • Для всех — настройка доступна всем пользователям;

  • Для пользователей — настройка доступна выбранным пользователям;

  • Профиль — настройка доступна пользователям выбранного профиля;

  • Только для меня — настройка доступна только пользователю, который её сохранил.

Если установлен признак По умолчанию, настройка может автоматически применяться при открытии выборки.

Для завершения сохранения нажмите Выбор. После сохранения настройка применяется к текущему отображению.

Загрузка настройки#

Для одного интерфейса может быть сохранено несколько пользовательских настроек.

Чтобы загрузить сохранённую настройку:

  1. Откройте контекстное меню списка.

  2. Выберите Настройки пользователя > Загрузить.

Откроется список доступных настроек.

Для отбора настроек используются флаги:

  • Личные — настройки текущего пользователя;

  • Общие — настройки, доступные всем пользователям, выбранным пользователям или профилям;

  • Других пользователей — настройки, созданные другими пользователями.

Чтобы скрыть общие настройки, снимите флаг Общие.

После выбора настройка применяется к списку.

Настройка по умолчанию#

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

Если пользователю доступны несколько таких настроек, система выбирает одну из них в следующем порядке:

  1. Только для меня.

  2. Для пользователей.

  3. Профиль.

  4. Для всех.

Если на одном уровне доступности найдено несколько настроек по умолчанию, применяется первая созданная настройка.

Автоматическое применение пользовательской настройки также зависит от флага Восстанавливать изменения в интерфейсе при переоткрытии.

Восстановление настроек по умолчанию#

Чтобы вернуть отображение к исходному виду:

  1. Откройте контекстное меню списка.

  2. Выберите Восстановить настройки по умолчанию.

Это основной способ сброса пользовательских настроек через интерфейс системы.

Метод restoreDefaultSettings() используется для программного сброса настроек списка.

Внимание

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

Для сброса используется вызов:

selection.layout.frame.view.asListView.restoreDefaultSettings()

Пример вызова при первом открытии выборки:

override def beforeFirstOpen(): Unit = {
  super.beforeFirstOpen()
  selection.layout.frame.view.asListView.restoreDefaultSettings()
}

Метод сбрасывает пользовательские настройки представления списка и восстанавливает отображение в соответствии с конфигурацией выборки.

Автоматическое восстановление состояния интерфейса#

При выходе из приложения текущее состояние списка автоматически сохраняется в реестре. Такие сведения называются автонастройками.

Флаг Восстанавливать изменения в интерфейсе при переоткрытии определяет приоритет между автонастройками и явно сохранёнными пользовательскими настройками.

По умолчанию флаг включён.

Управление флагом#

Флаг доступен:

  • в главном меню приложения;

  • в контекстном меню списка.

Элементы управления изменяют значение CoreApplication.AutoSettings.RestoreWhenHasUserSettings.

Флаг в контекстном меню списка дублирует элемент главного меню и может быть отключён администратором.

Применение настроек при открытии выборки#

Если флаг Восстанавливать изменения в интерфейсе при переоткрытии включён:

  • при наличии автонастроек применяются автонастройки;

  • при отсутствии автонастроек применяется доступная пользовательская настройка.

Если флаг выключен:

  • при наличии пользовательской настройки применяется пользовательская настройка;

  • при отсутствии пользовательской настройки применяются автонастройки из реестра.

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

Серверные параметры автонастроек#

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

Параметр

Назначение

Значение по умолчанию

Configuration.Databases.Database.UI.AutoSettings.RestoreAutoSettingsRegardlessOfUserSettings

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

true

Configuration.Databases.Database.UI.AutoSettings.AllowUserToChangeSettings

Разрешает пользователю изменять флаг Восстанавливать изменения в интерфейсе при переоткрытии

true

Приоритет административной конфигурации#

Если параметр RestoreAutoSettingsRegardlessOfUserSettings имеет значение true, применяется режим административного управления автонастройками.

В этом режиме:

  • административная конфигурация имеет приоритет над пользовательской;

  • пользователь не может переопределить заданное поведение с помощью сохранённой настройки;

  • пользовательские настройки применяются с учётом установленного администратором порядка восстановления.

Ограничение изменения флага#

Возможность изменения флага определяется параметром:

Configuration.Databases.Database.UI.AutoSettings.AllowUserToChangeSettings

Если параметр имеет значение false:

  • флаг становится недоступным для изменения в интерфейсе;

  • порядок применения настроек определяется административной конфигурацией.

На уровне API возможность изменения флага определяется методом:

ru.bitec.gtk.core.gl.CoreAutoSettings.isAllowUserToChangeSettings()

Приоритет автонастроек определяется методом:

ru.bitec.gtk.core.gl.CoreAutoSettings.isRestoreAutoSettingsRegardlessOfUserSettings()

Итоговые параметры автонастроек приложения доступны через:

CoreApplication.autoSettings()

Права доступа#

Права на работу с пользовательскими настройками назначаются в приложении Администратор.

Путь: Доступ > Роли > Права роли.

Подробнее о настройке прав см. в разделе Администрирование приложений.

Права доступа определяются администрируемым объектом Btk_SelGridSetting.

Для объекта используются привилегии:

  • CanEditPublicSetting — создание и изменение публичных настроек;

  • CanEditAnotherUserSetting — изменение настроек, созданных другими пользователями.

Публичные настройки#

Привилегия CanEditPublicSetting разрешает создавать и изменять настройки со следующими вариантами доступности:

  • Для пользователей;

  • Профиль;

  • Для всех.

Если у пользователя отсутствует эта привилегия:

  • недоступен выбор указанных вариантов доступности;

  • недоступно редактирование публичных настроек;

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

Настройки других пользователей#

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

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

Ограничения прав учитываются при сохранении, редактировании и загрузке настроек.

Интеграционные события#

При работе с пользовательскими настройками вызываются события ядра:

  • onSaveUserSettings — сохранение пользовательской настройки;

  • onSaveAsUserSettings — сохранение новой пользовательской настройки;

  • onLoadUserSettings — загрузка выбранной настройки;

  • onLoadDefaultUserSettings — загрузка настройки при открытии выборки.

Пункты контекстного меню реализуются в ядре. Логика обработки событий реализуется на прикладном уровне.

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

Примеры использования#

Сохранение настроенного представления списка

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

Автоматическое применение настройки

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

Сброс некорректной настройки

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

В этом случае используются:

  • Восстановить настройки по умолчанию — основной пользовательский способ;

  • restoreDefaultSettings() — программный способ для ситуаций, когда восстановление через интерфейс не сработало.