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

22.01.10

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

Известно, что для того, чтобы работать в 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;стан Республикасы

См. также

Библиотека процедур и функций для технологической платформы "1С: Предприятие 7.7"

Универсальные функции Платформа 1С v7.7 Россия Абонемент ($m)

В библиотеку собраны различные функции по работе с документами, журналами, типами данных, строками, датой и временем, таблицами значений, Excel, файлами, XML, JSON, Http-сервисами, SMTP серверами и т.п.

1 стартмани

22.12.2023    719    9    user706545_kseg1971    0    

4

1С 7.7 и новый 1С:Контрагент

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Россия Бесплатно (free)

Получение реквизитов контрагентов из 1С:Контрагент для старых конфигураций под 1с 7.7.

25.04.2022    1868    zhenyat    7    

6

Печать таблицы значений в 1С 7.7 при отладке

Универсальные функции Платформа 1С v7.7 Россия Бесплатно (free)

Функция выводит таблицу значений в табличный документ. (v7.7) Особенно полезно при отладке. Не нужно вносить изменения в код, вызываем функцию как вычисляемое выражение при останове. Если таблица обрабатывается в несколько этапов, можно вывести её после каждого и визуально проследить эволюцию.

30.06.2021    4490    Zoltan_Black    11    

2

Установка принтера по умолчанию для 1С 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Установка принтера по умолчанию в 1С 7.7. Обработка может быть полезна в том случае, когда нужно установить принтер по умолчанию, а доступа к рабочему столу нет (например, терминальный режим без рабочего стола или remoteApp)

1 стартмани

13.02.2019    13333    4    alsen    3    

4

Формирование строки json в 1С: 7.7

Универсальные функции Платформа 1С v7.7 Конфигурации 1cv7 1С:Комплексная 7.7 Абонемент ($m)

Предлагается набор функций 1с 7.7 для формирования строки json стандартными средствами.

1 стартмани

10.12.2018    10163    malovandrey    5    

18

Как создать индикатор в 1С:Предприятии 7.7

Универсальные функции Работа с интерфейсом Платформа 1С v7.7 Конфигурации 1cv7 Россия Абонемент ($m)

В статье дано описание создания индикатора на форме в среде разработки 1С:Предприятие 7.7 исключительно типовыми средствами.

1 стартмани

27.09.2016    18702    2    HAMMER_59    6    

2
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Resembler 06.02.10 17:09 Сейчас в теме
Плюс. Спасибо! Очень хороший и довольно изящный способ! Как раз то, что искал!
+
2. volodya_shin 10.11.10 07:59 Сейчас в теме
Супер! Думаю проще и гениальней не придумаешь, хотя ...
+
3. KontoraB 07.09.21 22:02 Сейчас в теме
Попробую такое сделать с польской кодировкой ...
+
Оставьте свое сообщение