Имя: Пароль:
1C
1С v8
Не удаётся заменить казахские буквы
,
0 1Сергей
 
24.02.16
13:01
Нужно заменить казахские буквы на похожие русские. Не работает СтрЗаменить

Функция ПреобразоватьКазахскиеБуквы(Текст)
    //* преобразовать казахские символы
    Рез=СтрЗаменить(Текст, "Ә", "Э");
    Рез=СтрЗаменить(Рез, "ә", "э");
    Рез=СтрЗаменить(Рез, "І", "I");
    Рез=СтрЗаменить(Рез, "і", "i");
    Рез=СтрЗаменить(Рез, "Ң", "Н");
    Рез=СтрЗаменить(Рез, "ң", "н");
    Рез=СтрЗаменить(Рез, "Ғ", "Г");
    Рез=СтрЗаменить(Рез, "ғ", "г");
    Рез=СтрЗаменить(Рез, "Ұ", "Y");
    Рез=СтрЗаменить(Рез, "ұ", "y");
    Рез=СтрЗаменить(Рез, "Ү", "Y");
    Рез=СтрЗаменить(Рез, "ү", "y");
    Рез=СтрЗаменить(Рез, "Қ", "К");
    Рез=СтрЗаменить(Рез, "қ", "к");
    Рез=СтрЗаменить(Рез, "Ө", "О");
    Рез=СтрЗаменить(Рез, "ө", "о");
    Рез=СтрЗаменить(Рез, "Һ", "h");
    Рез=СтрЗаменить(Рез, "һ", "h");
    
    //Рез=СтрЗаменить(Текст, Символ(163), "Э");
    //Рез=СтрЗаменить(Рез, Символ(188), "э");
    //Рез=СтрЗаменить(Рез, Символ(178), "I");
    //Рез=СтрЗаменить(Рез, Символ(179), "i");
    //Рез=СтрЗаменить(Рез, Символ(189), "Н");
    //Рез=СтрЗаменить(Рез, Символ(190), "н");
    //Рез=СтрЗаменить(Рез, Символ(170), "Г");
    //Рез=СтрЗаменить(Рез, Символ(186), "г");
    //Рез=СтрЗаменить(Рез, Символ(161), "Y");
    //Рез=СтрЗаменить(Рез, Символ(162), "y");
    //Рез=СтрЗаменить(Рез, Символ(175), "Y");
    //Рез=СтрЗаменить(Рез, Символ(191), "y");
    //Рез=СтрЗаменить(Рез, Символ(141), "К");
    //Рез=СтрЗаменить(Рез, Символ(157), "к");
    //Рез=СтрЗаменить(Рез, Символ(165), "О");
    //Рез=СтрЗаменить(Рез, Символ(180), "о");
    //Рез=СтрЗаменить(Рез, Символ(142), "h");
    //Рез=СтрЗаменить(Рез, Символ(158), "h");
    Возврат Рез;
КонецФункции // ПреобразоватьКазахскиеБуквы


Никто не сталкивался?
1 forforumandspam
 
24.02.16
13:03
Наоборот надо
Рез=СтрЗаменить(Рез, "Y", "У");
2 1Сергей
 
24.02.16
13:06
(1) ГдеМеняем, ЧтоМеняем, НаЧтоМеняем
3 forforumandspam
 
24.02.16
13:07
(2) ГдеМеняем, КазахскаяБукваКоторуюУбратьНужно, АналогРКазахскойБуквыИзРусскогоАлфавита. А в (0) у тебя по другому.
4 1Сергей
 
24.02.16
13:11
(3) у меня так и есть, я казахскую У без чёрточки заменяю на английскую Y
5 forforumandspam
 
24.02.16
13:23
Что означает эта запись?
Рез=СтрЗаменить(Текст, "Ә", "Э");
6 forforumandspam
 
24.02.16
13:24
Не припомню таких спецсимволов в 1С, как "&#"
7 1Сергей
 
24.02.16
13:25
(5) это на форуме отобразилось. Это казахская буква на клавише 2


?
8 forforumandspam
 
24.02.16
13:31
Специально для тебя проверил. Работает http://s016.radikal.ru/i334/1602/37/94001021c4bd.png
9 VladZ
 
24.02.16
13:32
(0) Я бы пошел по такому пути:
1. составляешь таблицу соответствий букв, например в виде.

СтрокаИсходногоЯзыка = "АБВГД";
СтрокаПолучаемогоЯзыка = "abvgd";

Сюда пишем только то, что отличается.

2. При замене пробегаем по символьно строку. Ищем в строке СтрокаИсходногоЯзыка нужную букву. По номеру найденной буквы - получаем символ из СтрокаПолучаемогоЯзыка. Если не нашли - значит не нужно менять.

Алгоритм будет более читабельным.
10 1Сергей
 
24.02.16
13:35
(8) в табло у меня тоже работает
(9) на результат это не повлияет
11 forforumandspam
 
24.02.16
13:37
Теперь скажи, откуда ты получаешь текст? У меня был случай, когда через средства винды получал размер файла-картинки вида "600 х 800" и разбирал на две строки "600" и "800". Так вот эти две строки не преобразовывались в число. Я голову сломал, пока посимвольно не разобрал. Оказывается, в начале строки и в конце были невидимые символы, после удаления которых всё заработало.

Вот и ты посимвольно просмотри казахский текст, может там не казахские буквы, а похожие, из диапозона другого алфавита?
12 1Сергей
 
24.02.16
13:42
(11) там много разного текста попадает из разных запросов. Потом сохраняется в текстовый файл.

Дабы отсечь бредовые предположения, скажу что замена русских букв проходит на ура.
Как я предполагаю, дело в том что функция выполняется на сервере (на котором не работает отладка :( ). Т.е. дело в сервере скорее всего
13 pv94384
 
24.02.16
13:43
к (11) Как вариант попробуй скопировать эту букву в блокнот и найти ее через Ctrl+F
14 1Сергей
 
24.02.16
13:46
(13) находит
15 1Сергей
 
24.02.16
14:08
зашёл на сервер по рдп. Там казахские буквы не отображаются...
Как в win10 установить казахские шрифты?
16 1Сергей
 
24.02.16
14:16
*win2012 server
17 NorthWind
 
24.02.16
14:33
(0) А почему вы решили, что конструкция "Ә" чего-то найдет? Это же HTMLный литерал. Разве он в 1Совских строках тоже пашет?
18 NorthWind
 
24.02.16
14:37
сорри, не прочитал, форум так показывает...
19 forforumandspam
 
25.02.16
08:07
(15) То, что на сервере нет казахского шрифта не должно влиять на СтрЗаменить().
20 1Сергей
 
25.02.16
11:03
(19) ясен пень, что не в шрифтах дело. Но, факт остается фактом. Серв 2012 не понимает казахские буквы