При развертывании клиент-серверного варианта 1С:Предприятие с использованием СУБД PostgreSQL начинающие специалисты часто сталкиваются с ситуацией, когда сервер СУБД вроде бы установлен и работает, pgAdmin открывается, но при попытке создания базы через консоль администрирования 1С возникает ошибка. Рассмотрим подробно, почему стандартные сборки PostgreSQL не подходят для 1С и как правильно настроить окружение для стабильной работы.
Выясним причину, по которой обычный дистрибутив PostgreSQL (так называемый "vanilla" или сборка от EnterpriseDB) не позволяет создать базу данных. Дело в том, что 1С предъявляет специфические требования к СУБД, которые отсутствуют в стандартных версиях. Платформа 1С:Предприятие 8.3 активно использует механизмы, требующие внесения изменений непосредственно в программный код (ядро) PostgreSQL.
Проанализируем основные технические отличия специализированных сборок "для 1С" от обычных:
Таким образом, если мы используем стандартный дистрибутив с сайта разработчиков PostgreSQL, мы неизбежно получим ошибку на этапе создания базы или в процессе эксплуатации.
Рассмотрим, какие варианты дистрибутивов являются рабочими для платформы 1С. На практике выделяют два основных источника:
Postgres Pro 1C, которые включают дополнительные улучшения производительности и удобные инсталляторы для Windows и Linux.В нашем случае, переход на дистрибутив от Postgres Professional из архива версий (например, для 11-й версии) часто решает проблему мгновенно, так как установщик автоматически учитывает большинство требований 1С.
Посмотрим на ключевые моменты, которые нужно контролировать при установке PostgreSQL, чтобы избежать ошибок создания базы данных. Даже с правильным дистрибутивом можно допустить ошибку в конфигурации.
Настройка локали и кодировки:
Для корректной работы 1С на операционной системе Windows кластер баз данных должен быть инициализирован с определенной локалью. Если выбрать Default, это может привести к тому, что порядок сортировки не совпадет с ожиданиями 1С. Проанализируем правильные параметры:
Russian_Russia.1251 или C.UTF-8.Права учетной записи службы:
Служба PostgreSQL должна запускаться от имени пользователя, имеющего права на запуск служб (Logon as a service) и полные права на папку с данными (data). Если при установке не запрашивается имя пользователя postgres, это может означать конфликт с уже существующей учетной записью или правами доступа в системе.
После успешной установки специализированной сборки крайне важно проверить параметры в файле postgresql.conf. Выясним, какие настройки критичны для создания и работы базы 1С:
# Отключаем специфическую обработку строк для совместимости со старыми релизами
standard_conforming_strings = off
escape_string_warning = off
# Увеличиваем лимит блокировок, так как 1С активно их использует
max_locks_per_transaction = 150
# Настройка производительности под 1С
autovacuum = on
row_security = off
Если ваша версия платформы 1С ниже 8.3.18, обратите внимание на метод авторизации. В новых версиях PostgreSQL по умолчанию используется scram-sha-256, который старые версии платформы не понимают. В таком случае в файлах pg_hba.conf и postgresql.conf нужно установить значение md5 для параметра password_encryption.
Подведем итог и составим четкую последовательность действий, если база не создается:
postgres из системы, чтобы начать "с чистого листа".PostgresPro или на сайт обновлений 1С и скачаем версию, соответствующую вашей платформе (например, PostgreSQL 11 для платформы 8.3.16).Russian_Russia.1251.postgres запущена и работает.Консоль администрирования серверов 1С:Предприятия и создадим информационную базу, указав имя сервера (localhost), имя базы, пользователя СУБД (postgres) и его пароль.Следуя этой методике, мы исключаем использование несовместимого программного обеспечения и обеспечиваем правильную среду для работы метаданных 1С. Как показала практика обсуждения, именно замена стандартного дистрибутива на адаптированный под 1С является ключом к решению проблемы.