Переход на использование PostgreSQL в качестве сервера баз данных для платформы 1С:Предприятие становится всё более популярным решением. Это обусловлено желанием компаний снизить затраты на лицензирование Microsoft SQL Server без потери производительности и надежности системы. Однако процесс миграции или первичной настройки требует внимательного подхода к деталям, так как архитектура взаимодействия и Postgres имеет свои уникальные особенности.

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

Важно понимать, что поддержка PostgreSQL в 1С:Предприятие реализована не на уровне прямого драйвера, а через прослойку ODBC. Это накладывает определенные требования к версии драйвера и его разрядности. Неправильный выбор версии драйвера (x86 вместо x64) является одной из самых частых причин неудач при подключении, поэтому этот момент требует особого внимания перед началом работ.

Подготовка окружения и установка компонентов

Первым шагом является установка самой системы управления базами данных. Для платформы 1С:Предприятие 8.3 и выше рекомендуется использовать версии PostgreSQL не ниже 9.6, однако для стабильной работы в продакшене лучше выбирать актуальные релизы, такие как 13 или 15. Установочный пакет следует загружать с официального сайта разработчика или использовать репозитории вашего дистрибутива Linux, если сервер работает под управлением этой ОС.

После установки СУБД необходимо убедиться, что установлен клиентский пакет libpq и драйвер ODBC. В среде Windows это обычно компонент psqlODBC, который можно найти в стандартном дистрибутиве базы данных или скачать отдельно. Критически важно, чтобы разрядность драйвера совпадала с разрядностью службы 1С:Сервер 1С:Предприятия. Если служба запущена как 64-битный процесс, а драйвер установлен 32-битный, подключение будет невозможным.

Проверка установленных компонентов выполняется через панель управления или командную строку. Убедитесь, что в списке драйверов ODBC отображается запись PostgreSQL Unicode. Отсутствие этого драйвера блокирует возможность создания источника данных, через который будет общаться с базой. Также стоит проверить переменные окружения, чтобы путь к библиотекам PostgreSQL был прописан в системной переменной PATH.

⚠️ Внимание: При установке на Linux убедитесь, что установлен пакет unixodbc и соответствующие драйверы psqlodbc. Без них сервер 1С просто не сможет инициировать соединение с СУБД.

☑️ Готовность окружения

Выполнено: 0 / 4

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

Безопасность и доступ к базе данных регулируются файлом конфигурации pg_hba.conf. По умолчанию PostgreSQL настроен на использование аутентификации peer или ident для локальных подключений, что означает привязку к пользователю операционной системы. Для работы с 1С:Предприятие необходимо изменить метод аутентификации на md5 или scram-sha-256, чтобы сервер 1С мог передавать пароль явно.

Откройте файл pg_hba.conf, расположенный обычно в каталоге данных кластера (например, /var/lib/pgsql/data или C:\Program Files\PostgreSQL\data). Найдите строки, отвечающие за подключения от localhost или конкретных IP-адресов, и замените метод аутентификации. Например, строка host all all 127.0.0.1/32 ident должна быть изменена на host all all 127.0.0.1/32 md5. Это позволит пользователю подключаться, используя пароль, заданный в настройках кластера.

После внесения изменений в конфигурационный файл необходимо перезагрузить службу PostgreSQL, чтобы новые правила вступили в силу. Команда зависит от операционной системы: в Linux это может быть systemctl restart postgresql, а в Windows — перезапуск службы через консоль управления. Без этого шага попытки подключения будут отклоняться сервером БД с ошибкой аутентификации.

⚠️ Внимание: Никогда не устанавливайте метод аутентификации trust в продакшен-среде. Это позволяет подключаться к базе данных без пароля любому пользователю, что создает критическую уязвимость безопасности.

Также необходимо создать роль в базе данных, от имени которой будет работать . Это делается через утилиту psql или графический интерфейс pgAdmin. Пользователь должен иметь права на создание баз данных (CREATEDB), если вы планируете создавать новые информационные базы через интерфейс 1С, или права владельца уже существующей базы.

Регистрация источника данных ODBC

Для того чтобы кластер серверов 1С увидел базу данных, необходимо зарегистрировать системный источник данных (DSN). Это делается через администратор источников данных ODBC (odbcad32.exe). Важно запускать эту утилиту с правами администратора и выбирать вкладку "Системный DSN", чтобы источник был доступен для службы, работающей под системной учетной записью.

При создании нового источника выберите драйвер PostgreSQL Unicode. В окне настройки укажите имя источника (например, 1C_DB), сервер (IP-адрес или localhost), порт (по умолчанию 5432) и имя базы данных. Если база еще не создана, можно указать имя любой существующей базы (например, postgres), так как создание новой базы 1С выполнит самостоятельно при регистрации в кластере.

На вкладке "Connection" или "Page 2" обязательно укажите имя пользователя (User Name) и пароль. Проверка соединения (Test) на этом этапе может не пройти, если база данных еще не инициализирована структурой 1С, но проверка сетевого доступа должна быть успешной. Сохраните настройки, убедившись, что источник появился в списке системных DSN.

Почему не видно источник данных?

Если вы создали источник данных, но сервер 1С его не видит, проверьте разрядность утилиты ODBC. Для 64-битной службы 1С нужно использовать 64-битный администратор ODBC, который находится в C:\Windows\SysWOW64\odbcad32.exe для 32-битных драйверов или в System32 для 64-битных.

Добавление базы данных в кластер серверов 1С

Запустите консоль администрирования 1С:Предприятия и подключитесь к кластеру серверов. В дереве объектов раскройте ветку "Кластеры серверов", затем "Информационные базы". Через контекстное меню выберите пункт "Добавить" -> "Информационную базу". В открывшемся мастере создания укажите наименование базы и тип СУБД — выберите PostgreSQL из списка.

В поле "Сервер баз данных" необходимо указать имя источника данных ODBC, которое вы создали на предыдущем этапе (например, 1C_DB). Не путайте это поле с именем сервера PostgreSQL — здесь указывается именно имя DSN. Поле "Имя базы данных" заполняется только если база уже существует физически на сервере СУБД; если поле оставить пустым, 1С попытается создать новую базу при первом запуске.

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

Параметр настройки Значение для 1С Примечание
Тип СУБД PostgreSQL Выбирается в мастере создания
Сервер БД Имя DSN (например, 1C_DB) Системный источник ODBC
Пользователь БД postgres (или созданный вами) Должен иметь права CREATEDB
Пароль Пароль пользователя БД Хранится в зашифрованном виде
Кодировка UTF-8 Рекомендуемая кодировка для Postgres

⚠️ Внимание: Интерфейс консоли администрирования и параметры могут незначительно отличаться в зависимости от версии платформы 1С (8.3.10, 8.3.20 и т.д.). Всегда сверяйтесь с официальной документацией к вашей конкретной версии релиза.

📊 Какая ОС используется у вас для сервера БД?
Windows Server
Linux (Ubuntu/CentOS)
FreeBSD
macOS (тестовая среда)

Запуск и первичная инициализация базы

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

Процесс создания может занять от нескольких секунд до нескольких минут в зависимости от мощности сервера и скорости дисковой подсистемы. В журнале регистрации событий (файл 1CV8Log или просмотр через консоль) должны появиться сообщения об успешном создании схемы и таблиц. Если процесс прерывается ошибкой, внимательно изучите лог-файл PostgreSQL (postgresql.log), там часто содержится более детальная информация о причине отказа.

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

💡

Для ускорения работы базы данных на PostgreSQL рекомендуется увеличить параметр shared_buffers в файле postgresql.conf до 25% от объема оперативной памяти сервера, выделенной под СУБД.

Диагностика проблем и оптимизация производительности

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

Для диагностики используйте стандартные средства мониторинга. В можно включить технологический журнал (ТЖ), который покажет длительность выполнения запросов к СУБД. В самом PostgreSQL полезны расширения pg_stat_statements, позволяющие выявить "тяжелые" запросы, нагружающие процессор. Анализ этих данных помогает понять, нужна ли оптимизация индексов или пересмотр логики работы конфигурации.

Регулярное обслуживание базы данных также критически важно. В отличие от MS SQL, в PostgreSQL требуется периодически выполнять команду VACUUM для освобождения места от удаленных записей и обновления статистики. Настройка автовакуумирования (autovacuum) обычно включена по умолчанию, но в высоконагруженных системах 1С может потребоваться ручная настройка порогов срабатывания.

💡

Стабильность работы 1С на PostgreSQL на 80% зависит от правильной настройки параметров памяти (shared_buffers, work_mem) и своевременного обслуживания таблиц (VACUUM).

Какую версию PostgreSQL лучше выбрать для 1С?

Рекомендуется использовать версии PostgreSQL 12, 13 или 14. Эти версии прошли полноценное тестирование фирмой "1С" и обеспечивают наилучшую совместимость. Более новые версии (15, 16) могут работать, но требуют проверки на конкретной конфигурации, так как в них могут быть изменения в поведении оптимизатора запросов.

Можно ли использовать базу PostgreSQL для файлового варианта 1С?

Нет, база данных PostgreSQL используется только для клиент-серверного варианта работы 1С:Предприятие. Файловый вариант хранит данные в собственном формате файлов (.1CD) и не использует внешние СУБД. Для работы с PostgreSQL обязательно наличие запущенного сервера 1С.

Что делать, если при создании базы возникает ошибка "Invalid authorization specification"?

Эта ошибка указывает на проблему с аутентификацией. Проверьте файл pg_hba.conf: метод должен быть md5 или scram-sha-256. Также убедитесь, что пароль в настройках источника данных ODBC и в настройках информационной базы в кластере 1С совпадает с паролем пользователя в PostgreSQL.

Нужно ли устанавливать PostgreSQL на тот же сервер, где стоит 1С?

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