К статье
Практический материал

Администрирование · 9 мин

1С NLS client: что это и как настроить региональные параметры

Разбираем, что такое NLS в клиенте 1С: настройки языка, форматов дат и чисел, типичные ошибки региональных параметров и способы их устранения.

NLS — это аббревиатура от National Language Support, «поддержка национальных языков». В контексте клиента 1С:Предприятие этот термин обозначает набор региональных настроек: язык интерфейса, формат дат и времени, разделители дробной части и разрядов, правила сортировки строк, порядок сравнения символов. Когда администраторы или разработчики говорят «проблема с NLS», как правило, речь идёт о рассинхронизации этих параметров между клиентом, сервером 1С и сервером СУБД.

Чаще всего с NLS сталкиваются в трёх ситуациях: при создании новой информационной базы, при переносе базы на другой сервер или СУБД и при обновлении платформы. Внешне проблема проявляется по-разному: даты выводятся в непривычном формате, строки сортируются «не по-русски», поиск по подстроке не находит очевидные совпадения, а при запуске клиента появляется сообщение о несовпадении региональных установок.

Важно понимать, что NLS — это не отдельная программа или компонент, который нужно устанавливать. Это совокупность параметров, которые хранятся на нескольких уровнях: в свойствах информационной базы, в настройках сеанса пользователя, в параметрах СУБД и в региональных установках операционной системы. Ошибки возникают именно на стыках этих уровней.

Где именно хранятся региональные настройки

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

Второй уровень — сеанс пользователя. Для каждого сеанса действуют региональные установки, которые можно посмотреть и при необходимости переопределить программно. Третий уровень — СУБД: у MS SQL Server, PostgreSQL, Oracle и IBM Db2 есть собственные настройки collation, локали и кодировок, которые должны быть согласованы с параметрами базы 1С.

Четвёртый уровень — операционная система клиентского компьютера и сервера. Форматы даты, времени и чисел, заданные в региональных параметрах Windows или Linux, влияют на отображение значений в интерфейсе тонкого и толстого клиента, если в сеансе не заданы явные переопределения.

Как посмотреть текущие региональные установки сеанса

Быстрый способ узнать, какие параметры NLS действуют в текущем сеансе, — воспользоваться встроенным языком. В консоли кода или через обработку можно вывести значения функций работы с региональными установками и параметрами сеанса.

bsl
Сообщить(ТекущийЯзык()); // код языка интерфейса
Сообщить(КодЛокализацииИнформационнойБазы()); // например, ru_RU
ПараметрыСеанса // содержит региональные установки сеанса

Код локализации информационной базы — ключевой параметр. Для российских баз это обычно «ru_RU». Если при создании базы параметр был задан иначе или база создавалась скриптом без явного указания локали, возможны расхождения с настройками СУБД.

На уровне СУБД проверка зависит от используемой системы. Для PostgreSQL смотрят параметры lc_collate и lc_ctype базы данных, для MS SQL Server — collation базы данных. Эти значения должны соответствовать локали информационной базы 1С.

Типичные ошибки NLS и как они проявляются

Самая известная ошибка — сообщение при старте сеанса о том, что региональные установки информационной базы отличаются от установок СУБД или кластера. Платформа в этом случае может отказать в подключении или продолжить работу с предупреждением, в зависимости от версии и режима.

Менее заметные проявления: сортировка списков, в которой буква «Ё» оказывается в конце алфавита, поиск без учёта регистра работает некорректно для кириллицы, представление дат ведёт себя неожиданно при выгрузке данных. Такие симптомы часто списывают на «глюки платформы», хотя причина — несогласованные локали.

Типичные ошибки
01
Создание базы скриптом без указания локали — получается база с параметрами по умолчанию, не совпадающими с ru_RU
02
Смена collation в СУБД без пересоздания базы 1С — данные сортируются по старым и новым правилам одновременно
03
Разные региональные настройки на сервере 1С и сервере СУБД — предупреждения при старте и ошибки сравнения строк
04
Игнорирование предупреждения о несовпадении установок — проблема всплывает позже в отчётах и обменах данными

Как исправить несовпадение региональных установок

Порядок действий зависит от того, где обнаружено расхождение. Общий принцип: эталоном считается локаль информационной базы, и под неё приводятся остальные уровни, либо база пересоздаётся с корректными параметрами.

Порядок действий
  1. 1
    Определите код локализации информационной базы в конфигураторе или консоли кластера
  2. 2
    Проверьте collation/локаль базы данных на стороне СУБД и сравните с локалью базы 1С
  3. 3
    Проверьте региональные настройки операционной системы сервера 1С и сервера СУБД
  4. 4
    При расхождении создайте новую базу с правильной локалью и загрузите данные через выгрузку/загрузку (dt) или перенос данных
  5. 5
    После исправления перезапустите сеансы и проверьте сортировку и форматы дат в типовых списках

Если база небольшая и тестовая, проще всего пересоздать её с явным указанием локали. Для рабочей базы с данными прямое изменение локали «на месте» обычно невозможно: потребуется выгрузка в файл dt, создание новой базы с корректными параметрами и загрузка данных туда.

Настройки NLS на клиентском компьютере

На стороне пользователя региональные параметры берутся из операционной системы. Если в Windows у пользователя выбран формат «Английский (США)», даты в интерфейсе 1С могут отображаться в формате «месяц/день/год», а десятичным разделителем станет точка. Это не ошибка базы — это локальная настройка сеанса.

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

NLS при переезде базы на другой сервер или СУБД

Миграция — самый рискованный сценарий. При переносе базы между серверами PostgreSQL с разными локалями кластера (например, с ru_RU.UTF-8 на C.UTF-8) сортировка и сравнение строк начинают работать иначе, а индексы по строковым полям могут стать некорректными.

Безопасная последовательность: новый кластер СУБД разворачивается с той же локалью, что и исходный, затем база переносится средствами СУБД или через выгрузку 1С. Если сменить локаль всё-таки нужно, базу пересоздают с новыми параметрами и загружают данные заново, после чего выполняют тестирование сортировки и поиска.

Контрольные точки

Как проверить результат

Запуск клиента
Норма

Нет предупреждений о несовпадении региональных установок

Тревожный признак

Сообщение об ошибке NLS при старте сеанса

Сортировка справочника с кириллицей
Норма

Алфавитный порядок корректен, «Ё» на ожидаемом месте

Тревожный признак

Нарушен порядок, символы группируются неестественно

Формат дат в документах
Норма

Привычный формат ДД.ММ.ГГГГ

Тревожный признак

Формат ММ/ДД/ГГГГ или иной неожиданный

Поиск по подстроке без учёта регистра
Норма

Находит кириллические значения в любом регистре

Тревожный признак

Поиск работает только при точном совпадении регистра

Частые вопросы

NLS — это вирус или сторонняя программа, которую нужно удалить?

Нет. NLS — это не отдельное приложение, а обозначение региональных настроек (язык, форматы дат и чисел, правила сортировки). Если вы встретили этот термин в сообщении об ошибке 1С, искать и удалять какой-либо файл не нужно — следует проверить согласованность региональных параметров базы, сервера и СУБД.

Можно ли поменять локаль существующей базы без пересоздания?

Штатного способа сменить код локализации информационной базы «на месте» платформа не предоставляет. Практический путь — выгрузить данные в файл dt, создать новую базу с нужной локалью и загрузить данные в неё. Перед этим обязательно делается резервная копия.

Почему у одного пользователя даты в американском формате, а у остальных нормально?

Формат отображения берётся из региональных настроек операционной системы клиентского компьютера. Достаточно изменить региональный формат в настройках Windows этого пользователя на русский — данные в базе при этом не затрагиваются.

Опасно ли игнорировать предупреждение о несовпадении региональных установок?

Да. Работа продолжится, но сортировка и сравнение строк будут выполняться по непредсказуемым правилам, что влияет на отчёты, поиск и обмены данными. Предупреждение следует устранить выравниванием локалей, а не отключать.

Зависят ли настройки NLS от версии платформы 1С?

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

Итог

Что важно запомнить

NLS в 1С — это региональные настройки на уровнях базы, сеанса, СУБД и ОС, а не отдельная программа. Ошибки решаются выравниванием локалей, смена локали базы требует её пересоздания с обязательной резервной копией, а клиентский формат дат настраивается в ОС без риска для данных.