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

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

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

Разберем основную причину проблемы: отличия сборок

Выясним причину, по которой обычный дистрибутив PostgreSQL (так называемый "vanilla" или сборка от EnterpriseDB) не позволяет создать базу данных. Дело в том, что 1С предъявляет специфические требования к СУБД, которые отсутствуют в стандартных версиях. Платформа 1С:Предприятие 8.3 активно использует механизмы, требующие внесения изменений непосредственно в программный код (ядро) PostgreSQL.

Проанализируем основные технические отличия специализированных сборок "для 1С" от обычных:

  1. Специфические патчи: Сборки для 1С содержат патчи, которые оптимизируют работу с блокировками и транзакциями. Без них 1С не сможет корректно управлять данными в многопользовательском режиме.
  2. Генерация планов запросов: В адаптированных версиях изменен планировщик запросов. Это необходимо для того, чтобы тяжелые SQL-запросы, которые генерирует платформа 1С, выполнялись эффективно, а не приводили к зависанию сервера.
  3. Работа с временными таблицами: 1С создает огромное количество временных таблиц. В специальных сборках оптимизированы механизмы их очистки и повторного использования, что критично для производительности.

Таким образом, если мы используем стандартный дистрибутив с сайта разработчиков PostgreSQL, мы неизбежно получим ошибку на этапе создания базы или в процессе эксплуатации.

Выбор правильного дистрибутива

Рассмотрим, какие варианты дистрибутивов являются рабочими для платформы 1С. На практике выделяют два основных источника:

  1. Официальный портал 1С (users.v8.1c.ru): Здесь выкладываются минимально необходимые сборки, которые гарантированно протестированы разработчиками платформы. Однако, как отмечают пользователи, их установщик иногда бывает капризным в плане прав доступа.
  2. Сборки от Postgres Professional (PostgresPro): Это наиболее популярный и стабильный вариант. Компания Postgres Professional выпускает специальные версии Postgres Pro 1C, которые включают дополнительные улучшения производительности и удобные инсталляторы для Windows и Linux.

В нашем случае, переход на дистрибутив от Postgres Professional из архива версий (например, для 11-й версии) часто решает проблему мгновенно, так как установщик автоматически учитывает большинство требований 1С.

Разберем процесс установки и важные параметры

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

Настройка локали и кодировки:
Для корректной работы 1С на операционной системе Windows кластер баз данных должен быть инициализирован с определенной локалью. Если выбрать Default, это может привести к тому, что порядок сортировки не совпадет с ожиданиями 1С. Проанализируем правильные параметры:

Права учетной записи службы:
Служба PostgreSQL должна запускаться от имени пользователя, имеющего права на запуск служб (Logon as a service) и полные права на папку с данными (data). Если при установке не запрашивается имя пользователя postgres, это может означать конфликт с уже существующей учетной записью или правами доступа в системе.

Настройка конфигурационного файла postgresql.conf

После успешной установки специализированной сборки крайне важно проверить параметры в файле 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.

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

Подведем итог и составим четкую последовательность действий, если база не создается:

  1. Полное удаление: Удалим текущую установку PostgreSQL (через панель управления). Обязательно удалим папку с данными и учетную запись пользователя postgres из системы, чтобы начать "с чистого листа".
  2. Загрузка верного дистрибутива: Перейдем в архив PostgresPro или на сайт обновлений 1С и скачаем версию, соответствующую вашей платформе (например, PostgreSQL 11 для платформы 8.3.16).
  3. Чистая установка: Запустим установку от имени администратора. При выборе локали укажем Russian_Russia.1251.
  4. Проверка прав: Убедимся, что служба postgres запущена и работает.
  5. Создание базы через консоль 1С: Откроем Консоль администрирования серверов 1С:Предприятия и создадим информационную базу, указав имя сервера (localhost), имя базы, пользователя СУБД (postgres) и его пароль.

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

← На главную