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

17.10.11

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

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

Файлы

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

Наименование Скачано Купить файл
Обработка транслит 1с 8
.epf 6,87Kb
209 2 500 руб. Купить

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

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

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

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

 

 

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

См. также

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

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

30.10.2025    5155    Abysswalker    11    

47

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

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

14.05.2025    9612    DeerCven    15    

63

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

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

21.05.2024    59977    dimanich70    85    

175

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

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

1 стартмани

18.03.2024    8322    7    John_d    13    

59

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

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

12.02.2024    75145    atdonya    31    

73

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

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

30.11.2023    10406    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. EastGuy 53 17.10.11 13:13 Сейчас в теме
Какая применяется таблица перевода символов?
2. dima1c 46 17.10.11 14:24 Сейчас в теме
8. zsrg 346 07.07.12 19:27 Сейчас в теме
(2)
Слегка изменил Вашу функции до одной, убрал лишнюю операцию разложения строки:
Функция Транслит(Вход) 
	Коды = Новый Соответствие;
	Коды.Вставить("ё","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);
		Зн = Коды.Получить(Бкв);
		Выход = Выход + ?(Зн = Неопределено, Бкв, Зн);
	КонецЦикла;
	Возврат Выход;
КонецФункции
Показать
warrior1985; Smert-nik; ПодводныйТ; perpleks; iCortezik; mip128; mikl79; ulen; МультиВишня; Evil Beaver; Alexander.Shvets; adhocprog; monkbest; i1381215@trbvm.com; GATTUSO; nick_krsk; ni032mas; +17 Ответить
3. galyausik1 4 19.10.11 10:32 Сейчас в теме
4. evrakylon 19.10.11 15:32 Сейчас в теме
Видел функцию транслитерации в рарусовском "Магазине автозапчастей"
5. dima1c 46 19.10.11 17:38 Сейчас в теме
(4) evrakylon, эту сам писал... Конфу эту в глаза не видел;)
6. Boudybuilder 35 02.12.11 23:11 Сейчас в теме
Полезная обработка!
Спасибо за старания.
Класная и простая!
7. fixin 4338 04.04.12 11:05 Сейчас в теме
зря писал. у Гения 1с в библиотеке функций давно написана.
9. Zircool 193 19.09.12 12:14 Сейчас в теме
Спасибо, пригодились функции.
10. 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 79 12.02.13 23:20 Сейчас в теме
Спасибо! Полчаса времени сэкономил.:)
12. tovpeko 15.01.14 19:07 Сейчас в теме
13. Progus 15.01.14 21:13 Сейчас в теме
Спасибо! Как раз вовремя!
14. sh_ 05.07.18 13:25 Сейчас в теме
Спасибо! Спасли!!!!!
15. name17 07.04.20 19:36 Сейчас в теме
БСП: СтроковыеФункцииКлиентСервер.СтрокаЛатиницей()
zoikins; warrior1985; EvgeTrofi; ZDmitry83; bprogs; eufes; user1084491; Invodev; ybatiaev; simgo83; shetill; unknown181538; use99; noon; Elmirkinskij; proninvs; Suslik_Johns; +17 Ответить
16. Suslik_Johns 03.06.20 14:49 Сейчас в теме
(15)
СтроковыеФункцииКлиентСервер
Спасибо за подсказку! ;)
17. valeron465 27.08.21 10:45 Сейчас в теме
Функция СтрокаЛатиницей(Стр) Экспорт
	СтрЗамен = "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";
	СтрКириллица = "А,Б,В,Г,Д,Е,Ё,Ж,З,И,Й,К,Л,М,Н,О,П,Р,С,Т,У,Ф,Х,Ц,Ч,Ш,Щ,,Ы,,Э,Ю,Я";	
	МасЗамен = СтрРазделить(СтрЗамен, ",");
	МасКириллица = СтрРазделить(СтрКириллица, ",");
	
	СтрЛат = "0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,R,S,T,Q,U,V,X,Y,Z,W";	
	МасЛат = СтрРазделить(СтрЛат, ",");
	Результат = "";
	Для сч = 1 по СтрДлина(Стр) Цикл
		Симв = Сред(Стр, сч, 1);
		Если МасЛат.Найти(ВРег(Симв)) <> Неопределено Тогда
			СимвЛат = Симв;	
		Иначе
			Инд = МасКириллица.Найти(ВРег(Симв));
			Если Инд = Неопределено Тогда
				Продолжить;
			КонецЕсли;
			Если Симв = МасКириллица[Инд] Тогда   //значит исходный символ в верхнем регистре
				СимвЛат = МасЗамен[Инд];
			Иначе
				СимвЛат = НРег(МасЗамен[Инд]);
			КонецЕсли;
		КонецЕсли;
		Результат = Результат + СимвЛат;
	КонецЦикла;
	Возврат Результат;
КонецФункции
Показать
Для отправки сообщения требуется регистрация/авторизация