К содержанию
База знаний

Поиск, фильтрация, сортировка

Назначение

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

В операторском интерфейсе OCULUS подход к спискам сознательно другой — об этом в самом конце.

Кто работает с модулем

Все роли в веб-интерфейсе ежедневно работают с фильтрами, поиском и сортировкой. Это не отдельная «функция», а часть всех остальных модулей. Раздел нужен, чтобы клиент один раз прочёл и понял общую механику.

Глобальный поиск таблицы

В верхней части любой таблицы — единое поле поиска с иконкой увеличительного стекла. Особенности:

  • Ищет одновременно по всем видимым колонкам — не нужно выбирать «по какому полю». Это компромисс в пользу простоты.
  • Задержка ввода — система не отправляет запрос на каждой нажатой букве: после паузы примерно в треть секунды отправляет один запрос с полным текстом. Сеть не перегружается.
  • Очистка — крестик справа в поле, появляется как только что-то введено.
  • Запоминание — выбранный поисковый запрос сохраняется в адресе страницы; можно скопировать ссылку с уже отфильтрованным списком и отправить коллеге.

Конкретный набор полей, по которым ищет глобальный поиск, определяется бэкендом каждого раздела (например, в заданиях он смотрит на номенклатуру и идентификатор; в сотрудниках — на ФИО, логин, цех, роль).

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

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

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

Активные фильтры показаны чипами над таблицей — каждый с возможностью убрать одним кликом крестика. Кнопка «Очистить всё» в шапке снимает все фильтры разом.

Множественные значения в одном фильтре

Поля «выпадающий список» и «справочник» поддерживают выбор нескольких значений сразу. В чипе видно одно из:

  • При одном выбранном — само значение: «Литейка».
  • При нескольких — счётчик: «3 выбрано».

Это позволяет, например, посмотреть задания «на машинах А, Б и В» одной выборкой, не делая трёх отдельных проходов.

Числовые и временные диапазоны

Числовой фильтр предлагает выбрать оператор и значение:

  • «Равно», «не равно», «больше», «больше или равно», «меньше», «меньше или равно», «между» — для одного значения.
  • «Между» с двумя значениями — диапазон от/до. Обе границы включены.

Временные диапазоны (длительность):

  • Удобно искать «время выполнения от 30 до 60 минут» или «простой более 15 минут».
  • Ввод в часах и минутах, без необходимости переводить в секунды.

Диапазоны дат (даты создания, начала, завершения):

  • Календарь с выбором двух точек.
  • Операторы «В период», «После», «До», «В конкретный день».
  • Если поле — дата со временем, диапазон автоматически расширяется до «начало дня — конец дня» включительно.

Поиск по справочнику (entity-фильтры)

Когда фильтр работает по сотруднику, машине, цеху или номенклатуре, выпадающий список превращается в поиск с автодополнением:

  • Начинаете вводить — список сужается.
  • Под названием каждой записи в списке часто подписаны вторичные значения (например, для цеха — «12 единиц оборудования, 50 рабочих»; для машины — её цех и тип).
  • Можно выбрать несколько значений одновременно — компонент рассчитан на множественную выборку.
  • Выбранные значения отображаются чипами внутри фильтра, удаляются крестиком.

Этот же компонент используется и в формах создания (задание, смена, перенос между цехами) — пользователь не учит новый интерфейс для каждой страницы.

Сортировка

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

Пагинация

  • Пагинация — серверная: страница загружается порциями по выбранному размеру.
  • Размер страницы — 10, 25, 50 или 100 записей. По умолчанию 25.
  • Внизу таблицы — навигация: «Предыдущая», «Следующая», номер текущей страницы и общее количество, прямой переход на конкретный номер.
  • При смене размера страницы текущая позиция пересчитывается, чтобы пользователь не «выпал» на пустой экран.
  • Информация о количестве записей в виде «1–25 из 523» — сразу понятно, где находишься.

Сохранение фильтров

  • Между переходами на другие разделы фильтры намеренно не сохраняются — на каждой странице пользователь стартует с чистого состояния. Это исключает «случайно унаследованный» фильтр, который вводит в заблуждение.
  • В адресе страницы фильтры и сортировка кодируются автоматически. Можно скопировать ссылку из адресной строки, отправить коллеге — у него откроется тот же отфильтрованный вид.
  • Кнопки «Назад» и «Вперёд» в браузере работают корректно: история фильтров сохраняется в навигации, можно вернуться к предыдущему набору.
  • Сохранённые наборы фильтров доступны на тех таблицах, где включены: пользователь сохраняет текущий набор под именем («Мои задания», «Брак за неделю»), потом одной кнопкой загружает.

Микро-фичи и детали интерфейса

  • Фильтр по колонке открывается отдельным окошком рядом с колонкой — таблица видна целиком, а не «съёжена» под виджет.
  • Активные фильтры — чипы над таблицей; каждый можно снять отдельно крестиком, или все разом кнопкой «Очистить».
  • Тип фильтра подбирается автоматически: для числовой колонки — операторы и поля, для даты — календарь. Пользователь не выбирает «вид фильтра», система решает за него.
  • Поле глобального поиска ищет одновременно по всем видимым колонкам — нет необходимости выбирать «по чему искать».
  • Задержка ввода в поиске экономит трафик и не перегружает сервер «по букве на удар».
  • Множественный выбор сворачивается в «N выбрано», когда выборок становится больше одной — таблица не «съезжает» от длинного списка чипов.
  • Под каждым справочным значением в выпадающем списке подписаны вторичные данные (цех — со счётчиком оборудования и сотрудников, машина — с цехом) — выбор сразу с контекстом.
  • Календарь дат принимает форматы как 2026-05-06, так и 06.05.2026 — пользователь не угадывает «правильный».
  • Диапазоны числа имеют отдельный вариант «между» с двумя полями: «от 30 до 60». Понятно для нетехнического пользователя.
  • В адресной строке отражается состояние таблицы: фильтры, поиск, сортировка, страница. Ссылка работает как закладка на конкретный вид данных.
  • На небольших экранах (планшет, узкое окно) таблица автоматически переключается в режим карточек — каждая запись отдельной карточкой с ключевыми полями. Фильтры остаются доступны.
  • Экспорт списка идёт с применёнными фильтрами и сортировкой — то, что видишь в интерфейсе, попадает в файл. Не нужно дополнительно повторять условия.
  • Пустой результат сопровождается явным сообщением «нет данных по текущим фильтрам» с кнопкой «Очистить» — пользователь не «гадает», почему таблица пуста.
  • Сортировка и пагинация работают через сервер — в большой таблице (десятки тысяч записей) интерфейс не подвисает, даже если страница «глубокая».

Связи с другими модулями

  • Все табличные разделы используют одни и те же приёмы: задания (06), смены (07), простои (08), машины (09), пользователи (03), номенклатура (04), спецификации (05), расчётные периоды зарплаты (11), журнал аудита (14), обращения (20).
  • Аналитика (12) использует множественный выбор цехов в качестве глобального фильтра — это тот же entity-компонент, что и в других таблицах.
  • Импорт и экспорт (18) опирается на текущие фильтры и сортировку: пользователь готовит нужный срез в интерфейсе и экспортирует его одной кнопкой.

Состояния и пограничные случаи

  • Пустой результат. Таблица показывает явное сообщение «Нет данных по текущим фильтрам» с подсказкой «Очистить фильтры» или «Изменить условия». Пользователь не остаётся «у пустой страницы».
  • Конфликтующие фильтры. Если выбрано «Статус: завершено» и «Завершено: пусто» — таблица будет пустой, но это легитимная комбинация. Сообщение помогает понять, что фильтр сужен слишком сильно.
  • Неверный формат ввода. Числовые поля принимают только числа; календарь не позволяет выбрать несуществующую дату; справочник показывает только реально существующие записи.
  • Большое количество значений в справочнике. Поиск с автодополнением подгружает порции по мере ввода — список не «загружается весь сразу», даже если в нём тысячи записей.
  • Очень глубокая страница пагинации (например, 50-я). Технически разрешена; на практике пользователю проще применить фильтр и сократить выборку.
  • Сохранённый адрес со старым фильтром. Если значение в справочнике было удалено (например, машина), фильтр игнорируется при загрузке, и таблица показывает все записи. Пользователь видит, что одного из чипов нет — и при необходимости перевыбирает.
  • Параллельная работа двух пользователей с одной таблицей. Каждый видит свои фильтры. Изменения данных другого пользователя подхватываются при следующей загрузке (или сразу, если в системе включено реалтайм-обновление этой таблицы).

Операторский интерфейс OCULUS

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

  • Карточки вместо таблиц. Список заданий или обращений — это вертикальная лента карточек с крупными заголовками и ключевыми статусами. Удобно листать пальцем, в перчатках, в неярком освещении цеха.
  • QR-сканирование вместо фильтров. Главный способ найти нужное задание или машину — сканировать QR-код. Один касание камеры заменяет несколько фильтров в таблице.
  • Минимальные фильтры. Доступны только базовые: статус («Активные / Завершённые»), машина текущего рабочего места, простые состояния. Сложные диапазоны дат, числовые операторы, множественный выбор — намеренно не вынесены в OCULUS.
  • Поиск по короткому коду. Ввод идентификатора задания или машины («JOB-00231», «MCH-12») возвращает прямой результат.
  • Без сортировки и без пагинации. Список — короткий, отфильтрован под оператора по умолчанию, прокрутка непрерывная.

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

На этой странице