Версия источника: 613500afd8eca5143b4094f6f5cd48e67844f8ff
Синхронизировано: 2026-11-11T03:48:23.836Z
Источник: https://github.com/sergey-from-riders/vibecoding-base/tree/613500afd8eca5143b4094f6f5cd48e67844f8ff

<a id="interface-table-sorting"></a>

# Сортировка таблиц

## Коротко

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

## Плохо

```text
На экране 50 из 2000 товаров.
Цена сортируется как текст: 100, 20, 3.
Остальные страницы остаются в старом порядке.
```

## Хорошо

```text
Сервер сортирует все 2000 товаров: 3, 20, 100.
Пустая цена последняя в обоих направлениях.
При равной цене порядок уточняет id.
```

## Почему

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

## Когда применять

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

## Как проверить

- Проверьте оба направления, пустые значения и одинаковые цены.
- Сопоставьте первую и следующую порции.

## Человек

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

## Агент

Реализует типизированную серверную сортировку и проверяет границы страниц.

## Пример применения

SQL-пример для одного валютного набора: ORDER BY amount_minor ASC NULLS LAST, id ASC. Заголовок показывает направление и передаёт его через aria-sort.

## Источники

- [Carbon Design System: Data table](https://www.carbondesignsystem.com/building-blocks/core/components/data-table/guidelines)
- [Paginate results | OpenSearch Documentation](https://docs.opensearch.org/latest/search-plugins/searching-data/paginate/)

Уровень: Обязательно. Опубликовано: 2026-11-11. Проверено: 2026-11-11. Изменено: 2026-11-11.

[Исходный файл](https://github.com/sergey-from-riders/vibecoding-base/blob/613500afd8eca5143b4094f6f5cd48e67844f8ff/registry/standards/ui/admin-interface/rules/table-sorting.md)
