Отправляем уведомления клиентам по СМС из 1с. Когда размер сообщения немного увеличился каждая sms стала считаться за две. Выяснили в поддержке что кириллические сообщения тарифицируются по другому.
Решили перевести кириллицу в латиницу. Для этого добавили соответствие кириллических символов латинским выражениям в список значений ( СоотвБукв.Добавить(“ш”,”sh”);) . Добавить кроме кириллицы нужно и английские символы и прочие элементы (цифры, знаки препинания итп) Далее делаем переобход строки по символам и заменяем на соответствующие значения русских букв на английский вариант.
Код 1с ниже:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | Функция КирВЛат(Слово)Экспорт Латиница= ""; СоотвБукв = новый СписокЗначений; //Кириллица СоотвБукв.Добавить("й","j"); СоотвБукв.Добавить("ц","c"); СоотвБукв.Добавить("у","u"); СоотвБукв.Добавить("к","k"); СоотвБукв.Добавить("е","e"); СоотвБукв.Добавить("н","n"); СоотвБукв.Добавить("г","g"); СоотвБукв.Добавить("ш","sh"); СоотвБукв.Добавить("щ","sch"); СоотвБукв.Добавить("з","z"); СоотвБукв.Добавить("х","h"); СоотвБукв.Добавить("ъ","#"); СоотвБукв.Добавить("ф","f"); СоотвБукв.Добавить("ы","y"); СоотвБукв.Добавить("в","v"); СоотвБукв.Добавить("а","a"); СоотвБукв.Добавить("п","p"); СоотвБукв.Добавить("р","r"); СоотвБукв.Добавить("о","o"); СоотвБукв.Добавить("л","l"); СоотвБукв.Добавить("д","d"); СоотвБукв.Добавить("ж","zh"); СоотвБукв.Добавить("э""je"); СоотвБукв.Добавить("я","ya"); СоотвБукв.Добавить("ч","ch"); СоотвБукв.Добавить("с","s"); СоотвБукв.Добавить("м","m"); СоотвБукв.Добавить("и","i"); СоотвБукв.Добавить("т","t"); СоотвБукв.Добавить("ь","'"); СоотвБукв.Добавить("б","b"); СоотвБукв.Добавить("ю","ju"); СоотвБукв.Добавить("ё","jo"); //Латиница СоотвБукв.Добавить("i","i"); СоотвБукв.Добавить("q","q"); СоотвБукв.Добавить("w","w"); СоотвБукв.Добавить("e","e"); СоотвБукв.Добавить("r","r"); СоотвБукв.Добавить("t","t"); СоотвБукв.Добавить("y","y"); СоотвБукв.Добавить("u","u"); СоотвБукв.Добавить("i","i"); СоотвБукв.Добавить("o","o"); СоотвБукв.Добавить("p","p"); СоотвБукв.Добавить("",""); СоотвБукв.Добавить("a","a"); СоотвБукв.Добавить("s","s"); СоотвБукв.Добавить("d","d"); СоотвБукв.Добавить("э","e"); СоотвБукв.Добавить("ы","i"); СоотвБукв.Добавить("f","f"); СоотвБукв.Добавить("g","g"); СоотвБукв.Добавить("h","h"); СоотвБукв.Добавить("j","j"); СоотвБукв.Добавить("k","k"); СоотвБукв.Добавить("l","l"); СоотвБукв.Добавить("z","z"); СоотвБукв.Добавить("х","x"); СоотвБукв.Добавить("c","c"); СоотвБукв.Добавить("v","v"); СоотвБукв.Добавить("b","b"); СоотвБукв.Добавить("n","n"); СоотвБукв.Добавить("m","m"); //Прочее СоотвБукв.Добавить(" "," "); СоотвБукв.Добавить("""",""""); СоотвБукв.Добавить("-","-"); СоотвБукв.Добавить(".","."); СоотвБукв.Добавить(",",","); СоотвБукв.Добавить("/","/"); СоотвБукв.Добавить("\","\"); СоотвБукв.Добавить("*","*"); СоотвБукв.Добавить("#","#"); СоотвБукв.Добавить("#","№"); СоотвБукв.Добавить("|","|"); СоотвБукв.Добавить("!","!"); СоотвБукв.Добавить("?","?"); СоотвБукв.Добавить("$","$"); СоотвБукв.Добавить("%","%"); СоотвБукв.Добавить("@","@"); СоотвБукв.Добавить("&","&"); СоотвБукв.Добавить("=","="); СоотвБукв.Добавить("+","+"); СоотвБукв.Добавить("~","~"); СоотвБукв.Добавить("'","'"); СоотвБукв.Добавить("`","`"); СоотвБукв.Добавить(":",":"); СоотвБукв.Добавить(";",";"); СоотвБукв.Добавить("(","("); СоотвБукв.Добавить(")",")"); СоотвБукв.Добавить("[","["); СоотвБукв.Добавить("]","]"); СоотвБукв.Добавить("}","}"); СоотвБукв.Добавить("{","{"); //Цифры СоотвБукв.Добавить("0","0"); СоотвБукв.Добавить("1","1"); СоотвБукв.Добавить("2","2"); СоотвБукв.Добавить("3","3"); СоотвБукв.Добавить("4","4"); СоотвБукв.Добавить("5","5"); СоотвБукв.Добавить("6","6"); СоотвБукв.Добавить("7","7"); СоотвБукв.Добавить("8","8"); СоотвБукв.Добавить("9","9"); Для а=1 по СтрДлина(Слово) Цикл Латиница = Латиница + СоотвБукв.НайтиПоЗначению(НРЕГ(Сред(Слово,а,1))); КонецЦикла; Возврат ВРЕГ(Латиница); КонецФункции Процедура Кнопка1Нажатие(Элемент) Лат=КирВЛат(Кир); //Сообщить(КирВЛат("Ваш заказ В34572/5674 будет доставлен 06.12.19 по адресу: Москва, Новопромышленная 17")); //Результат VASH ZAKAZ V34572/5674 BUDET DOSTAVLEN 06.12.19 PO ADRESU: MOSKVA, NOVOPROMYSHLENNAYA 17 КонецПроцедуры |
Скачать обработку “Перевод кириллицы в латиницу в 1с”