Предлагаемый вариант решения:
Функция ЗаменитьСимволы(Что,Где,НаЧто) Экспорт
Рез = Где;
Для Сч = 1 По СтрДлина(Что) Цикл
Рез = СтрЗаменить(Рез,Сред(Что,Сч,1),Сред(НаЧто,Сч,1));
КонецЦикла;
Возврат Рез;
КонецФункции
Функция Транслитерация(Слово, Направление)
Rus = "АаВЕеКкМНОоРрСсТуХхЗО1тиа@пь";
Eng = "AaBEeKkMHOoPpCcTyXx30imu@anb";
//Rus = "АаВЕеКкМНОоРрСсТуХхтипь"; // Если цифры в строке означают цифры
//Eng = "AaBEeKkMHOoPpCcTyXxmunb"; // Если цифры в строке означают цифры
Слово=ЗаменитьСимволы(?(Направление="Rus/Eng", Rus, Eng),Слово,?(Направление="Rus/Eng", Eng, Rus ));
Возврат Слово;
КонецФункции
Использование:
// Для приведения строки к латинским символам: СтрокаЛат = Транслитерация(СтрокаДляЗамены, "Rus/Eng"); // Для приведения строки к кириллическим символам: СтрокаКириллица = Транслитерация(СтрокаДляЗамены, ""); // во втором передаваемом параметре любая строка не равная "Rus/Eng"
Использовать можно для сопоставления номеров оплаченных счётов например...
PS: Если строка для замены может содержать цифры а не только буквы, то желательно соответствия букв и цифр типа (Зэ-3три, 1-i) убрать...