Почему не создается новая база 1С на PostgreSQL 14 в Windows и как исправить ошибку порядка сортировки?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Описание проблемы

Разберем классическую ситуацию, с которой часто сталкиваются администраторы при развертывании связки платформ 1С:Предприятие и СУБД PostgreSQL на базе операционных систем Windows (например, Windows Server 2012 R2 или 2019). При попытке создания новой информационной базы через консоль кластера 1С возникает следующая ошибка: "Ошибка установки или изменения национальных настроек информационной базы. Порядок сортировки не поддерживается базой данных".

При этом, если администратор пытается вручную проинициализировать кластер базы данных с помощью утилиты initdb и задать локаль в формате Linux (например, initdb --locale=ru_RU.UTF-8 --encoding=UTF8), система выдает ошибку о том, что имя локали является ошибочным. Рассмотрим подробнее, почему так происходит и как правильно настроить среду для корректной работы 1С.

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

Чтобы успешно решить задачу, выясним основные причины конфликта сортировок и локалей между 1С и PostgreSQL в среде Windows.

  1. Разница в именовании локалей (Windows vs Linux)

    Формат ru_RU.UTF-8 является стандартом POSIX, который используется в Linux-системах. Операционная система Windows не распознает такое имя локали. Для корректной инициализации базы под Windows с поддержкой русского языка необходимо использовать наименование Russian_Russia.1251. Именно поэтому ручной запуск команды с параметрами от Linux приводит к сбою.

  2. Отсутствие специальных патчей для 1С в "ванильном" PostgreSQL

    Обычный (ванильный) дистрибутив PostgreSQL, скачанный с официального сайта разработчиков СУБД, "из коробки" зачастую не способен корректно работать с платформой 1С. Платформа 1С:Предприятие жестко проверяет, чтобы порядок сортировки (collation) строго соответствовал ее внутренним механизмам. Специализированные сборки (например, от Postgres Pro для 1С или дистрибутивы, загруженные с официального портала ИТС) содержат критически важные патчи. В них встроены модификации для правильного сравнения строк, регистронезависимого поиска (расширения mchar и fulleq), а также транзакционно-небезопасные функции для работы с временными таблицами (модуль fasttrun, предотвращающий разрастание системных каталогов).

  3. Влияние профиля системного пользователя Windows

    Инициализация кластера берет настройки локали по умолчанию из профиля пользователя операционной системы, от имени которого запускается служба СУБД (обычно это postgres или NETWORK SERVICE). Если в Windows для этого пользователя не установлены региональные стандарты "Россия" и язык для программ, не поддерживающих Юникод "Русский", кластер проинициализируется с неверной (например, английской) локалью.

Особенность "ложного" создания базы данных

Обратим внимание на одну характерную особенность данной ошибки. При возникновении проблемы с национальными настройками, сама база данных на сервере PostgreSQL может быть физически создана и даже появиться в списке баз в консоли администратора 1С. Однако работать с ней будет невозможно: при попытке зайти в Конфигуратор или режим Предприятия система повторно проверит параметры и выдаст ошибку несоответствия настроек. Запомните: такую "дефектную" базу необходимо обязательно удалить перед тем, как создавать новую с исправленными настройками.

Пошаговое решение проблемы

Разберем по шагам, как исправить ошибку и успешно создать базу данных 1С на PostgreSQL.

  1. Удалите некорректно созданные базы и текущую версию PostgreSQL

    Если вы установили обычную (ванильную) версию СУБД, ее необходимо удалить. Также удалите все файлы данных старого кластера (каталог data), так как они уже проинициализированы с неверными настройками.

  2. Скачайте адаптированный дистрибутив PostgreSQL для 1С

    Никогда не используйте стандартные сборки для продуктивных баз 1С. Скачайте дистрибутив PostgreSQL, специально подготовленный для работы с 1С. Это может быть бесплатная версия Postgres Pro 1C, коммерческие версии Postgres Pro / Enterprise, либо дистрибутив, доступный подписчикам на портале ИТС.

  3. Проверьте региональные настройки Windows

    Перед установкой убедитесь, что в панели управления Windows в разделе "Региональные стандарты" (Region) установлен формат "Русский (Россия)". На вкладке "Дополнительно" (Administrative) в разделе "Язык программ, не поддерживающих Юникод" (Language for non-Unicode programs) обязательно должен быть выбран "Русский (Россия)".

  4. Установите PostgreSQL с правильной локалью

    Запустите установщик адаптированного дистрибутива. При прохождении шагов мастера установки, когда система предложит выбрать локаль для инициализации кластера (Locale), не выбирайте ручные варианты вроде ru_RU или C. Выберите пункт "Настройка ОС" (или Default locale). Установщик автоматически подтянет правильные параметры из Windows, и кластер будет проинициализирован с локалью Russian_Russia.1251 и кодировкой базы данных UTF8.

  5. Создайте базу через консоль кластера 1С

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

Дополнительные рекомендации по новым версиям PostgreSQL (14+)

Посмотрим на особенности современных версий СУБД. Начиная с PostgreSQL 14 и 15, в системе значительно улучшена поддержка провайдера локалей ICU. Если при ручном администрировании вам необходимо явно указать локаль в обход стандартной библиотеки libc, вы можете использовать параметры провайдера ICU. Например: --icu-locale=ru-RU. Тем не менее, для стабильной работы платформы 1С:Предприятие в среде Windows по-прежнему рекомендуется доверять инициализацию графическому установщику адаптированных сборок с использованием традиционной локали ОС Russian_Russia.1251 в связке с UTF8.

Выполнив описанные выше шаги, вы гарантированно избавитесь от ошибки поддержки порядка сортировок и обеспечите стабильную работу связки 1С и PostgreSQL на операционной системе Windows.

← На главную