При работе с мультиязычными интерфейсами и печатными формами в системе 1С:Предприятие часто возникают опасения, связанные с корректным отображением специфических символов. Особенно это актуально для казахского языка, содержащего уникальные буквы, отсутствующие в стандартной кириллической раскладке CP1251. В данной статье мы разберем, почему старые методы настройки системы больше не требуются и как правильно организовать печать ценников в современных конфигурациях, таких как УПП 1.3.
Ранее, во времена использования платформы 1С 7.7, разработчики сталкивались с серьезными трудностями при попытке вывести казахские символы (например, Ә, Ғ, Қ, Ң, Ө, Ұ, Ү, І). Это было связано с тем, что платформа работала исключительно с ANSI-кодировками. Для поддержки казахского языка приходилось менять системную кодировку Windows, что приводило к изменению порядка сортировки в базе данных (DBF) и требовало переиндексации или даже пересоздания баз данных. Любое несоответствие кодировок на сервере и клиенте делало работу невозможной.
Проанализируем ситуацию с платформой 1С 8.x. Начиная с версии 8.0, 1С:Предприятие полностью перешло на стандарт Unicode (Юникод). Это фундаментальное изменение означает, что:
nvarchar, которые нативно поддерживают многобайтовые символы Юникода.Таким образом, если вы используете платформу 8.2 или 8.3, все манипуляции, описанные в старых статьях для 1С 7.7, выполнять категорически не нужно.
Разберем, почему иногда вместо казахских букв на печати появляются «квадраты» или знаки вопроса. Чаще всего причина кроется не в кодировке базы данных, а в визуальном отображении — конкретный шрифт в макете может просто не содержать начертаний (глифов) для казахских букв.
Рассмотрим порядок действий для настройки макета:
Выясним, как правильно заносить информацию в справочник Номенклатура. Чтобы 1С корректно восприняла ввод казахских букв, нам достаточно подготовить рабочее место пользователя:
Unicode, строка будет сохранена в базу в исходном виде со всеми специфическими символами.Посмотрим на пример кода, который может использоваться для программного формирования текста на двух языках (русском и казахском), если у вас в конфигурации заведены соответствующие дополнительные реквизиты:
Функция СформироватьНаименованиеНаКазахском(ТоварСсылка) Экспорт
// Предположим, наименование хранится в доп. реквизите
ТекстНаименования = "";
Для Каждого СтрокаДопРеквизитов Из ТоварСсылка.ДополнительныеРеквизиты Цикл
Если СтрокаДопРеквизитов.Свойство.Наименование = "НаименованиеКаз" Тогда
ТекстНаименования = СтрокаДопРеквизитов.Значение;
КонецЕсли;
КонецЦикла;
Возврат ТекстНаименования;
КонецФункции
Проанализируем ситуацию с принтерами этикеток (Zebra, TSC, Godex). Здесь кроется единственный технический нюанс. Существует два способа печати из 1С на такие устройства:
В этом режиме 1С формирует стандартный ТабличныйДокумент, который драйвер принтера преобразует в графический образ. Это самый простой и надежный способ для печати казахских символов. Поскольку Windows сама отрисовывает буквы, принтеру не важно, какие шрифты у него «зашиты» внутри. Рекомендуется использовать именно этот метод.
Если печать реализована через формирование текстовой строки команд для принтера, то казахские символы могут не напечататься. Это происходит потому, что во встроенной памяти принтера по умолчанию нет казахских шрифтов. В этом случае придется либо загружать шрифт в память принтера (что является сложной технической задачей), либо переходить на использование Windows-драйвера.
Стоит отметить, что в Казахстане утвержден поэтапный переход на латинскую графику. С точки зрения программиста 1С, это существенно упрощает задачу. Латинские символы (основная латиница) поддерживаются абсолютно всеми шрифтами и любым торговым оборудованием без исключения. Если ваша компания уже переходит на использование латиницы в ценниках, технические проблемы с кодировками и шрифтами исчезнут сами собой.
Подводя итог нашему исследованию, можно с уверенностью сказать, что для 1С:УПП 1.3 на платформе 8.3 и современных версиях Windows Server / MS SQL печать ценников на казахском языке не представляет сложности.
Основные выводы:
Unicode-совместимые шрифты (Arial, Tahoma) в макетах.Таким образом, реализация задачи сводится к обычному редактированию макета ценника и наполнению базы данных контентом на казахском языке.