Совет 1: При сортировке данных вам нужно использовать две части - визуальное отображение (стрелочки и т.п.) и фактическую сортировку данных.
Совет 2: Чтобы узнать, как происходит сортировка данных на странице, обратите внимание на фрагмент кода: `$sort = $grid_options->GetSorting(['sort' => ['ID' => 'DESC'], 'vars' => ['by' => 'by', 'order' => 'order']]);` Вы можете добавить дебаг для переменной `$sort` и увидеть, как она меняется при обновлении страницы или щелчке по столбцам. Обратите внимание, что в массиве `$sort['sort']` содержится информация о выбранном столбце и направлении сортировки (ASC/DESC), основанная на значениях HEADERS (COLUMNS).
Совет 3: При использовании метода `\CIBlockElement::GetList` первым параметром нужно указать массив для сортировки результатов. В вашем случае фиксированный параметр - сортировка по возрастанию ID: `$res = \CIBlockElement::GetList(array("ID"=>"ASC"), $filterD, false, $nav_params);`.
Совет 4: Если вы хотите изменить этот фиксированный параметр на выбранный набор значений из `$sort`, ваш код должен выглядеть следующим образом: `$res = \CIBlockElement::GetList($sort['sort'], $filterD, false, $nav_params);`.