Для того чтобы отсортировать пункты меню по их ID, вам потребуется внести изменения в код компонента ".top.menu_ext". Ниже приведен пример, как это можно сделать:
1. Откройте файл "/bitrix/components/bitrix/menu/templates/.default/template.php" и найдите строку, отвечающую за вывод пунктов меню:
```php
foreach($arResult as $arItem) {
// Вывод пунктов меню
}
```
2. Замените эту строку следующим кодом:
```php
usort($arResult, function($a, $b){
return ($a['PARAMS']['ID'] < $b['PARAMS']['ID']) ? -1 : 1;
});
foreach($arResult as $arItem) {
// Вывод пунктов меню
}
```
3. В этом коде мы используем функцию `usort()`, которая сортирует массив `$arResult` с помощью анонимной функции. Внутри этой функции мы сравниваем значения параметра "ID" каждого пункта меню, чтобы определить, какой должен идти раньше.
4. После внесения этих изменений, сохраните файл и обновите страницу, чтобы увидеть результат.
Обратите внимание, что данное решение предполагает, что параметр "ID" для каждого пункта меню правильно указан в вашем инфоблоке. Если значения параметров "ID" некорректны, сортировка может работать неправильно.