Перейти к содержанию

Гриды: бизнес-логика

Виды гридов

В 1Форме 29 типов гридов (DataSourceType enum). Все они используют единый backend pipeline и единый frontend-компонент (ag-grid), но с разной схемой колонок и разными фильтрами.

Основные гриды (пользователь работает каждый день)

Тип DataSourceType Что показывает Где появляется
Реестр категории Subcat (0) Задачи конкретной категории Главная навигация, клик по категории
Реестр раздела Category (1) Задачи всех категорий раздела Клик по разделу
Мои задачи MyTasks (2) Задачи пользователя (заказчик + исполнитель) Стартовая страница
Я заказчик Owner (5) Задачи, где пользователь -- заказчик Стартовая страница
Я исполнитель Performer (6) Задачи, где пользователь -- исполнитель Стартовая страница
Сводный раздел Summary (24) Объединение нескольких категорий Настройка сводного раздела

Гриды-тикеры (индикаторы, виджеты)

Тип DataSourceType Что показывает
Просроченные Overdued (7) Задачи с истёкшим сроком
Кастомный тикер Ticker (8) По произвольному smart-фильтру
Новые задачи NewTasks (15) Недавно созданные
Задачи на сегодня TodayTasks (16) С дедлайном сегодня
Задачи в работе TotalTasks (17) Все активные
Просроченные без исполнителя OverdueNoPerformers (18) Просрочка + нет performer
Задачи замещаемого TotalTasksAssistant (19) Задачи замещаемого сотрудника
Подчинённые Subordinates (10) Задачи подчинённых (общие)
Подчинённые-заказчики SubordinatesOwners (20) Подчинённые как заказчики
Подчинённые-исполнители SubordinatesPerformers (21) Подчинённые как исполнители

Гриды подписей

Тип DataSourceType Что показывает
На согласовании Signatures (13) Задачи на согласовании пользователя
Просроченные подписи OverdueSignatures (14) Подписи с истёкшим сроком
Задачи на подпись TasksForAccept (22) Отдельный грид подписей
Подписи-подзадачи SignaturesSubtasks (25) Подзадачи, ожидающие подписи

Специализированные гриды

Тип DataSourceType Что показывает
Lookup-пикер Lookup (9) Грид выбора задачи для лукап/мультилукап ДП
Блок "Используется" TaskUsed (4) Задачи, связанные через лукап
Расширенный поиск TasksFeed (12) Произвольный запрос к ShowTasksFeed
Ресурсы Resources (23) Ресурсное планирование (timeline + grid)
Произвольный Custom (3) Произвольная конфигурация
Грид на хранимке sptable (11) Данные из произвольной SP
Канбан KanbanSubcat (28) Канбан-доска по статусам

Гриды ДП Таблица (отдельный pipeline)

Тип DataSourceType Что показывает
ДП Таблица Table (27) Табличный ДП внутри карточки задачи
Мультивыбор таблицы TableMultiselect (26) Множественный выбор строк в табличном ДП

Важно: грид ДП Таблица (Table, TableMultiselect) использует отдельный pipeline фильтрации (ColumnTableFilterService вместо ColumnFilterService), потому что фильтрует не задачи, а строки таблицы ДП.

Настройки грида в категории

Администратор настраивает грид через карточку категории:

  • Колонки: какие поля задачи и ДП видны в гриде, порядок, ширина
  • Представление по умолчанию: таблица / список / календарь / канбан / ганнт
  • Частота обновления: автоматическое обновление грида (интервал)
  • Тулбар: какие кнопки доступны (создать, удалить, экспорт, etc.)
  • Smart-фильтры: предустановленные фильтры для категории

Подробнее: ../categories/admin.md

Контекстное меню столбца

При клике правой кнопкой мыши на заголовке столбца открывается контекстное меню с операциями: - Сортировка — по возрастанию или убыванию - Группировка — объединение строк по значениям в столбце - Автоматическая ширина столбца — подбирает ширину только для текущего столбца по содержимому - Автоматическая ширина столбцов — подбирает ширину для всех видимых столбцов - Скрыть столбец — убирает столбец из текущего представления

Фильтрация

Четыре уровня фильтрации в гриде:

  1. Quick filter -- текстовый поиск по всем видимым колонкам (строка поиска сверху грида)
  2. Column filter -- фильтр на конкретной колонке (иконка фильтра в заголовке)
  3. Smart filter -- предопределённый или пользовательский ESQL-фильтр (панель фильтров)
  4. Конструктор поиска (Advanced Filter) -- визуальный query builder ag-grid. Позволяет строить дерево условий (колонка + оператор + значение) с AND/OR группами. Кнопка search-list в тулбаре грида, включается через gridApi.setGridOption('enableAdvancedFilter', true). Работает на всех основных гридах: реестр категории, реестр раздела, «Мои задачи», расширенный поиск (/spa/search?mode=advanced). Генерирует filterModel JSON → backend ColumnFilterService@GeneralFilters TVP → SP ShowTasksFeed

Подробнее: ../smart-filters/business.md, ../grids/backend.md

Тулбар и доступные действия

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

Кнопка Описание
Создание задачи Создаёт задачу в текущей категории. Если открыт раздел, сначала предлагает выбрать категорию. Отображается только при наличии права на создание задач
Обновление Принудительное обновление данных в таблице
Отбор по статусам Быстрый переключатель: все / активные / закрытые / отклонённые
Готовые фильтры (отборы) Предустановленные или пользовательские отборы
Участники Отбор задач, в которых текущий пользователь — исполнитель, заказчик, акцептант или подписчик
Фильтрация Панель фильтров по колонкам
Конструктор поиска Расширенный визуальный построитель условий
Группировка Включение панели группировки
Выбор колонок Настройка состава отображаемых столбцов
Поиск Поле текстового поиска по задачам категории
Список действий Дополнительные операции: режим выбора, пакетная обработка, экспорт, сброс вида и др.

⚠️ Доступность кнопок зависит от прав пользователя и настроек категории.

Режимы работы с таблицей

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

Режим Поведение клика Быстрое редактирование
Просмотр Открывает карточку задачи Двойной клик по ячейке — inline-редактирование без перехода в карточку
Редактирование Не открывает карточку; двойной клик сразу активирует редактирование ячейки Переход к карточке только через контекстное меню «Открыть задачу»

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

Клавиатурная навигация в режиме редактирования

  • Печатные клавиши — при фокусе на ячейке автоматически очищают текущее значение и активируют редактирование
  • Esc — закрывает редактор с сохранением текущего значения, фокус остаётся на ячейке
  • Стрелки влево/вправо — перемещение по ячейкам строки
  • Enter — подтверждение ввода и переход фокуса на ячейку ниже в том же столбце с автоматическим входом в режим редактирования
  • Tab — сохранение и переход на следующую ячейку вправо. Первое нажатие перемещает фокус без открытия редактора, последующие — с переходом к редактированию
  • Space — при фокусе на чекбоксе переключает значение на противоположное с автосохранением

Визуальное отображение ограничений прав

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

Превью вложений в ячейках

В ячейках колонок типа «Файл» реализовано превью содержимого:

  • Изображения и медиафайлы — миниатюра отображается во всплывающем окне при наведении курсора
  • Документы (PDF, DOCX и др.) — компонент с иконкой расширения, названием файла, размером и индикатором наличия предыдущих версий
  • Только изображения — если параметр «Файл» настроен исключительно для загрузки изображений, в ячейках отображаются графические превью. Размер и пропорции настраиваются администратором

⚠️ Для отображения превью изображений в ячейках необходимо, чтобы в настройках параметра «Файл» была активна опция «Изображение» и задан тип пропорции, а также выбрана ширина колонки в настройках табличного вида категории.

Отборы и быстрая фильтрация

Системные отборы по статусу

Единые для всех разделов и категорий:

Отбор Описание
Все Активные, завершённые и отклонённые задачи
Активные Только активные задачи. Значение по умолчанию
Закрытые Успешно завершённые и отклонённые
Отклонённые Только отклонённые

Пользовательские отборы

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

При выборе пункта «Без отбора» активный отбор снимается, но текущие настройки грида (фильтры, сортировка, группировка, колонки) сохраняются. Для полного сброса используется кнопка «Очистить всё» на панели фильтров.

Быстрая фильтрация по исполнителям

В тулбаре отображается список аватарок уникальных исполнителей задач текущей выборки (первые три + кнопка +X для остальных). Текущий пользователь всегда стоит первым. Если есть задачи без исполнителя — отображается пункт «Не назначено».

  • Клик по аватарке — включить/снять фильтр по исполнителю
  • Поддерживается мультиселект (несколько исполнителей одновременно)
  • Список пересчитывается при изменении статуса или отбора
  • Если ранее выбранного исполнителя нет в новой выборке — его фильтр снимается автоматически
  • Фильтры по колонкам и ДП на список исполнителей не влияют

Отбор по участию пользователя

Меню «Пользователь» позволяет отфильтровать задачи по роли:

Пункт Описание
Исполнитель Задачи, где пользователь — исполнитель
Заказчик Задачи, где пользователь — заказчик
Подписчик Задачи, на которые пользователь подписан
Акцептант Задачи, в которых у пользователя запрошена подпись
В параметрах Задачи, в которых пользователь выбран в ДП «Выбор пользователей»

Фильтрация по типам колонок

Фильтр колонки определяется типом соответствующего параметра. Значение вводится в поле под заголовком столбца. Фильтр регистронезависимый.

Текстовые и строковые колонки

Применяется к: задача (название), заказчик, исполнитель, Lookup-поле, URL, адрес, адресаты email, большой текст, выбор пользователей, мультилукап, текст, нумератор.

Оператор Описание
Содержит Колонка содержит указанный фрагмент
Не содержит Колонка не содержит указанный фрагмент
Равно Полное совпадение
Не равно Полное несовпадение
Начинается с Значение начинается с указанного фрагмента
Заканчивается на Значение заканчивается на указанный фрагмент
Нет значения Колонка не заполнена
Есть значение Колонка заполнена любым значением

Форматированный текст и файлы

Для ДП «Большой текст с форматированием» и «Файл» доступны операторы: Содержит, Не содержит, Нет значения, Есть значение.

Дата и срок

Оператор Описание
Равно Точное совпадение даты
Не равно Исключение указанной даты
Меньше Дата предшествует указанной (не включая её)
Больше Даты следуют после указанной. Поскольку за время берётся 00:00:00, в выборку попадают значения указанной даты с более поздним временем
Диапазон Записи в указанном интервале дат, включая границы
Нет значения Дата не указана
Есть значение Дата указана

Число и деньги

Оператор Описание
Равно Точное совпадение
Не равно Исключение
Меньше Строго меньше
Меньше или равно Меньше или равно
Больше Строго больше
Больше или равно Больше или равно
Диапазон Интервал чисел, включая границы
Нет значения Число не указано
Есть значение Число указано

Выпадающий список и статус

Условие выбирается из значений выпадающего меню. Если ни один вариант не отмечен — поиск осуществляется по пустым значениям.

Галочка (чекбокс)

Условие выбирается из значений «Да» и «Нет». В режиме редактирования чекбокс редактируется в ячейке одним кликом. В режиме просмотра по двойному клику открывается выпадающий список с вариантами «Да» / «Нет».

ДП Таблица

Оператор Описание
Содержит Поиск по столбцам таблицы, у которых в настройках включена опция «Участвует в поиске». Если опция отключена у всех столбцов — фильтр не найдёт ни одной задачи
Нет значения Колонка не заполнена
Есть значение Колонка заполнена

После применения фильтр отображается в виде тега над таблицей. Удаление — через крестик в теге или кнопку «Очистить всё». Фильтрация по колонкам недоступна при активном конструкторе поиска.

Управление колонками

Выбор столбцов

Два способа настроить состав отображаемых колонок:

  1. Контекстное меню заголовка — наведение на заголовок столбца и клик по кнопке меню (или ПКМ по заголовку), пункт «Выбрать столбцы»
  2. Кнопка в тулбаре — если администратором не перемещена в список действий

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

⚠️ Меню выбора колонок автоматически закрывается при смене контекста: переходе в другую категорию, переключении задачи, смене вкладки БИ, сворачивании БИ, закрытии модального окна подзадачи или lookup. Если карточка задачи открывается без смены контекста таблицы — меню остаётся открытым.

Быстрый способ скрыть колонку — пункт «Скрыть колонку» в контекстном меню заголовка.

Порядок и закрепление

  • Перетаскивание — drag-and-drop заголовка столбца для изменения порядка
  • Закрепление — через контекстное меню заголовка: «Закрепить слева» / «Закрепить справа» / «Открепить»

Стилизация Lookup-колонок

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

Для колонки «Приоритет» администратор может выбрать стиль: только текст, текст и цвет, иконка и цвет, текст + цвет + иконка. По умолчанию — иконка с цветом. Цветная полоса по левому краю строки сохраняется независимо от выбранного стиля.

Сортировка

  • Одиночная — клик по заголовку столбца. Первый клик — по возрастанию, второй — по убыванию, третий — сброс
  • Множественная — удержание Shift и последовательный клик по заголовкам. Справа от названия отображается цифра приоритета
  • Контекстное меню — пункты «Сортировать по убыванию / возрастанию / очистить сортировку"
  • По статусу — соответствует последовательности статусов в основном маршруте категории

Настроенная сортировка автоматически сбрасывается при возврате к виду по умолчанию через «Вид по умолчанию».

Группировка

Включение панели группировки — через кнопку в тулбаре. Для группировки по столбцу:

  • Drag-and-drop — перетащить заголовок столбца в поле «Перетащите сюда для группировки"
  • Контекстное меню — пункт «Сгруппировать"

При группировке по «Статусу" значения сортируются по порядку основного маршрута. Группы можно сворачивать и разворачивать стрелками слева от названия. Положение группировки сохраняется между сессиями.

Группировка по Lookup-полю отображает значения в виде ссылок — клик открывает задачу-источник.

⚠️ Для группировки по ДП «Выбор пользователей" в параметре должна быть разрешена возможность выбора только одного типа сущностей: либо пользователи, либо группы, либо орг.единицы. Также в параметре должно быть разрешено сохранять не более одного элемента.

Экспорт

Доступен из списка действий в тулбаре:

Формат Особенности
Excel Поле «Файл" экспортируется как кликабельная гиперссылка. Для мультифайловых полей — полные адреса ссылок на каждый файл в ячейке. Неавторизованный пользователь при переходе по ссылке попадает на страницу авторизации, после которой начинается скачивание
CSV Аналогичный состав данных, текстовый формат

⚠️ Лимиты экспорта: - По умолчанию нельзя экспортировать более 50 000 задач - Лимит можно изменить через административные настройки - Если количество задач превышает ограничение — выводится сообщение о невозможности выгрузить все задачи

В выгрузку попадают задачи с учётом применённых отборов, фильтров и выбранного статуса.

Импорт из CSV

В меню действий табличного представления категории доступны:

  • Поставить из CSV файла — массовое создание новых задач из строк CSV.
  • Обновить доп. параметры из CSV — поиск задач по номерам и обновление значений ДП.

Параметры формы импорта

Поле Описание
Категория Целевая категория. После выбора отображаются обязательные столбцы (помечены *)
CSV-файл Файл с локального компьютера
Разделитель , или ;
Образец Скачать шаблон с правильными столбцами для категории
Пропускать первую строку Игнорировать заголовки
Заказчик / Исполнитель Применяются ко всем создаваемым задачам

Кодировка

Для корректной загрузки CSV рекомендуется UTF-8 без BOM. Excel на macOS сохраняет файл с BOM, что приводит к ошибке распознавания первого заголовка.

Как сохранить в правильной кодировке:

ОС / приложение Способ
Windows + Excel Файл → Сохранить как → CSV → «Сервис» → «Веб-документы» → Кодировка: UTF-8
macOS + Numbers Файл → Экспортировать в → CSV → Кодировка: UTF-8
macOS + Google Таблицы Файл → Скачать → CSV
macOS + TextEdit Открыть CSV → Format → Make Plain Text → File → Save As → Unicode (UTF-8)

Формат данных колонок

Дата / Дата и время: ddMMyyyy, dd.MM.yyyy, dd.MM.yy, dd.MM.yyyy HH:mm, dd.MM.yy HH:mm, dd.MM.yy H:mm. Время — без секунд, месяцы — цифрами.

Исполнитель: ID пользователя в 1Форме. Несколько — через запятую; если разделитель CSV — запятая, строку нужно заключить в кавычки (в Excel — поставить одинарную кавычку перед строкой).

ДП «Выбор пользователей»: ID объекта с префиксом по типу:

Тип Формат Пример
Пользователь ID без префикса 23456
Группа Group{ID} Group1620
Орг.единица OrgUnit{ID} OrgUnit23233

Несколько значений через запятую: OrgUnit23233,OrgUnit65,29531,Group1620.

Поиск в категории

Помимо глобального поиска доступен поиск в рамках текущей категории:

  • Поле ввода в тулбаре
  • Поиск по тексту задач и по номеру задачи
  • Опционально — поиск по текстам дополнительных параметров (переключается флажком)

Итоги

В числовых и денежных полях доступен вывод агрегатов отдельной строкой:

  • Сумма
  • Среднее
  • Минимальное значение
  • Максимальное значение

Настройка итогов выполняется администратором в параметрах категории.

Переключение между задачами

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

  • Стрелки в шапке задачи — «Предыдущая задача" / «Следующая задача". Кнопка неактивна, если достигнут край списка
  • Горячие клавиши:
  • macOS: Ctrl+Shift+J (следующая), Ctrl+Shift+K (предыдущая)
  • Windows: Alt+Shift+J (следующая), Alt+Shift+K (предыдущая)

Размер окна с открытой задачей можно изменить ползунком снизу или справа (зависит от настроек интерфейса).

Контекстное меню строки

ПКМ по строке открывает меню действий с задачей:

Фильтры по значению ячейки

Действие Описание
Фильтр по значению Отображает только строки с точным совпадением значения в выбранной колонке
Исключая значение Скрывает строки с точным совпадением
Содержит хотя бы одно значение Для ячеек с множественными значениями — строки, где минимум один элемент совпадает
Содержит и другие Для ячеек с множественными значениями — строки с точным совпадением и хотя бы одним дополнительным элементом
Не содержит ни один Для ячеек с множественными значениями — строки, где ни один элемент не совпадает

При выделении текста в ячейке в контекстном меню добавляются пункты «Фильтр по выделенному" и «Исключая выделенное".

Действия с задачей

Действие Описание
Открыть в новой вкладке Открывает карточку задачи в новой вкладке браузера
Добавить файл Доступно для колонок типа «Файл". Открывает диалог выбора файла для загрузки
Копировать Копирует текст ячейки в буфер обмена
Переход Совершение перехода по маршруту в один из доступных статусов
Добавить в избранное Добавляет задачу в избранное
Вложения Открывает вложения задачи в модальном окне
Пониженный / повышенный приоритет Изменяет приоритет задачи
Копировать задачу Создаёт копию задачи
Перенести Переносит задачу в другую категорию
Установить срок Изменяет срок задачи

Колонка «На подписи"

Системная колонка позволяет отфильтровать задачи на согласовании: значения «Да" (задачи с запрошенными подписями) и «Нет" (без подписей).

Отображение ограниченного доступа

Надпись «(нет доступа)" вместо значения параметра отображается, если у пользователя нет прав на просмотр этого параметра по матрице доступа категории.

Количество задач

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

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

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

Возврат к административно заданному виду по умолчанию выполняется через пункт «Вид по умолчанию" в списке действий. При этом сбрасываются сортировка, группировка, порядок и состав колонок.

Перекрёстные ссылки

  • ../categories/admin.md — настройки табличного вида категории, колонок, тулбара и матрицы доступа
  • ../smart-filters/business.md — ESQL-фильтры и смарт-фильтры
  • ../grids/backend.md — backend-архитектура pipeline фильтрации и сортировки
  • ../grids/frontend.md — frontend-компоненты ag-grid
  • ../grids/filters-reference.md — справочник типов фильтров

Ключевые контуры для обогащения

Контур Что фиксировать Ключевые темы
Категории Параметры категорий/подкатегорий и влияние на runtime-поведение Колонки, тулбар, вид по умолчанию, сброс настроек
Фильтры и поиск Ключевые правила и инварианты Типы фильтров, конструктор поиска, отборы
Прочее Ключевые правила для lookup-гридов и специализированных сценариев Настройки lookup-грида

Рекомендованный уровень детализации

  1. Фиксировать параметры и ограничения, которые непосредственно меняют runtime-поведение.
  2. Добавлять минимальные диагностические шаги (где смотреть и что проверить первым).
  3. Оставлять в документе сжатую выжимку, а детали хранить в специализированных доменных страницах.

Факты из первоисточников

  • Настройки на вкладке «Вид" категории управляют интерфейсом карточки задачи и списка задач.
  • Для выбора значения в ДП Lookup открывается окно со списком задач из определённой категории или сводного раздела.
  • Фильтры используются в виджетах, отчётах, планировщике, иерархии задач.

Настройка источника данных (Наборы полей)

Единый механизм для настройки отображаемых полей и источника данных. Доступен через кнопку «Наборы полей» (иконка) на панели инструментов в следующих местах: - Табличное представление списка задач категории (вкладка «Отбор»). - Страница «Ожидающие вашей подписи» → режим «Подзадачи». - Страница «Расширенный поиск».

Модальное окно «Настройка источника данных» содержит две вкладки:

Вкладка «Общие»

Параметр Описание
Тип источника данных Выбирается автоматически по контексту вызова. Возможные значения: Категория, Раздел, Мои задачи, Произвольный, Блок используется, Я заказчик, Я исполнитель, Просрочено, Индикатор, Lookup, Мои сотрудники, Произвольные источники данных, Расширенный поиск, Подписи, Просроченные подписи, Новые задачи, Задачи на сегодня, Задачи в работе, Просроченные задачи без исполнителя, Задачи замещаемого, Подчинённые-заказчики, Подчинённые-исполнители, Ожидающие подписи, Ресурсы, Сводный раздел, Ожидающие подписи — подзадачи.
Id источника данных Доступен для типов: Категория, Раздел, Lookup, Сводный раздел.
Пользовательский Только для администраторов. Если включён — настройка видна только текущему пользователю; если выключен — отображается всем пользователям.
Название Внутреннее название конфигурации (не отображается в UI).

Вкладка «Поля»

Список доступных параметров системы. Выбрать нужное поле → кнопка «Добавить» → поле становится доступным для отображения в интерфейсе.