Гриды — Администрирование¶
Обзор¶
Домен grids охватывает настройку табличного представления задач: индикаторы (тикеры), избранное группы, общие параметры табличного вида и пользовательские настройки колонок/фильтров. Администрирование использует:
- Автоадминка (dbadmin) -- 1 форма (настройки табличного вида)
- Кастомные SPA-страницы -- 2 формы (тикеры, избранное) -- зарегистрированы в дереве автоадминки, но открывают собственные SPA-страницы
- Admin API -- 1 контроллер (управление группами/папками избранного)
Механизмы администрирования¶
Автоадминка (dbadmin)¶
| Alias формы | Название | Таблица БД | Полей | Секций | Deps | Папка |
|---|---|---|---|---|---|---|
user-task-only-settings |
Общие настройки табличного вида | dbo.UserTaskOnlySettings | 6 | 1 | 0 | Устаревшее |
Кастомные SPA-страницы (в дереве автоадминки)¶
| Alias формы | Название | Url | Таблица БД | Папка |
|---|---|---|---|---|
tickers |
Индикаторы | /administration/tickers |
dbo.MenuItemTicker | Пользовательский интерфейс |
favourites |
Избранное группы | /administration/favorites-groups |
dbo.UserLinks | Пользовательский интерфейс |
Admin API контроллеры¶
| Контроллер | Маршрут | Методы | Назначение |
|---|---|---|---|
| FavoritesAdminController | /api/admin/favorites/groups |
GET, POST, PUT, DELETE | Управление группами, папками и ссылками избранного |
Ключевые настройки¶
Индикаторы (MenuItemTicker)¶
Где настраивается: SPA-страница /administration/tickers (пункт tickers в дереве автоадминки)
Таблица БД: dbo.MenuItemTicker
11 полей, определяющих цветовые/числовые индикаторы в навигационном меню:
| Группа полей | Что контролирует |
|---|---|
| Имя, описание | Идентификация тикера |
| Тип индикатора | Числовой / цветовой |
| Источник данных | SQL-запрос или предопределённый источник |
| Цвет, иконка | Визуальное оформление в меню |
| Привязка к пункту | К какому разделу меню привязан тикер |
Эффект в runtime: тикеры обновляются периодически через SignalR, значения вычисляются TickerService.
Избранное группы (UserLinks)¶
Где настраивается: SPA-страница /administration/favorites-groups (пункт favourites в дереве автоадминки) / Admin API -> FavoritesAdminController
Таблица БД: dbo.UserLinks
18 полей: структура ссылок и папок блока «Избранное группы». Администратор настраивает набор ссылок для группы, которые отображаются у всех пользователей группы.
| Группа полей | Что контролирует |
|---|---|
| Группа, папка | Привязка к группе и иерархия |
| URL, название | Содержание ссылки |
| Тип ссылки | Задача / категория / пространство / внешняя |
| Порядок | Сортировка в блоке избранного |
Редактирование структуры
В редакторе блока «Избранное группы» поддерживается drag-and-drop для перестроения дерева элементов. Администратор может:
- перемещать ссылку в другую папку;
- перемещать папку внутрь другой папки;
- менять порядок ссылок и папок на одном уровне.
После перетаскивания элемент должен сразу отображаться в новом месте в дереве, до сохранения страницы. Это позволяет сразу проверить, что ссылка или папка попала в нужный раздел и заняла корректную позицию.
При изменении структуры важно различать два сценария: перенос элемента в папку и перестановка элементов на одном уровне. Если требуется вложить ссылку или папку внутрь другой папки, нужно перетащить элемент именно в узел папки. Если требуется только изменить порядок, элемент нужно переместить между соседними элементами одного уровня.
Эффект в runtime: блок «Избранное группы» формируется в навигационной панели через UserLinksService.
Общие настройки табличного вида (UserTaskOnlySettings)¶
Где настраивается: автоадминка -> форма user-task-only-settings
Таблица БД: dbo.UserTaskOnlySettings
6 полей: глобальные параметры табличного представления задач.
Примечание: форма находится в папке «Устаревшее», основные настройки табличного вида теперь задаются через пользовательские колонки и фильтры.
Пользовательские настройки колонок (runtime)¶
Где настраивается: Runtime API -> /api-core/datasource/{type}/columns/save|reset
Таблицы БД: dbo.DataSources, dbo.DataSourceColumns
Пользователь сохраняет видимость, порядок и ширину колонок per-user. Настройки сбрасываются через columns/reset.
Сохранённые фильтры (runtime)¶
Где настраивается: Runtime API -> /api-core/datasource/{type}/filters
Таблица БД: dbo.DataSourceFilters
Сохранённые фильтры и сценарии выбора. Фильтрация задач использует ColumnFilterService, фильтрация табличных ДП -- ColumnTableFilterService.
Условное форматирование колонок табличных ДП (v2.268)¶
Где настраивается: Admin API -> ExtParamFormattingAdminController
Таблица БД: dbo.ExtParamTableColumnFormattingRules
Условное форматирование позволяет задать правила подсветки ячеек в табличных ДП по значению — аналогично условному форматированию в Excel. Правила настраиваются per-колонка через Admin API.
API endpoints:
| Метод | Маршрут | Назначение |
|---|---|---|
| GET | /api/admin/ext-params/formatting/rules/{epId} |
Список правил форматирования для ДП |
| POST | /api/admin/ext-params/formatting/rules |
Создание правила |
| PUT | /api/admin/ext-params/formatting/rules/{ruleId} |
Обновление правила |
| DELETE | /api/admin/ext-params/formatting/rules/{ruleId} |
Удаление правила |
Модель правила (EpTableColumnFormattingRuleDto):
| Поле | Тип | Описание |
|---|---|---|
| RuleType | enum EpTableFormattingRuleType |
Тип правила (пороговые значения, диапазоны, точное совпадение и др.) |
| ColumnId | int | Колонка табличного ДП |
| Condition | string | Условие (оператор + значение) |
| BackgroundColor | string | Цвет фона ячейки |
| TextColor | string | Цвет текста |
| Priority | int | Приоритет правила (при пересечении условий) |
Правила форматирования интегрированы в настройки колонок табличного ДП (EpTableColumnSettingsDto). При загрузке настроек колонки правила включаются в ответ автоматически.
CustomSettings — экспорт, агрегаты, права на CSV¶
| Ключ | Тип / Default | Назначение |
|---|---|---|
MaxExcelExportRows |
int / 50000 |
Максимум строк для экспорта в Excel. При превышении — ошибка (не больше 50 000) |
MaxCsvExportRows |
int / 50000 |
Максимум строк для экспорта в CSV (не больше 50 000) |
ExportAgGridAsCsv |
bool / false |
Если true — кнопка «В Excel» в табличном виде категории экспортирует в CSV вместо XLSX |
MaxScriptsToCombine |
int / 10 |
Лимит на объединение скриптов |
CompressDSSettings |
bool / true |
Если true — настройки табличного вида хранятся в DataSourceSettings.ValueGZip (GZip). При false — в Value (JSON). Загрузка совместима с обоими режимами: сначала ValueGZip, потом Value |
DataSourceAggregates |
JSON | Включает строку итогов (sum / avg / min / max) для числовых и денежных колонок в табличном виде категории и в блоке БИ. Формат: [{"type":"subcat\|taskUsed","id":N,"gridTotalColumns":{"{column}":["sum","avg","min","max"]}}] |
DSUpdateCSVPermissions |
JSON | Управляет правом «Создание/обновление из CSV»: при отсутствии права кнопки скрываются. Формат: "UseNewExtParamsAndTaskUsed":[{"subcats":[ids],"groups":[ids]}] — категории и группы, для которых кнопки включены |
DoNotSelectedTaskInSummary |
bool / false |
Если true — задачи из сводных разделов не добавляются в запрос |
CSVImportMaxThreadsCount |
int | Количество потоков для импорта задач из CSV. Увеличение ускоряет, но возможна ошибка Specified argument was out of the range. Рекомендация — 1 |
UseNewGrid |
JSON-массив правил | Включает новый грид (таблицу задач) для выбранных пользователей в выбранных контекстах. Применяется покомпонентно: каждое правило независимо, может быть задано несколько. См. структуру ниже |
Кастомные настройки задаются на странице «Настройки приложения» → «Пользовательские ключи». Источник:
dbo.SettingsCustom.
UseNewGrid — структура правил¶
Каждый объект массива:
| Поле | Тип / Default | Назначение |
|---|---|---|
subcats |
int[] |
ID категорий, для которых включается новый грид. Игнорируется при allSubcats=true |
users |
int[] |
ID пользователей, к которым применяется правило |
allUsers |
bool / false |
Применить ко всем пользователям |
allSubcats |
bool / false |
Новый грид для всех категорий |
myTasks |
bool / false |
Включить в разделе «Мои задачи» |
tickers |
bool / false |
Включить для тикеров (индикаторов) |
Логика применения: правило срабатывает для пользователя, если users содержит его ID или allUsers=true. При наличии хотя бы одного подходящего правила с allSubcats=true — новый грид включается для всех категорий; иначе — объединяются subcats из всех подходящих правил. Флаги myTasks / tickers ставятся в true, если хотя бы одно подходящее правило содержит их true.
Примеры:
Все пользователи, все категории, включая «Мои задачи» и тикеры:
[{"subcats":[],"users":[],"allUsers":true,"allSubcats":true,"myTasks":true,"tickers":true}]
Конкретные пользователи и категории:
[{"subcats":[5574],"users":[6736],"allUsers":false,"allSubcats":false,"myTasks":false,"tickers":false}]
Типичные ошибки настройки¶
| Симптом | Причина | Где проверить | SQL-диагностика |
|---|---|---|---|
| Пропала колонка в гриде | Скрыта пользователем или убрана из схемы категории | dbo.DataSourceColumns |
select * from dbo.DataSourceColumns where DataSourceId = {dsId} and UserId = {userId} |
| Фильтр работает в задачах, но не в ДП Таблица | Разные pipeline фильтрации | ColumnFilterService vs ColumnTableFilterService |
Проверить настройки фильтрации колонки табличного ДП |
| Избранное группы не отображается | Нет ссылок для группы пользователя | Форма favourites |
select * from dbo.UserLinks where GroupId = {groupId} |
| Тикер показывает неверные данные | Некорректный источник данных тикера | Форма tickers |
select * from dbo.MenuItemTicker where Id = {tickerId} |
| Неверный DataSourceType/entityId | Грид загружает «не тот» набор данных | Параметры запроса к /api-core/datasource |
Проверить DataSourceType и entityId в запросе |
| Кнопка «В Excel» отдаёт CSV | ExportAgGridAsCsv=true |
Кастомные настройки приложения | select * from dbo.SettingsCustom where Name = 'ExportAgGridAsCsv' |
| Экспорт обрывается на 50 000 строк | Достигнут лимит MaxExcelExportRows / MaxCsvExportRows |
Кастомные настройки приложения | См. соответствующий ключ |
| Нет кнопок «Создание/обновление из CSV» | Нет права для текущего пользователя/категории по DSUpdateCSVPermissions |
Кастомные настройки приложения | См. JSON-настройку выше |
Связанные документы¶
docs/domains/grids/backend.md-- backend-архитектура (DataSource pipeline, фильтры, колонки)docs/domains/grids/frontend.md-- frontend-архитектура (AG Grid, компоненты)docs/domains/grids/data-flow.md-- E2E диагностика (загрузка данных, фильтрация)docs/domains/grids/filters-reference.md-- справочник типов фильтровdocs/platform/backend/admin-architecture.md-- общая архитектура администрированияdocs/reference/database/dbadmin-forms-map.md-- карта всех форм автоадминки