Имя: Пароль:
1C
1С v8
Замена символа текста в русской раскладке на символ текста в ангийской раскладке
0 Xsander
 
21.03.13
12:26
Требуется осуществлять поиск эл.справочника по ревизиту "СпецКод", который заполняют 1-2 сотрудника., пример кода - "Е1236ВС".

Так вот основная проблема в определении раскладки букв - английские бурвы выглядят как и русские, - как при вводе заменить буквы на соответствующие буквы в русской расскладке? Нет ли случаем готового решения (процедуры или функции) или только писать, что-то вроде:

Если НомерСимвола.КодСимвол=43 тогда символ заменит на "смвол по коду()"
1 acsent
 
21.03.13
12:28
Тут писанины на 5 мин
2 Лефмихалыч
 
21.03.13
12:28
стрзаменить()
3 acsent
 
21.03.13
12:29
хотя за 500 р сделаю
4 Волшебник
 
21.03.13
12:29
неужели среди 26 английских букв и 33 русских букв так сложно найти пересечения?

ABCDEFGHIJKLMNOPQRSTUVWXYZ
АВС Е  Н  К М ОР   Т   ХУ
5 Лефмихалыч
 
21.03.13
12:29
vbscripr.regexp::repalce
6 Волшебник
 
21.03.13
12:29

ABCDEFGHIJKLMNOPQRSTUVWXYZ
АВС Е  Н  К М ОР   Т   ХУ
7 MadHead
 
21.03.13
12:29
Вообще заменять лучше перед записью элемента справочника.
8 Xsander
 
21.03.13
12:41
1)Писать тут и впрямь быстро

4)не сложно - (5) - точно,можно и так

Вдруг есть оператор на такое дело - что то вроде ПолучитьРусскийсимволПокодуСимвола

7)спасибо

всем) спасибо, сейчас напишу и выложу код
9 Xsander
 
21.03.13
17:02
Функция ЗаменитьАнглийскиеБуквыНаРусские(Текст)
   
   Результат=СокрЛП(СтрЗаменить(Текст,Символ(99),Символ(1089)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(97),Символ(1072)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(111),Символ(1086)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(101),Символ(1077)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(120),Символ(1093)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(112),Символ(1088)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(121),Символ(1091)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(107),Символ(1082)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(98),Символ(1073)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(104),Символ(1085)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(109),Символ(1084)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(110),Символ(1085)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(116),Символ(1090)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(67),Символ(1057)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(65),Символ(1040)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(66),Символ(1042)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(79),Символ(1054)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(69),Символ(1045)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(88),Символ(1061)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(80),Символ(1056)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(84),Символ(1058)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(72),Символ(1053)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(77),Символ(1052)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(75),Символ(1050)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(89),Символ(1059)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(82),Символ(1071)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(85),Символ(1048)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(83),Символ(1057)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(68),Символ(1044)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(70),Символ(1060)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(71),Символ(1043)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(74),Символ(1046)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(76),Символ(1051)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(90),Символ(1047)));
   Результат=СокрЛП(СтрЗаменить(Результат,Символ(78),Символ(1048)));
   
   Возврат Текст;
   
КонецФункции
10 Mort
 
21.03.13
17:08
Ну по крайней мере пробелов справа и слева не будет 146%.
11 Sidney
 
21.03.13
17:23
(9)Если рассматривать твое решение:
На входе проверка на тип нужна - это раз. Вторая проверка - есть ли вообще в строке символы, третья есть ли среди них иностранные.
Это если в лоб первое приближение.
Затем замеряешь скорость. Если устраивает - оставляешь как есть, если нет - ищешь другое решение.
Закон Брукера: Даже маленькая практика стоит большой теории.