Администрирование · 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 действуют в текущем сеансе, — воспользоваться встроенным языком. В консоли кода или через обработку можно вывести значения функций работы с региональными установками и параметрами сеанса.
Сообщить(ТекущийЯзык()); // код языка интерфейса
Сообщить(КодЛокализацииИнформационнойБазы()); // например, ru_RU
ПараметрыСеанса // содержит региональные установки сеансаКод локализации информационной базы — ключевой параметр. Для российских баз это обычно «ru_RU». Если при создании базы параметр был задан иначе или база создавалась скриптом без явного указания локали, возможны расхождения с настройками СУБД.
На уровне СУБД проверка зависит от используемой системы. Для PostgreSQL смотрят параметры lc_collate и lc_ctype базы данных, для MS SQL Server — collation базы данных. Эти значения должны соответствовать локали информационной базы 1С.
Типичные ошибки NLS и как они проявляются
Самая известная ошибка — сообщение при старте сеанса о том, что региональные установки информационной базы отличаются от установок СУБД или кластера. Платформа в этом случае может отказать в подключении или продолжить работу с предупреждением, в зависимости от версии и режима.
Менее заметные проявления: сортировка списков, в которой буква «Ё» оказывается в конце алфавита, поиск без учёта регистра работает некорректно для кириллицы, представление дат ведёт себя неожиданно при выгрузке данных. Такие симптомы часто списывают на «глюки платформы», хотя причина — несогласованные локали.
Как исправить несовпадение региональных установок
Порядок действий зависит от того, где обнаружено расхождение. Общий принцип: эталоном считается локаль информационной базы, и под неё приводятся остальные уровни, либо база пересоздаётся с корректными параметрами.
- 1Определите код локализации информационной базы в конфигураторе или консоли кластера
- 2Проверьте collation/локаль базы данных на стороне СУБД и сравните с локалью базы 1С
- 3Проверьте региональные настройки операционной системы сервера 1С и сервера СУБД
- 4При расхождении создайте новую базу с правильной локалью и загрузите данные через выгрузку/загрузку (dt) или перенос данных
- 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С — это региональные настройки на уровнях базы, сеанса, СУБД и ОС, а не отдельная программа. Ошибки решаются выравниванием локалей, смена локали базы требует её пересоздания с обязательной резервной копией, а клиентский формат дат настраивается в ОС без риска для данных.