Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

1C-LOCALE-LANG-ERR 1С:Предприятие и СУБД

1С: Ошибка кодировки локали в Linux (LANG != ru_RU.UTF-8 / Сбой сортировки)

Обновлено: 21.08.2026 · Официальная документация ↗

Требования платформы 1С:Предприятие к системной локали в Linux

Серверные процессы 1С (ragent, rmngr, rphost) и утилиты администрирования жестко завязаны на корректность системных переменных локализации POSIX (glibc locales). Для корректной работы русскоязычных конфигураций (сортировка строк в запросах, сравнение без учета регистра, регистронезависимый поиск в динамических списках, парсинг дат и чисел) системная локаль обязана быть установлена строго в ru_RU.UTF-8. При несоответствии локали платформа выдает ошибку:

«Ошибка инициализации графической подсистемы / Ошибка определения системной локали / Неверный формат даты/времени / Порядок сортировки базы данных отличается от порядка сортировки сервера 1С»

Бизнес-риски

Некорректная сортировка в бухгалтерских отчетах (буква «Ё» ломает алфавитный порядок), повреждение индексов таблиц СУБД при переиндексации, невозможность запуска кластера 1С через systemd в автоматическом режиме.

Ключевые переменные окружения локали

ПеременнаяТребуемое значениеНазначение
LANGru_RU.UTF-8Базовая локаль системы по умолчанию.
LC_ALLru_RU.UTF-8 (или пусто)Глобальное переопределение всех параметров локали.
LC_CTYPEru_RU.UTF-8Классификация символов и преобразование регистра (верхний/нижний).
LC_COLLATEru_RU.UTF-8Правила лексикографической сортировки строк.

Регламент генерации и настройки локали ru_RU.UTF-8 в Linux

Сценарий 1: Генерация локали в операционной системе

Если в системе сгенерирована только локаль en_US.UTF-8 или POSIX/C:

# Для Debian / Ubuntu / Astra Linux:
sudo apt update && sudo apt install -y locales
sudo locale-gen ru_RU.UTF-8 en_US.UTF-8
sudo update-locale LANG=ru_RU.UTF-8 LC_ALL=ru_RU.UTF-8

# Для RED OS / CentOS / AlmaLinux:
sudo dnf install -y glibc-langpack-ru glibc-locale-source
sudo localectl set-locale LANG=ru_RU.UTF-8

# Проверка списка доступных локалей в системе:
locale -a | grep -i ru
# Должно вывести: ru_RU.utf8

Сценарий 2: Фиксация переменных окружения в systemd-сервисе 1С

Часто системная локаль настроена правильно, но демон systemd запускает службу 1С с дефолтной локалью C. Отредактируйте service unit:

# Откройте конфигурационный файл службы (или drop-in override):
sudo systemctl edit srv1cv83.service

# Добавьте блок переменных окружения:
[Service]
Environment="LANG=ru_RU.UTF-8"
Environment="LC_ALL=ru_RU.UTF-8"
Environment="LC_CTYPE=ru_RU.UTF-8"

# Примените изменения и перезапустите кластер:
sudo systemctl daemon-reload
sudo systemctl restart srv1cv83

Сценарий 3: Проверка совместимости локали в базе PostgreSQL

База данных 1С в PostgreSQL должна быть создана с соответствующей кодировкой и collate:

-- Проверка параметров локали созданной информационной базы в PostgreSQL:
SELECT datname, datcollate, datctype, encoding 
FROM pg_database 
WHERE datname = 'trade_management';
-- Ожидаемый результат: datcollate = 'ru_RU.UTF-8', encoding = 6 (UTF8)

Типовые ошибки администраторов

  • Использование локали ru_RU.CP1251 или ru_RU.KOI8-R: Платформа 1С:Предприятие 8.3 на Linux работает ИСКЛЮЧИТЕЛЬНО с UTF-8. Использование однобайтовых кодировок приведет к падению сервера при старте.
  • Отсутствие локали en_US.UTF-8: Некоторые встроенные библиотеки 1С требуют наличия базовой английской локали в качестве резервной (fallback). Всегда генерируйте обе локали: ru_RU.UTF-8 и en_US.UTF-8.
Проблемы с кодировками, выгрузками XML или сортировкой в 1С на Linux?
Специалисты ITSTM настроят серверные профили, приведут параметры glibc/ICU в соответствие со стандартами 1С и исключат повреждение индексов баз данных.
💡 Практика специалистов: При миграции баз 1С с Windows на Linux PostgreSQL всегда проверяйте параметр ICU Collation. Для исключения расхождений в сортировке рекомендуется использовать Postgres Pro 1C с включенной поддержкой провайдера ICU (icu_collate = 'ru-RU-x-icu').

Частые вопросы (FAQ)

Почему при обновлении версии glibc в Linux «ломаются» индексы в 1С?

В новых версиях glibc меняются правила сортировки символов (collate rules). После мажорного обновления ОС необходимо выполнить команду REINDEX DATABASE в PostgreSQL для всех баз 1С во избежание дублирования ключей.

Как проверить, под какой локалью работает конкретный запущенный процесс rphost?

Выполните команду cat /proc/$(pgrep rphost | head -n 1)/environ | tr '\0' '\n' | grep LANG. Вывод должен содержать строку LANG=ru_RU.UTF-8.

Влияет ли системная локаль на формирование выгрузок в банк (Клиент-Банк)?

Да, при генерации текстовых файлов обмена 1С перекодирует текст из внутренней UTF-8 в Windows-1251. При сбое системных таблиц транслитерации русский текст выгружается вопросительными знаками (????).

Нужно ли настраивать локаль для пользователя usr1cv8 отдельно в /etc/default/locale?

Да, файл /etc/default/locale задает глобальные параметры для всех неинтерактивных демонов ОС, включая пользователя usr1cv8.

Полезные материалы
Рекомендуем