Имя: Пароль:
1C
 
Как реализовать транслитерацию текстового поля в 1С7.7
Ø
0 FatMan
 
27.09.05
12:13
Собственно делал-ли кто-нибудь такое. Есть-ли dll для 1С, реализующих это?
1 Uho
 
27.09.05
12:14
а чего сложного то?
2 FatMan
 
27.09.05
12:21
Функция ЗаменитьНаТранслит(Им)
  Имя = Им;
  Имя = СтрЗаменить(Имя,"а","a");
  Имя = СтрЗаменить(Имя,"б","b");
  Имя = СтрЗаменить(Имя,"в","v");
  Имя = СтрЗаменить(Имя,"г","g");
  Имя = СтрЗаменить(Имя,"д","d");
  Имя = СтрЗаменить(Имя,"е","e");
  Имя = СтрЗаменить(Имя,"ж","zh");
  Имя = СтрЗаменить(Имя,"з","z");
  Имя = СтрЗаменить(Имя,"и","i");
  Имя = СтрЗаменить(Имя,"й","y");
  Имя = СтрЗаменить(Имя,"к","k");
  Имя = СтрЗаменить(Имя,"л","l");
  Имя = СтрЗаменить(Имя,"м","m");
  Имя = СтрЗаменить(Имя,"н","n");
  Имя = СтрЗаменить(Имя,"о","o");
  Имя = СтрЗаменить(Имя,"п","p");
  Имя = СтрЗаменить(Имя,"р","r");
  Имя = СтрЗаменить(Имя,"с","s");
  Имя = СтрЗаменить(Имя,"т","t");
  Имя = СтрЗаменить(Имя,"у","u");
  Имя = СтрЗаменить(Имя,"ф","f");
  Имя = СтрЗаменить(Имя,"х","h");
  Имя = СтрЗаменить(Имя,"ц","z");
  Имя = СтрЗаменить(Имя,"ч","ch");
  Имя = СтрЗаменить(Имя,"ш","sh");
  Имя = СтрЗаменить(Имя,"щ","sch");
  Имя = СтрЗаменить(Имя,"ъ","");
  Имя = СтрЗаменить(Имя,"ы","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");
  Имя = СтрЗаменить(Имя,"Х","H");
  Имя = СтрЗаменить(Имя,"Ц","Z");
  Имя = СтрЗаменить(Имя,"Ч","CH");
  Имя = СтрЗаменить(Имя,"Ш","SH");
  Имя = СтрЗаменить(Имя,"Щ","SCH");
  Имя = СтрЗаменить(Имя,"Ъ","");
  Имя = СтрЗаменить(Имя,"Ы","Y");
  Имя = СтрЗаменить(Имя,"Ь","");
  Имя = СтрЗаменить(Имя,"Э","E");
  Имя = СтрЗаменить(Имя,"Ю","YU");
  Имя = СтрЗаменить(Имя,"Я","YA");
  Возврат Имя;
КонецФункции
Спасибо (1). Простимулировал к написанию этого кода. :)
3 Uho
 
27.09.05
12:27
Сократить можно почти в два раза - зачем верхний и нижний регистр отдельно?
а можно вообще через две "строки с разделителями"
4 Uho
 
27.09.05
12:37
Функция Транслит(буква)
  стрРус="а б в г д е ё ж з и ...";
  стрТранслит="a b v g d e yo zh z i ...";
  Возврат СокрЛП(Сред(стрТранслит,Найти(стрРус,буква),3));
КонецФункции
главное с пробелами не ошибиться
5 Mikeware
 
27.09.05
15:23
А обратно? Не сочтите за лень. Тут уже немного посложнее...
Брал где-то, но оставил на стаорй работе
6 Uho
 
27.09.05
15:37
(5) и обратно также, как в (4), добавь параметр в вызов функции (хотя можно и без параметра...