Как сделать сортировку по стрелкам в компоненте main.ui.grid?

В компоненте main.ui.grid, который используется для отображения списка элементов на странице в Битрикс24, сортировка по стрелкам можно реализовать следующим образом:

1. Определите параметр сортировки и направление сортировки.
В файле ".parameters.php" вашего компонента добавьте следующие параметры:

$arComponentParameters = array(
   // ...
   "PARAMETERS" => array(
      // ...
      "SORT_FIELD" => array(
         "PARENT" => "BASE",
         "NAME" => GetMessage("SORT_FIELD"),
         "TYPE" => "LIST",
         "VALUES" => array(
            "ID" => GetMessage("SORT_FIELD_ID"),
            "NAME" => GetMessage("SORT_FIELD_NAME"),
            // добавьте другие поля сортировки, если нужно
         ),
         "DEFAULT" => "ID",
         "REFRESH" => "Y",
      ),
      "SORT_ORDER" => array(
         "PARENT" => "BASE",
         "NAME" => GetMessage("SORT_ORDER"),
         "TYPE" => "LIST",
         "VALUES" => array(
            "ASC" => GetMessage("SORT_ORDER_ASC"),
            "DESC" => GetMessage("SORT_ORDER_DESC"),
         ),
         "DEFAULT" => "ASC",
      ),
      // ...
   ),
   // ...
);

2. Примените сортировку в методе executeComponent().
В файле ".class.php" вашего компонента в методе executeComponent() добавьте следующий код:

// Получение параметров сортировки из компонента
$sortField = $arParams["SORT_FIELD"];
$sortOrder = $arParams["SORT_ORDER"];

// Получение текущего запроса и применение сортировки
$request = BitrixMainContext::getCurrent()->getRequest();
$listParams = $request->getQueryList()->toArray();
$gridOptions = new CGridOptions($arParams["GRID_ID"]);
$gridOptions->SetFilterSettings($arParams["FILTER_ID"], $listParams["apply_filter"]);

$gridSort = $gridOptions->GetSorting(array("sort" => array($sortField => $sortOrder)));
$queryParams = $gridSort["sort"];

$query = new BitrixMainEntityQuery($arParams["ENTITY"]);
$query->setSelect($arParams["SELECT"]);

// Проверка наличия сортировки в запросе
if (!empty($queryParams)) {
   $query->setOrder($queryParams);
}

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

// Выполнение запроса к базе данных
$result = $query->exec();

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

// Вывод результата компонента
$this->arResult["ITEMS"] = $itemList;
$this->IncludeComponentTemplate();

3. Выведите элементы списка на странице.
В файле "template.php" вашего компонента добавьте вывод элементов списка. Вывод можно организовать с помощью цикла или других методов, в зависимости от вашей реализации.

<?php foreach ($arResult["ITEMS"] as $item): ?>
   <div>
      <?php echo $item["NAME"]; ?>
   </div>
<?php endforeach; ?>

В результате этих шагов, в компоненте main.ui.grid будет реализована сортировка по стрелкам. Пользователь будет иметь возможность выбрать поле для сортировки и направление сортировки с помощью соответствующих параметров, а элементы списка будут отображаться в соответствии с выбранной сортировкой.