Как реализовать печать ценников на казахском языке в 1С 8.2 и 8.3

Программист 1С v8.3 (Обычные формы) Торговля и дистрибуция
← На главную

При работе с мультиязычными интерфейсами и печатными формами в системе 1С:Предприятие часто возникают опасения, связанные с корректным отображением специфических символов. Особенно это актуально для казахского языка, содержащего уникальные буквы, отсутствующие в стандартной кириллической раскладке CP1251. В данной статье мы разберем, почему старые методы настройки системы больше не требуются и как правильно организовать печать ценников в современных конфигурациях, таких как УПП 1.3.

Мифы о кодировках: почему опыт 1С 7.7 больше не актуален

Ранее, во времена использования платформы 1С 7.7, разработчики сталкивались с серьезными трудностями при попытке вывести казахские символы (например, Ә, Ғ, Қ, Ң, Ө, Ұ, Ү, І). Это было связано с тем, что платформа работала исключительно с ANSI-кодировками. Для поддержки казахского языка приходилось менять системную кодировку Windows, что приводило к изменению порядка сортировки в базе данных (DBF) и требовало переиндексации или даже пересоздания баз данных. Любое несоответствие кодировок на сервере и клиенте делало работу невозможной.

Проанализируем ситуацию с платформой 1С 8.x. Начиная с версии 8.0, 1С:Предприятие полностью перешло на стандарт Unicode (Юникод). Это фундаментальное изменение означает, что:

  1. Система может одновременно хранить и отображать символы любых алфавитов мира в одной строке.
  2. Данные в MS SQL Server хранятся в полях типа nvarchar, которые нативно поддерживают многобайтовые символы Юникода.
  3. Для работы казахского языка не требуется менять региональные настройки операционной системы или порядок сортировки (Collation) в базе данных.

Таким образом, если вы используете платформу 8.2 или 8.3, все манипуляции, описанные в старых статьях для 1С 7.7, выполнять категорически не нужно.

Шаг 1: Настройка макета ценника и выбор шрифта

Разберем, почему иногда вместо казахских букв на печати появляются «квадраты» или знаки вопроса. Чаще всего причина кроется не в кодировке базы данных, а в визуальном отображении — конкретный шрифт в макете может просто не содержать начертаний (глифов) для казахских букв.

Рассмотрим порядок действий для настройки макета:

  1. Откроем обработку «Печать ценников» или макет в конфигураторе (в зависимости от того, как реализована печать в вашей конфигурации).
  2. Выделим области, где должен выводиться текст на казахском языке (например, наименование товара или единица измерения).
  3. Проверим установленный шрифт. Важно: используйте стандартные шрифты Windows, которые гарантированно поддерживают расширенную кириллицу. К ним относятся: Arial, Times New Roman, Tahoma, Verdana.
  4. Если вы используете специфические декоративные шрифты, убедитесь, что они поддерживают Unicode-диапазоны для казахского языка. В противном случае замените их на стандартные.

Шаг 2: Ввод данных в информационную базу

Выясним, как правильно заносить информацию в справочник Номенклатура. Чтобы 1С корректно восприняла ввод казахских букв, нам достаточно подготовить рабочее место пользователя:

  1. В настройках операционной системы Windows добавьте казахскую раскладку клавиатуры.
  2. При заполнении карточки товара просто переключитесь на нужную раскладку.
  3. Поскольку 1С использует Unicode, строка будет сохранена в базу в исходном виде со всеми специфическими символами.

Посмотрим на пример кода, который может использоваться для программного формирования текста на двух языках (русском и казахском), если у вас в конфигурации заведены соответствующие дополнительные реквизиты:


Функция СформироватьНаименованиеНаКазахском(ТоварСсылка) Экспорт
    // Предположим, наименование хранится в доп. реквизите
    ТекстНаименования = "";
    Для Каждого СтрокаДопРеквизитов Из ТоварСсылка.ДополнительныеРеквизиты Цикл
        Если СтрокаДопРеквизитов.Свойство.Наименование = "НаименованиеКаз" Тогда
            ТекстНаименования = СтрокаДопРеквизитов.Значение;
        КонецЕсли;
    КонецЦикла;
    Возврат ТекстНаименования;
КонецФункции

Шаг 3: Особенности печати на специализированном оборудовании

Проанализируем ситуацию с принтерами этикеток (Zebra, TSC, Godex). Здесь кроется единственный технический нюанс. Существует два способа печати из 1С на такие устройства:

1. Печать через Windows-драйвер

В этом режиме 1С формирует стандартный ТабличныйДокумент, который драйвер принтера преобразует в графический образ. Это самый простой и надежный способ для печати казахских символов. Поскольку Windows сама отрисовывает буквы, принтеру не важно, какие шрифты у него «зашиты» внутри. Рекомендуется использовать именно этот метод.

2. Печать прямыми командами (ZPL, EPL, TSPL)

Если печать реализована через формирование текстовой строки команд для принтера, то казахские символы могут не напечататься. Это происходит потому, что во встроенной памяти принтера по умолчанию нет казахских шрифтов. В этом случае придется либо загружать шрифт в память принтера (что является сложной технической задачей), либо переходить на использование Windows-драйвера.

Перспектива перехода на латиницу

Стоит отметить, что в Казахстане утвержден поэтапный переход на латинскую графику. С точки зрения программиста 1С, это существенно упрощает задачу. Латинские символы (основная латиница) поддерживаются абсолютно всеми шрифтами и любым торговым оборудованием без исключения. Если ваша компания уже переходит на использование латиницы в ценниках, технические проблемы с кодировками и шрифтами исчезнут сами собой.

Итоги и рекомендации

Подводя итог нашему исследованию, можно с уверенностью сказать, что для 1С:УПП 1.3 на платформе 8.3 и современных версиях Windows Server / MS SQL печать ценников на казахском языке не представляет сложности.

Основные выводы:

Таким образом, реализация задачи сводится к обычному редактированию макета ценника и наполнению базы данных контентом на казахском языке.

← На главную