К статье
Практический материал

Администрирование · 9 мин

Как подключить 1С к PostgreSQL: пошаговая настройка

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

Подключение 1С к PostgreSQL — стандартный способ перевести информационные базы с файлового режима на клиент-серверный. Такая схема снимает ограничения файловой работы: появляется одновременный доступ десятков пользователей, фоновые задания без блокировок, разграничение прав на уровне СУБД и устойчивость к сетевым сбоям. Связка «сервер 1С:Предприятия + PostgreSQL» также используется как бесплатная альтернатива MS SQL Server.

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

Критичный нюанс — 1С работает не с любым PostgreSQL, а только со специально пропатченными сборками. Официально поддерживаются сборки PostgresPro (в том числе бесплатная PostgresPro Standard для 1С) и ряд сборок от сообщества. Обычный «ванильный» PostgreSQL с официального сайта postgresql.org без патчей работать с 1С не будет — база создастся с ошибкой или упадёт при первом обращении.

Что понадобится перед началом работы

Перед установкой проверьте комплект компонентов и их совместимость. Несовпадение версий и разрядности — самая частая причина ошибок на старте.

  • Дистрибутив сервера 1С:Предприятия той же версии платформы, что и клиенты.
  • Сборка PostgreSQL для 1С (PostgresPro Standard для 1С или аналогичная пропатченная сборка).
  • Одинаковая разрядность: 64-битный сервер 1С требует 64-битный PostgreSQL.
  • Учётная запись ОС с правами администратора для установки служб.
  • Лицензии: серверная лицензия 1С и клиентские лицензии на пользователей.

Размещать сервер 1С и PostgreSQL можно как на одной машине (подходит для небольших баз и тестовых сред), так и на разных серверах — это типовая схема для нагруженных систем. При раздельном размещении убедитесь, что между серверами открыт порт PostgreSQL (по умолчанию 5432) и сеть не вносит существенных задержек.

Установка и подготовка PostgreSQL для 1С

Скачайте сборку PostgresPro для 1С с официального сайта Postgres Professional — для работы с 1С доступна бесплатная версия. При установке задайте пароль суперпользователя postgres и запомните его: эта учётная запись понадобится при создании информационной базы.

После установки проверьте, что служба PostgreSQL запущена и принимает подключения. Базовую проверку удобно выполнить через psql:

bash
psql -h localhost -U postgres -c "SELECT version();"

Если сервер 1С и PostgreSQL находятся на разных машинах, откройте внешний доступ. В файле postgresql.conf установите параметр listen_addresses = '*' или укажите конкретный адрес интерфейса, а в pg_hba.conf добавьте строку, разрешающую подключение с адреса сервера 1С, например: host all all 192.168.1.10/32 md5. После правки перезапустите службу PostgreSQL.

Для продуктивной работы стоит скорректировать параметры памяти (shared_buffers, work_mem, effective_cache_size) под объём оперативной памяти сервера. Точные значения зависят от железа и нагрузки; ориентируйтесь на рекомендации PostgresPro для 1С и наблюдайте за фактическим потреблением ресурсов.

Установка сервера 1С:Предприятия

Установите компонент «Сервер 1С:Предприятия» из дистрибутива платформы. В процессе установки создаётся служба агента сервера 1С и локальный кластер с рабочими процессами. По умолчанию агент слушает порт 1540, менеджер кластера — 1541, рабочие процессы занимают диапазон 1560–1591.

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

После установки откройте «Консоль администрирования серверов 1С» (входит в комплект платформы), добавьте центральный сервер по имени машины и раскройте дерево: кластер → рабочие процессы. Если процессы видны и активны, сервер работает корректно.

Создание информационной базы на PostgreSQL

Есть два равнозначных способа создать базу: через консоль кластера серверов и через диалог добавления базы в стартовом окне 1С. Оба приводят к одному результату — платформа создаёт пустую базу в PostgreSQL и регистрирует её в кластере.

Порядок действий
  1. 1
    Откройте консоль администрирования серверов 1С и выберите кластер
  2. 2
    В контекстном меню «Информационные базы» выберите «Создать»
  3. 3
    Укажите имя базы в кластере и тип СУБД — PostgreSQL
  4. 4
    В поле «Сервер баз данных» введите адрес сервера PostgreSQL
  5. 5
    Задайте имя базы данных (латиница, без пробелов)
  6. 6
    Укажите пользователя СУБД (postgres или отдельную учётную запись) и пароль
  7. 7
    Оставьте флаг «Создать базу данных в случае её отсутствия» и нажмите OK
  8. 8
    Проверьте, что база появилась в списке и открывается в клиенте 1С

После создания пустой базы загрузите в неё конфигурацию: откройте базу конфигуратором и загрузите dt-файл с данными или конфигурацию поставщика. Для существующей файловой базы стандартный путь миграции — выгрузка в dt из файловой версии и загрузка в клиент-серверную.

Пользователям база подключается как обычно: в стартовом окне 1С добавляется информационная база с типом размещения «На сервере 1С:Предприятия», где указываются имя сервера (кластера) и имя базы в кластере. Прямых параметров PostgreSQL пользователи не видят и не должны видеть.

Проверка подключения и типичные ошибки

Признак успешной настройки — база открывается в клиенте, в консоли кластера видны сеансы пользователей, а в PostgreSQL появились таблицы и активные соединения от рабочих процессов сервера 1С.

Контрольные точки

Как проверить результат

Список баз в консоли кластера
Норма

База присутствует, статус без ошибок

Тревожный признак

База не создаётся, ошибка соединения с СУБД

Подключение из клиента 1С
Норма

База открывается, сеансы видны в консоли

Тревожный признак

Ошибка «информационная база не обнаружена»

Соединения в PostgreSQL
Норма

Активные соединения от процессов rphost

Тревожный признак

Соединений нет — сервер 1С не достучался до СУБД

Наиболее частые ошибки и их причины:

Типичные ошибки
01
Установка обычного PostgreSQL без патчей — база не создаётся или падает с ошибкой; решение — использовать сборку PostgresPro для 1С
02
Несовпадение разрядности сервера 1С и PostgreSQL — ошибка загрузки библиотеки libpq; ставьте оба компонента одной разрядности
03
Неверный пароль или пользователь СУБД — ошибка аутентификации при создании базы; проверьте учётные данные через psql
04
Закрытый порт 5432 или запрет в pg_hba.conf — сервер 1С не видит PostgreSQL по сети; настройте pg_hba.conf и брандмауэр
05
Создание базы вручную в psql с неверной кодировкой — платформа отказывается работать; позвольте 1С создать базу самостоятельно

Отдельно выделим ошибку «Ошибка СУБД: relation does not exist» и похожие — обычно они означают, что база была создана или изменена в обход платформы. Никогда не правьте структуру базы 1С напрямую в PostgreSQL: схемой данных управляет исключительно сервер 1С.

Рекомендации по эксплуатации

Настройте регулярное резервное копирование на уровне СУБД (pg_dump или физические копии с WAL-архивацией) в дополнение к выгрузкам dt. Дамп PostgreSQL восстанавливается значительно быстрее и позволяет откатиться на точку во времени.

Следите за обслуживанием: autovacuum в сборках для 1С обычно настроен, но при интенсивной записи проверяйте раздувание таблиц и журналы PostgreSQL на предмет ошибок. Раз в квартал полезно контролировать рост базы и свободное место на диске с WAL.

Итог

Что важно запомнить

1С подключается к PostgreSQL только через сервер 1С:Предприятия и только со специальной сборкой PostgresPro. Совпадение разрядности, корректный pg_hba.conf и создание базы средствами платформы — три условия рабочего подключения. Резервное копирование настраивайте на уровне СУБД сразу после развёртывания.

Частые вопросы

Можно ли подключить 1С к PostgreSQL без сервера 1С:Предприятия?

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

Подойдёт ли PostgreSQL с официального сайта postgresql.org?

Нет. 1С требует пропатченную сборку с изменённым поведением планировщика и дополнительными функциями. Используйте PostgresPro для 1С или проверенные сборки сообщества, явно заявленные как совместимые с 1С.

Как перевести существующую файловую базу на PostgreSQL?

Откройте файловую базу конфигуратором, выполните выгрузку в файл dt, затем создайте новую серверную базу на PostgreSQL и загрузите в неё этот файл. После загрузки проверьте права пользователей и выполните тестирование и исправление.

Какой пользователь PostgreSQL нужен для базы 1С?

Можно использовать суперпользователя postgres, но правильнее создать отдельную учётную запись с правом создания баз (CREATEDB). Это снижает риски при компрометации пароля и упрощает аудит подключений.

Медленно работает база после перехода на PostgreSQL — что проверить?

Проверьте настройки памяти PostgreSQL (shared_buffers, work_mem), наличие свободной оперативной памяти, скорость дисковой подсистемы и сетевые задержки между сервером 1С и СУБД. Также убедитесь, что регламентные задания и vacuum не конфликтуют по времени с пиковой нагрузкой.

Можно ли держать несколько баз 1С на одном сервере PostgreSQL?

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