Как исправить неправильную кодировку и отображение текста в 1С 7.7 на Windows Server 2008?

Системный администратор 1С v7.7
← На главную

При переходе на современные операционные системы, такие как Windows Server 2008, 2012 или современные десктопные версии Windows, пользователи «семерки» часто сталкиваются с неприятным эффектом: интерфейс программы устанавливается корректно, но в выпадающих меню, списках и диалоговых окнах вместо привычной кириллицы отображаются непонятные символы или «кракозябры». Это происходит из-за того, что архитектура 1С:Предприятие 7.7 создавалась в эпоху, когда управление кодовыми страницами и шрифтами в Windows работало иначе. Для исправления других распространенных проблем с отображением элементов интерфейса на новых ОС можно использовать обработку для восстановления потерянного окна сообщений в 1С 7.7.

В данной статье мы подробно разберем, почему возникает эта проблема, и рассмотрим несколько проверенных способов её решения — от простых настроек интерфейса до правки системного реестра.

Разберем причину возникновения проблемы

Проанализируем ситуацию: 1С 7.7 является приложением, не поддерживающим Юникод. Для отображения символов она полагается на системные кодовые страницы (Code Pages) и старые растровые шрифты. В современных ОС Windows по умолчанию для западноевропейских языков используется кодовая страница 1252, а для кириллицы — 1251. Если система по какой-то причине пытается отрисовать меню 1С, используя таблицу символов 1252, русские буквы превращаются в набор латинских символов с диакритическими знаками.

Способ 1: Замена кодовых страниц в системном реестре

Это наиболее эффективный метод, который позволяет «обмануть» систему, заставив её использовать кириллическую таблицу символов там, где она обычно подставляет западноевропейскую. Рассмотрим по шагам, как это сделать:

  1. Откроем редактор реестра. Для этого нажмем Win + R, введем команду regedit и нажмем Enter.
  2. Перейдем в следующий раздел реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage.
  3. Найдем в списке строковый параметр с именем 1252. По умолчанию его значение установлено как c_1252.nls.
  4. Нажмем правой кнопкой мыши на параметре 1252, выберем «Изменить» и установим значение c_1251.nls. Это укажет системе использовать кириллическую таблицу вместо стандартной западной.
  5. Аналогичную операцию выполним для параметра 1250 (центрально-европейская кодировка), также заменив его значение на c_1251.nls.
  6. Если вы используете 64-битную версию Windows Server 2008, рекомендуется проверить аналогичные настройки в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\, хотя системные параметры Nls обычно являются общими.

Важно: После внесения изменений в реестр необходимо обязательно перезагрузить сервер, чтобы новые параметры вступили в силу.

Способ 2: Настройка региональных стандартов (System Locale)

Выясним, правильно ли настроена сама операционная система для работы с программами, не поддерживающими Юникод. Часто при установке английской версии Windows Server этот параметр забывают изменить.

  1. Зайдем в «Панель управления» и выберем пункт «Региональные и языковые стандарты» (Region and Language).
  2. Перейдем на вкладку «Дополнительно» (Administrative).
  3. В разделе «Язык программ, не поддерживающих Юникод» нажмем кнопку «Изменить язык системы».
  4. Выберем из списка «Русский (Россия)».
  5. Обратим особое внимание: если в вашей версии Windows есть галочка «Бета-версия: Использовать Юникод (UTF-8) для поддержки языков во всем мире», она должна быть снята. 1С 7.7 категорически несовместима с этим режимом.

Способ 3: Исправление системных шрифтов

Посмотрим на ситуацию со стороны визуального отображения. 1С 7.7 часто использует системный шрифт MS Sans Serif. В Windows Server 2008 файлы этого шрифта могут отличаться от тех, что были в Windows XP, что приводит к некорректному масштабированию и кодированию букв.

Попробуем заменить файлы шрифтов в папке C:\Windows\Fonts на аналогичные из более старой ОС (например, Windows XP или Windows Server 2003). Нас интересуют следующие файлы:

Также проанализируем права доступа. В Windows Server 2008 усилена безопасность, и если пользователь, под которым запускается 1С, не имеет прав на чтение папки Fonts или определенных веток реестра, отвечающих за подстановку шрифтов (FontSubstitutes), текст может отображаться некорректно. Убедимся, что у группы «Пользователи» есть права на чтение содержимого папки со шрифтами.

Способ 4: Настройка порядка сортировки (для файловых баз)

Хотя этот метод напрямую не исправляет кодировку меню, он является обязательным спутником при установке 1С 7.7 на новые ОС. Программа может выдать ошибку: «Порядок сортировки, установленный для базы данных, отличается от системного».

Для исправления этой ошибки в файловой базе выполним следующие действия:

  1. Запустим 1С в режиме «Администрирование».
  2. Выберем пункт меню «Администрирование» — «Кодовая страница таблиц ИБ».
  3. В самом низу списка выберем вариант «+ Текущая системная установка».
  4. Нажмем «ОК» и согласимся на переиндексацию таблиц.

Если же вы не хотите менять структуру базы (например, если с ней работают пользователи на старых ОС), можно создать в каталоге с установленной программой (там, где находится 1cv7.exe) пустой файл с именем dbfsort.chk. Это заставит 1С игнорировать проверку порядка сортировки.

Способ 5: Особенности для SQL-версии

Если ваша база данных работает на MS SQL Server, причина может кроться в настройках самого SQL-сервера. Разберем рекомендации для этого случая:

При установке MSSQL необходимо указывать параметр сортировки (Collation) Cyrillic_General_CI_AS. Если база уже создана в кодировке Latin1_General_CI_AS, это неизбежно приведет к проблемам с кириллицей. В такой ситуации потребуется:

  1. Выгрузить данные из 1С в файл .zip (через «Выгрузить данные»).
  2. Удалить базу в SQL-консоли.
  3. Создать новую базу с корректным Collation (Cyrillic_General_CI_AS).
  4. Загрузить данные обратно в 1С.

Таким образом, мы рассмотрели все основные причины возникновения проблем с кодировкой в 1С 7.7 на Windows Server 2008. Сочетание правки реестра (Способ 1) и настройки региональных стандартов (Способ 2) в большинстве случаев полностью решает проблему «кракозябр» в интерфейсе. Для сопутствующего ускорения работы и отрисовки интерфейса при терминальном доступе к серверу можно использовать утилиту для оптимизации стартовой заставки 1С 7.7 при работе по терминалу.

← На главную