Простенькая транслитерация

03.08.12

Разработка - Универсальные функции

Для одного из банков при заказе карточек понадобилось транслитерировать имя и фамилию работника.
Пришлось написать простенькую функцию.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Тест функции транслитерации имен и фамилий
.epf 8,49Kb
31 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Для одного из банков при заказе карточек потребовалось указать транслитерированные имя и фамилию работников.

Пришлось провести исследования и написать простенькую функцию транслитерации почти :) по стандарту 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");
    Возврат Слово;
КонецФункции



Пример использования функции приведен в прилагаемой обработке.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

SALE! %

Мастера заполнения Поиск данных База данных Инструментарий разработчика Корректировка данных Универсальные функции Механизмы платформы 1С Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

5000 4000 руб.

25.02.2026    1241    9    1    

11

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    4256    Abysswalker    11    

46

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

Порой необходимо временно отключить расширение 1С, не удаляя его, чтобы не потерять данные. Но в этом случае при каждом запуске всем будет лезть уведомление о неактивном расширении, хотя очевидно, это техническая информация, которой не стоит лишний раз пугать пользователей.

14.05.2025    7889    DeerCven    15    

62

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    53497    dimanich70    84    

174

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7729    7    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    68086    atdonya    31    

72

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    9689    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
0. lock73 107 03.08.12 11:27 Сейчас в теме
Для одного из банков при заказе карточек понадобилось транслитерировать имя и фамилию работника.
Пришлось написать простенькую функцию.


Перейти к публикации

1. no_registration 03.08.12 17:07 Сейчас в теме
Прикольно. Все простое гениально.
2. lock73 107 06.08.12 07:24 Сейчас в теме
Функция задумывалась и была написана в расчете на пословное транслитерирование. Но, если после строки
Слово = ?(Лев(Слово,1) = "Е","YE"+Сред(Слово,2),Слово);
вставить
Слово = СтрЗаменить(Слово," Е"," YE"+Сред(Слово,2),Слово);
то получим функцию для многословных конструкций. А если еще вставить и строку
Слово = СтрЗаменить(Слово,"-Е","-YE"+Сред(Слово,2),Слово);
то и для составных фамилий.
3. NPMar 08.08.12 11:51 Сейчас в теме
Спасибо большое! Мне очень пригодится для передачи в банк данных о сотрудниках. Обязательно воспользуюсь. Предстоит переход из семерки на восьмерку.
4. quebracho 22 13.12.12 09:09 Сейчас в теме
Спасибо вам. Следует также заметить, что для получения титульного регистра
ARISTARKH ZMEYEYEDOV
Aristarkh Zmeyeyedov
можно воспользоваться встроенной функцией ТРег.
prodines; +1 Ответить
5. capitan 2564 27.03.15 16:28 Сейчас в теме
Для любителей копипастить я бы добавил нижний регистр

Функция фТранслит(Знач Слово)
	//по стандарту ISO-R9-1968
	Слово = ?(Лев(Слово,1) = "Е","YE"+Сред(Слово,2),Слово);
	Слово = ?(Лев(Слово,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");
	Слово=СтрЗаменить(Слово,"АЕ","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");
	Возврат Слово;
КонецФункции
Показать
6. aleksejafonkin 07.11.22 16:51 Сейчас в теме
БСП. использовал в ЗУПе
СтроковыеФункцииКлиент.СтрокаЛатиницей(ФизическоеЛицо.ФИО)
Для отправки сообщения требуется регистрация/авторизация