<?php
$arItems = [];
$arAllLetters = [];
foreach ($arResult['rows'] as $arItem){
$s = substr($arItem['UF_NAME'], 0, 1);
$s = strtoupper($s);
if(mb_substr('щаз', 0, 1));{
if(!in_array($s,$arAllLetters['K']))
$arAllLetters['K'][] = $s;
}
if( preg_match("/[A-Za-z]/", $s) ){
if(!in_array($s,$arAllLetters['L']))
$arAllLetters['L'][] = $s;
}
if(is_numeric($s)){
$s = '0-9';
$arAllLetters['N'] = ['0-9'];
}
$arItems[$s][] = [
'NAME' => $arItem['UF_NAME'],
'CODE' => $arItem['UF_CODE']
];
}
$arResult['LETTERS'] = $arItems;
$arResult['ALL_LETTERS'] = $arAllLetters;
RewriteCond %{QUERY_STRING} ^ref=
RewriteRule ^.*$ https://papirus-store.ru/? [R=301,L]
$s = substr($arItem['UF_NAME'], 0, 1);
для русских буквы я заменил на
$s = substr($arItem['UF_NAME'], 0, 2);
и теперь отображается всё корректно. Очень странно, не знаете в чем была проблема? битрикс такой кривой или бд?