Каталог решений - Простое решение проблемы с казахстанской кодировкой

Простое решение проблемы с казахстанской кодировкой

Простое решение проблемы с казахстанской кодировкой

В наличии

Известно, что для того, чтобы работать в 1С с казахскими шрифтами, нужно изменить кодировку в ОС. Иногда это может быть не очень удобно.

Категория:

Описание

Известно, что для того, чтобы работать в 1С с казахскими шрифтами, нужно изменить кодировку в ОС. Иногда это может быть не очень удобно. Посудите сами: изменяется порядок сортировки. Необходимо пересоздавать базы, все клиентские системы, работающие с этими базами, переводить на новую кодировку. А если на клиентской машине стоит кодировка отличная от стандартной 1251, то 1С:Предприятие просто не сможет подключится к базе данных со стандартной кодировкой. Т.е. изменяя системную кодировку, вы должны все рабочие базы 1С перевести на новую кодировку. Со старыми версиями SQL опять же возникают сложности хранения и обработки данных. А ведь нужно всё это лишь для одной цели: Отправлять текст с казахскими буквами в третью программу. Будь то хоть Банк-клиент, хоть Программа для отправки налоговой или статистической отчетности.

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

Кодировка СТ РК 1048-2002 (Windows), отличается от стандартной 1251 лишь тем, что в нее добавлены 9 новых букв:

 

Буква

Подстрока

Десятичный код

HEX

|0;

Э’

163

A3

|1;

э’

188

BC

І

И’

178

B2

і

и’

179

B3

v6;

Н’

189

BD

v7;

н’

190

BE

u0;

Г’

170

AA

u1;

г’

186

BA

w8;

У’

175

AF

w9;

у’

191

BF

x0;

У’’

161

A1

x1;

у’’

162

A2

u8;

К’

141

8D

u9;

к’

157

9D

}6;

О’

165

A5

}7;

о’

180

B4

y0;

Х’

142

8E

y1;

х’

158

9E

 

 

Функция Каз(Текст) Экспорт
    //* преобразовать казахские символы
    Рез=СтрЗаменить(Текст,"Э'",Симв(163));
    Рез=СтрЗаменить(Рез,"э'",Симв(188));
    Рез=СтрЗаменить(Рез,"И'",Симв(178));
    Рез=СтрЗаменить(Рез,"и'",Симв(179));
    Рез=СтрЗаменить(Рез,"Н'",Симв(189));
    Рез=СтрЗаменить(Рез,"н'",Симв(190));
    Рез=СтрЗаменить(Рез,"Г'",Симв(170));
    Рез=СтрЗаменить(Рез,"г'",Симв(186));
    Рез=СтрЗаменить(Рез,"У''",Симв(161));
    Рез=СтрЗаменить(Рез,"у''",Симв(162));
    Рез=СтрЗаменить(Рез,"У'",Симв(175));
    Рез=СтрЗаменить(Рез,"у'",Симв(191));
    Рез=СтрЗаменить(Рез,"К'",Симв(141));
    Рез=СтрЗаменить(Рез,"к'",Симв(157));
    Рез=СтрЗаменить(Рез,"О'",Симв(165));
    Рез=СтрЗаменить(Рез,"о'",Симв(180));
    Рез=СтрЗаменить(Рез,"Х'",Симв(142));
    Рез=СтрЗаменить(Рез,"х'",Симв(158));
    Возврат Рез;
КонецФункции // ПреобразоватьКазСимв

Пример использования:

Каз("К'азак'стан Республикасы") = u8;азаu9;стан Республикасы
has been added to your cart:
Оформление заказа