Иногда (особенно при обмене с внешними системами) требуется перекодировка "с сохранением читаемости", т.е. Ń, Ņ и Ň должны быть перекодированы в N.
Простая функция, на сервере Xeon 3.5ГГц x64 на строке 25 символов (из них 10 - перекодируемые) работает примерно 10 мс.
Можно модифицировать транслитерируемые символы, добавляя их в строки Юни и Аск.
В коде приведена половина набора Latin-1 Supplement (U+00C0 ... U+00FF). Более полные строки (то же + Latin Extended A + Latin Extended B U+00C0 ... U+024F) - в приложенном файле.
Имейте в виду, что стандартный редактор 1С символы со U+0181 по U+0189 криво показывает ("лепит" в одно место), но копируются и работают они корректно.
Использована таблица Unicode отсюда.
Функция ЮниВАски(Строка) // 0,008 сек
Юни = "ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ";
Аск = "AAAAAA?CEEEEIIII?NOOOOO*OUUUUY??aaaaaa?ceeeeiiii?nooooo?ouuuuy?y";
НоваяСтрока = "";
Для к = 1 по СтрДлина(Строка) Цикл
Символ = Сред(Строка, к, 1);
Если КодСимвола(Символ) >= 192 и КодСимвола(Символ) <= 591 Тогда
Позиция = СтрНайти(Юни, Символ);
Если Позиция > 0 Тогда
Символ = Сред(Аск, Позиция, 1);
Иначе
Символ = "?";
КонецЕсли;
КонецЕсли;
НоваяСтрока = НоваяСтрока + Символ;
КонецЦикла;
Возврат НоваяСтрока;
КонецФункции