Функция Транслит(Вход) Коды = Новый Соответствие; Коды.Вставить("ё","yo"); Коды.Вставить("Ё","Yo"); Нач = КодСимвола("А"); Англ = "A" "B" "V" "G" "D" "E" "Zh" "Z" "I" "Y" "K" "L" "M" "N" "O" "P" "R" "S" "T" "U" "F" "Kh" "Ts" "Ch" "Sh" "Shch" "" "Y" "" "E" "Yu" "Ya" "a" "b" "v" "g" "d" "e" "zh" "z" "i" "y" "k" "l" "m" "n" "o" "p" "r" "s" "t" "u" "f" "kh" "ts" "ch" "sh" "shch" "" "y" "" "e" "yu" "ya"; Для К = Нач по КодСимвола("я") Цикл Коды.Вставить(Символ(К), СтрПолучитьСтроку(Англ, К - Нач + 1)); КонецЦикла; Выход = ""; Для К=1 по СтрДлина(Вход) Цикл Бкв = Сред(Вход,К,1); Зн = Коды.Получить(Бкв); Выход = Выход + ?(Зн = Неопределено, Бкв, Зн); КонецЦикла; Возврат Выход; КонецФункции
Функция ПолучитьСтрокуНаЛатинском(ИсходныйТекст) СоответствиеСимволов = Новый Соответствие; СоответствиеСимволов.Вставить("А", "A"); СоответствиеСимволов.Вставить("Б", "B"); СоответствиеСимволов.Вставить("В", "V"); СоответствиеСимволов.Вставить("Г", "G"); СоответствиеСимволов.Вставить("Д", "D"); СоответствиеСимволов.Вставить("Е", "E"); СоответствиеСимволов.Вставить("Ё", "E"); СоответствиеСимволов.Вставить("Ж", "ZH"); СоответствиеСимволов.Вставить("З", "Z"); СоответствиеСимволов.Вставить("И", "I"); СоответствиеСимволов.Вставить("Й", "Y"); СоответствиеСимволов.Вставить("К", "K"); СоответствиеСимволов.Вставить("Л", "L"); СоответствиеСимволов.Вставить("М", "M"); СоответствиеСимволов.Вставить("Н", "N"); СоответствиеСимволов.Вставить("О", "O"); СоответствиеСимволов.Вставить("П", "P"); СоответствиеСимволов.Вставить("Р", "R"); СоответствиеСимволов.Вставить("С", "S"); СоответствиеСимволов.Вставить("Т", "T"); СоответствиеСимволов.Вставить("У", "U"); СоответствиеСимволов.Вставить("Ф", "F"); СоответствиеСимволов.Вставить("Х", "KH"); СоответствиеСимволов.Вставить("Ц", "TS"); СоответствиеСимволов.Вставить("Ч", "CH"); СоответствиеСимволов.Вставить("Ш", "SH"); СоответствиеСимволов.Вставить("Щ", "SHCH"); СоответствиеСимволов.Вставить("Ъ", ""); СоответствиеСимволов.Вставить("Ы", "Y"); СоответствиеСимволов.Вставить("Ь", ""); СоответствиеСимволов.Вставить("Э", "E"); СоответствиеСимволов.Вставить("Ю", "YU"); СоответствиеСимволов.Вставить("Я", "YA"); ИсходныйТекст = СокрЛП(ВРег(ИсходныйТекст)); ГотовоеЗначение = ""; ТекущийСимвол = ""; ТекущийГотовыйСимвол = ""; Для к = 1 по СтрДлина(ИсходныйТекст) Цикл ТекущийСимвол = Сред(ИсходныйТекст, к, 1); ТекущийГотовыйСимвол = СоответствиеСимволов.Получить(ТекущийСимвол); Если ТекущийГотовыйСимвол = Неопределено Тогда ГотовоеЗначение = ГотовоеЗначение + ТекущийСимвол; Иначе ГотовоеЗначение = ГотовоеЗначение + ТекущийГотовыйСимвол; КонецЕсли; КонецЦикла; Возврат ГотовоеЗначение; КонецФункции //Использование: Сообщить(ПолучитьСтрокуНаЛатинском("Забарчук Юлия")); //Выведет: ZABARCHUK YULIYA