При переходе на современные операционные системы, такие как Windows Server 2008, 2012 или современные десктопные версии Windows, пользователи «семерки» часто сталкиваются с неприятным эффектом: интерфейс программы устанавливается корректно, но в выпадающих меню, списках и диалоговых окнах вместо привычной кириллицы отображаются непонятные символы или «кракозябры». Это происходит из-за того, что архитектура 1С:Предприятие 7.7 создавалась в эпоху, когда управление кодовыми страницами и шрифтами в Windows работало иначе. Для исправления других распространенных проблем с отображением элементов интерфейса на новых ОС можно использовать обработку для восстановления потерянного окна сообщений в 1С 7.7.
В данной статье мы подробно разберем, почему возникает эта проблема, и рассмотрим несколько проверенных способов её решения — от простых настроек интерфейса до правки системного реестра.
Проанализируем ситуацию: 1С 7.7 является приложением, не поддерживающим Юникод. Для отображения символов она полагается на системные кодовые страницы (Code Pages) и старые растровые шрифты. В современных ОС Windows по умолчанию для западноевропейских языков используется кодовая страница 1252, а для кириллицы — 1251. Если система по какой-то причине пытается отрисовать меню 1С, используя таблицу символов 1252, русские буквы превращаются в набор латинских символов с диакритическими знаками.
Это наиболее эффективный метод, который позволяет «обмануть» систему, заставив её использовать кириллическую таблицу символов там, где она обычно подставляет западноевропейскую. Рассмотрим по шагам, как это сделать:
regedit и нажмем Enter.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage.1252. По умолчанию его значение установлено как c_1252.nls.1252, выберем «Изменить» и установим значение c_1251.nls. Это укажет системе использовать кириллическую таблицу вместо стандартной западной.1250 (центрально-европейская кодировка), также заменив его значение на c_1251.nls.HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\, хотя системные параметры Nls обычно являются общими.Важно: После внесения изменений в реестр необходимо обязательно перезагрузить сервер, чтобы новые параметры вступили в силу.
Выясним, правильно ли настроена сама операционная система для работы с программами, не поддерживающими Юникод. Часто при установке английской версии Windows Server этот параметр забывают изменить.
Посмотрим на ситуацию со стороны визуального отображения. 1С 7.7 часто использует системный шрифт MS Sans Serif. В Windows Server 2008 файлы этого шрифта могут отличаться от тех, что были в Windows XP, что приводит к некорректному масштабированию и кодированию букв.
Попробуем заменить файлы шрифтов в папке C:\Windows\Fonts на аналогичные из более старой ОС (например, Windows XP или Windows Server 2003). Нас интересуют следующие файлы:
sserife.fonsseriff.fonsserifg.fonТакже проанализируем права доступа. В Windows Server 2008 усилена безопасность, и если пользователь, под которым запускается 1С, не имеет прав на чтение папки Fonts или определенных веток реестра, отвечающих за подстановку шрифтов (FontSubstitutes), текст может отображаться некорректно. Убедимся, что у группы «Пользователи» есть права на чтение содержимого папки со шрифтами.
Хотя этот метод напрямую не исправляет кодировку меню, он является обязательным спутником при установке 1С 7.7 на новые ОС. Программа может выдать ошибку: «Порядок сортировки, установленный для базы данных, отличается от системного».
Для исправления этой ошибки в файловой базе выполним следующие действия:
Если же вы не хотите менять структуру базы (например, если с ней работают пользователи на старых ОС), можно создать в каталоге с установленной программой (там, где находится 1cv7.exe) пустой файл с именем dbfsort.chk. Это заставит 1С игнорировать проверку порядка сортировки.
Если ваша база данных работает на MS SQL Server, причина может кроться в настройках самого SQL-сервера. Разберем рекомендации для этого случая:
При установке MSSQL необходимо указывать параметр сортировки (Collation) Cyrillic_General_CI_AS. Если база уже создана в кодировке Latin1_General_CI_AS, это неизбежно приведет к проблемам с кириллицей. В такой ситуации потребуется:
.zip (через «Выгрузить данные»).Cyrillic_General_CI_AS).Таким образом, мы рассмотрели все основные причины возникновения проблем с кодировкой в 1С 7.7 на Windows Server 2008. Сочетание правки реестра (Способ 1) и настройки региональных стандартов (Способ 2) в большинстве случаев полностью решает проблему «кракозябр» в интерфейсе. Для сопутствующего ускорения работы и отрисовки интерфейса при терминальном доступе к серверу можно использовать утилиту для оптимизации стартовой заставки 1С 7.7 при работе по терминалу.