В Bitrix для использования функции поиска и смены раскладки можно воспользоваться методом `CSearch::ConvertKeyboardLayout($str)`. Он преобразует переданную строку `$str` в транслит или изменяет раскладку на латиницу в соответствии с текущей настройкой.
Чтобы добавить исключения в поиск Bitrix и избежать смены раскладки для слова "КЭН", вам необходимо изменить файл `/bitrix/modules/search/classes/mysql/mysql.php`. В нем найдите функцию `function SetMatchQuery`, и перед условием `$sQuery .= "AND ";`, добавьте проверку на исключение:
```php
if (ToLower($word) === "кэн") {
// Пропустить проверку и добавить слово в запрос без изменения
continue;
}
```
В итоге, ваш код должен выглядеть примерно так:
```php
protected function SetMatchQuery($sQuery, $sWords, &$arSql, &$bIncSites)
{
...
foreach ($arWords as $mkey => $text)
{
if(strlen($text)>0)
{
$wordInLowerCase = ToLower($text);
// Проверка на исключение
if ($wordInLowerCase === "кэн") {
// Пропустить проверку и добавить слово в запрос без изменения
continue;
}
// Другой код обработки слов
...
}
}
...
}
```
После внесения этих изменений, слово "КЭН" будет добавлено в поиск без изменения раскладки, и функция смены раскладки будет сохранена для других слов.
Обратите внимание, что данное решение является неподдерживаемым изменением ядра Bitrix и может быть затерто при обновлении системы. Поэтому, перед внесением изменений, рекомендуется создать копию файла и делать все изменения на свой страх и риск.