IE2017

Функция транслит в 1с

Программирование - Практика программирования

Данная обработка формирует транслит в 1с 8

Случилось так, что нужно формировать смс на транслите для этого написал данную функцию

Sluchilos tak, chto nuzhno formirovat sms na translite dlya etogo napisal dannuyu funktsiyu

 

 

Скачать файлы

Наименование Файл Версия Размер
Обработка транслит 1с 8
.epf 6,87Kb
17.10.11
180
.epf 6,87Kb 180 Скачать

См. также

Комментарии
1. Дмитрий Колесников (EastGuy) 52 17.10.11 13:13 Сейчас в теме
Какая применяется таблица перевода символов?
2. Dmitry Semenov (dima1c) 22 17.10.11 14:24 Сейчас в теме
3. Галя (galyausik1) 19.10.11 10:32 Сейчас в теме
4. Александр Притуленко (evrakylon) 19.10.11 15:32 Сейчас в теме
Видел функцию транслитерации в рарусовском "Магазине автозапчастей"
5. Dmitry Semenov (dima1c) 22 19.10.11 17:38 Сейчас в теме
(4) evrakylon, эту сам писал... Конфу эту в глаза не видел;)
6. Виталий Фантич (Boudybuilder) 53 02.12.11 23:11 Сейчас в теме
Полезная обработка!
Спасибо за старания.
Класная и простая!
7. Осипов Сергей (fixin) 3570 04.04.12 11:05 Сейчас в теме
зря писал. у Гения 1с в библиотеке функций давно написана.
8. Sergey (zsrg) 283 07.07.12 19:27 Сейчас в теме
(2) dima1c,
Слегка изменил Вашу функции до одной, убрал лишнюю операцию разложения строки:
Функция Транслит(Вход) 
	Коды = Новый Соответствие;
	Коды.Вставить("ё","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);
		Зн = Коды.Получить(Бкв);
		Выход = Выход + ?(Зн = Неопределено, Бкв, Зн);
	КонецЦикла;
	Возврат Выход;
КонецФункции
...Показать Скрыть
monkbest; i1381215@trbvm.com; GATTUSO; nick_krsk; ni032mas; +5 Ответить
9. Михаил Щербак (Zircool) 116 19.09.12 12:14 Сейчас в теме
Спасибо, пригодились функции.
10. Igor Berezhnov (igorberezhnov) 74 31.01.13 12:16 Сейчас в теме
Перем ТрансХ[3];


Процедура ИнициализацияТранслитерации()
ТрансХ[1] = "A:B:V:G:D:E:YO:ZH:Z:I:Y:K:L:M:N:O:P:R:S:T:U:F:H:C:CH:SH:SCH:':Y:':E:YU:YA";
ТрансХ[2] = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
НС=1;СД=СтрДлина(ТрансХ[1]);
Для I=1 По СтрДлина(ТрансХ[2]) Цикл
Т=0;
Для J=НС По СД Цикл
Если Сред(ТрансХ[1],J,1)=":" Тогда Прервать;Иначе Т=Т+1;КонецЕсли;
КонецЦикла;
ТрансХ[3]=ТрансХ[3]+Симв(НС)+Симв(Т);НС=НС+Т+1;
КонецЦикла;
КонецПроцедуры

Функция Транслитерация(СР)
Р="";
Для I=1 По СтрДлина(СР) Цикл
СД=Сред(СР,I,1);С=ВРег(СД);ВН=?(СД<>С,1,0);
П=Найти(ТрансХ[2],С);
Если П>0 Тогда
С=Сред(ТрансХ[3],(П*2)-1,2);С=Сред(ТрансХ[1],КодСимв(С),КодСимв(Прав(С,1)));
Р=Р+?(ВН=1,НРег(С),С);
Иначе Р=Р+С;
КонецЕсли;
КонецЦикла;
Возврат Р;
КонецФункции
11. Роман Неважно (Romeooo) 73 12.02.13 23:20 Сейчас в теме
Спасибо! Полчаса времени сэкономил.:)
12. Валентина (tovpeko) 15.01.14 19:07 Сейчас в теме
13. Алексей (Progus) 15.01.14 21:13 Сейчас в теме
Спасибо! Как раз вовремя!
Оставьте свое сообщение