Для одного из банков при заказе карточек понадобилось транслитерировать имя и фамилию работника.
Пришлось написать простенькую функцию.
Пришлось написать простенькую функцию.
Для одного из банков при заказе карточек потребовалось указать транслитерированные имя и фамилию работников.
Пришлось провести исследования и написать простенькую функцию транслитерации почти 🙂 по стандарту ISO-R9-1968
Функция ЗаменитьОдниСимволыДругими(Что,Где,НаЧто) Экспорт
Рез = Где;
Для Сч = 1 По СтрДлина(Что) Цикл
Рез = СтрЗаменить(Рез,Сред(Что,Сч,1),Сред(НаЧто,Сч,1));
КонецЦикла;
Возврат Рез;
КонецФункции //ЗаменитьОдниСимволыДругими
Функция ТрЛит(Знач Слово)
Слово = ВРег(Слово);
Слово = ?(Лев(Слово,1) = "Е","YE"+Сред(Слово,2),Слово);
Слово=СтрЗаменить(Слово,"АЕ","AYE");
Слово=СтрЗаменить(Слово,"ЕЕ","EYE");
Пока Найти(Слово,"EЕ") > 0 Цикл
Слово = СтрЗаменить(Слово,"EЕ","EYE");
КонецЦикла;
Слово=СтрЗаменить(Слово,"ЕЁ","YEYO");
Слово=СтрЗаменить(Слово,"ЁЕ","YOYE");
Слово=СтрЗаменить(Слово,"ИЕ","IYE");
Слово=СтрЗаменить(Слово,"ОЕ","OYE");
Слово=СтрЗаменить(Слово,"УЕ","UYE");
Слово=СтрЗаменить(Слово,"ЫЕ","YYE");
Слово=СтрЗаменить(Слово,"ЭЕ","EYE");
Слово=СтрЗаменить(Слово,"ЮЕ","YUYE");
Слово=СтрЗаменить(Слово,"ЯЕ","YAYE");
Слово=СтрЗаменить(Слово,"ЬЕ","YE");
Слово=СтрЗаменить(Слово,"ЪЕ","YE");
Слово=СтрЗаменить(Слово,"Ё","YO");
Слово=СтрЗаменить(Слово,"Ж","ZH");
Слово=СтрЗаменить(Слово,"Х","KH");
Слово=СтрЗаменить(Слово,"Ц","TS");
Слово=СтрЗаменить(Слово,"Ч","CH");
Слово=СтрЗаменить(Слово,"Ш","SH");
Слово=СтрЗаменить(Слово,"Щ","CHSH");
Слово=СтрЗаменить(Слово,"Ъ","");
Слово=СтрЗаменить(Слово,"Ь","");
Слово=СтрЗаменить(Слово,"Ю","YU");
Слово=СтрЗаменить(Слово,"Я","YA");
Слово=ЗаменитьОдниСимволыДругими("АБВГДЕЗИЙКЛМНОПРСТУФЫЭ",Слово,"ABVGDEZIJKLMNOPRSTUFYE");
Возврат Слово;
КонецФункции
Пример использования функции приведен в прилагаемой обработке.
Для одного из банков при заказе карточек понадобилось транслитерировать имя и фамилию работника.
Пришлось написать простенькую функцию.
Перейти к публикации
Прикольно. Все простое гениально.
Функция задумывалась и была написана в расчете на пословное транслитерирование. Но, если после строки
Слово = ?(Лев(Слово,1) = «Е»,»YE»+Сред(Слово,2),Слово);
вставить
Слово = СтрЗаменить(Слово,» Е»,» YE»+Сред(Слово,2),Слово);
то получим функцию для многословных конструкций. А если еще вставить и строку
Слово = СтрЗаменить(Слово,»-Е»,»-YE»+Сред(Слово,2),Слово);
то и для составных фамилий.
Спасибо большое! Мне очень пригодится для передачи в банк данных о сотрудниках. Обязательно воспользуюсь. Предстоит переход из семерки на восьмерку.
Спасибо вам. Следует также заметить, что для получения титульного регистра
ARISTARKH ZMEYEYEDOV
Aristarkh Zmeyeyedov
можно воспользоваться встроенной функцией ТРег.
Для любителей копипастить я бы добавил нижний регистр
Показать