gifts2017

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

Опубликовал Dmitry Semenov (dima1c) в раздел Программирование - Практика программирования

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

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

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

 

 

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

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

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. Дмитрий Колесников (EastGuy) 17.10.11 13:13
Какая применяется таблица перевода символов?
3. Галя (galyausik1) 19.10.11 10:32
4. Александр Притуленко (evrakylon) 19.10.11 15:32
Видел функцию транслитерации в рарусовском "Магазине автозапчастей"
5. Dmitry Semenov (dima1c) 19.10.11 17:38
(4) evrakylon, эту сам писал... Конфу эту в глаза не видел;)
6. Виталий Фантич (Boudybuilder) 02.12.11 23:11
Полезная обработка!
Спасибо за старания.
Класная и простая!
7. Осипов Сергей (fixin) 04.04.12 11:05
зря писал. у Гения 1с в библиотеке функций давно написана.
8. Sergey (zsrg) 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) 19.09.12 12:14
Спасибо, пригодились функции.
10. Igor Berezhnov (igorberezhnov) 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) 12.02.13 23:20
Спасибо! Полчаса времени сэкономил.:)
12. Валентина (tovpeko) 15.01.14 19:07
13. Алексей (Progus) 15.01.14 21:13
Спасибо! Как раз вовремя!
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа