Поменять все коды на нижний регистр в инфоблоке (для сео)

Код простой, но часто спрашивают, лень писать заново по 100 раз
запускаем несколько раз, меняя iNumPage (1,2,3 и тд)
\Bitrix\Main\Loader::includeModule("iblock");
$arFilter = Array(
    "IBLOCK_ID"=>158,
);
$arSelect = Array("ID", "NAME", "CODE");
$res = CIBlockElement::GetList(Array("id"=>"asc"), $arFilter, false, Array("nPageSize"=>100,"iNumPage"=>1), $arSelect);
$el = new CIBlockElement;
while($arItem = $res->Fetch()){
    //echo $arItem["ID"]. " ";
    if(!empty($arItem["CODE"])){
        $code = strtolower($arItem["CODE"]);
        if($code != $arItem["CODE"]){
            $el->Update($arItem["ID"], ["CODE"=>$code]);
        }
    }
}