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

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

Как подключить 1С к PostgreSQL: полная инструкция

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

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

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

Ниже разобран полный цикл подключения для ОС Windows и Linux, типичные ошибки и способы проверить, что связка работает корректно.

Какие версии и сборки PostgreSQL подходят для 1С

Платформа 1С:Предприятие работает не с любым PostgreSQL, а только со сборками, содержащими патчи совместимости. Есть два основных варианта: сборка PostgreSQL с сайта «1С» (публикуется в разделе технологических дистрибутивов для зарегистрированных пользователей) и Postgres Pro Standard/Certified от компании Postgres Professional. Обе линейки официально поддерживаются платформой.

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

Установка и начальная настройка PostgreSQL

Установите дистрибутив PostgreSQL с патчами 1С или Postgres Pro. При установке задайте пароль суперпользователя postgres — он понадобится при создании информационной базы. Порт по умолчанию — 5432; если он занят другим экземпляром СУБД, выберите свободный и запомните его.

После установки проверьте, что служба запущена и принимает подключения. Если сервер 1С и СУБД размещены на разных машинах, откройте порт в брандмауэре и разрешите внешние подключения в конфигурационных файлах PostgreSQL: в postgresql.conf параметр listen_addresses должен включать адрес сервера, а в pg_hba.conf — строка, разрешающая подключение с адреса сервера 1С.

bash
# Проверка, что PostgreSQL слушает порт
netstat -an | findstr 5432
# Проверка подключения клиентом psql
psql -h 127.0.0.1 -U postgres -c "SELECT version();"

Для производительной работы базы желательно скорректировать параметры памяти в postgresql.conf: увеличить shared_buffers (обычно до 20–25 % оперативной памяти сервера), настроить work_mem и effective_cache_size. Значения по умолчанию рассчитаны на слабое оборудование и станут узким местом при росте нагрузки.

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

Сервер 1С:Предприятия устанавливается из того же дистрибутива платформы: при установке выберите компоненты «Сервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия». После установки служба агента сервера (в Windows — «Агент сервера 1С:Предприятия») должна быть запущена.

Если СУБД и сервер 1С находятся на разных машинах, убедитесь в сетевой доступности между ними: сервер 1С должен «видеть» хост PostgreSQL по имени или IP, а порт СУБД — быть открытым. Рекомендуется использовать статические IP-адреса или корректные DNS-имена, чтобы подключение не отваливалось после смены адреса.

Создание информационной базы через консоль кластера

Откройте консоль «Администрирование серверов 1С:Предприятия», разверните дерево до нужного кластера, затем в контекстном меню узла «Информационные базы» выберите «Создать → Информационная база». В появившемся окне заполните параметры подключения к СУБД.

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

Ключевые поля формы: «Тип СУБД» — PostgreSQL; «Сервер баз данных» — адрес машины с СУБД (при нестандартном порте укажите его через двоеточие); «Имя базы данных» — латиницей без пробелов; «Пользователь/пароль СУБД» — учётные данные postgres или выделенного пользователя с правами на создание баз. Флаг «Создать базу данных в случае её отсутствия» позволяет платформе самой создать пустую БД в PostgreSQL.

После создания базы в кластере её нужно наполнить: запустите конфигуратор, откройте созданную базу и загрузите конфигурацию из файла .dt или .cf, либо выполните первоначальную установку типовой конфигурации. Пустая база без конфигурации в толстом или тонком клиенте не откроется осмысленно.

Проверка работоспособности связки

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

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

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

База в списке кластера
Норма

База видна в консоли, статус без ошибок

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

База не создаётся или помечена ошибкой соединения

База данных в PostgreSQL
Норма

БД с заданным именем есть в списке (psql \l), в ней есть таблицы

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

БД отсутствует или пустая после загрузки конфигурации

Запуск клиента 1С
Норма

Тонкий/толстый клиент подключается и открывает сеанс

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

Ошибка соединения с сервером или СУБД при старте

Нагрузочная проверка
Норма

Проведение документов и отчёты выполняются без таймаутов

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

Запросы зависают, в журнале PostgreSQL ошибки и дедлоки

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

Типичные ошибки и их устранение

Типичные ошибки
01
Ошибка «СУБД не обнаружена» — чаще всего несовпадение разрядности сервера 1С и PostgreSQL либо установлена сборка без патчей 1С
02
Ошибка аутентификации при создании базы — неверный пароль postgres или запрет подключения в pg_hba.conf
03
Ошибка «порт занят» или таймаут — порт 5432 закрыт брандмауэром или занят другим экземпляром СУБД
04
База создаётся, но клиент не подключается — указано неверное имя сервера СУБД, недоступное с машины кластера 1С
05
Медленная работа после запуска — не настроены shared_buffers и work_mem, СУБД работает на параметрах по умолчанию

Если при создании базы возникает ошибка с текстом про отсутствующие функции или несовместимость — это почти наверняка признак того, что установлен «ванильный» PostgreSQL без патчей. Лечится только установкой правильной сборки; обойти это настройками нельзя.

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

Границы самостоятельной настройки и когда привлекать специалиста

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

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

Итог

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

Используйте только сборки PostgreSQL с патчами 1С или Postgres Pro, совпадающие по разрядности с сервером 1С. База создаётся через консоль кластера с указанием параметров подключения к СУБД. Перед миграцией рабочих данных сделайте выгрузку .dt и проверьте связку на тестовой копии. После запуска настройте параметры памяти PostgreSQL и проверьте работу под нагрузкой.

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

Можно ли подключить 1С к обычному PostgreSQL с официального сайта?

Нет. Платформа 1С требует сборку с патчами совместимости: либо дистрибутив PostgreSQL, публикуемый фирмой «1С» для зарегистрированных пользователей, либо Postgres Pro. С ванильной сборкой создание базы завершится ошибкой.

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

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

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

Через выгрузку в конфигураторе: «Администрирование → Выгрузить информационную базу» в файл .dt, затем создание новой серверной базы в кластере и загрузка .dt в неё. Прямого «подключения» файловой базы к СУБД не существует — только выгрузка и загрузка.

Нужна ли отдельная лицензия на PostgreSQL для 1С?

Сборка PostgreSQL с патчами 1С распространяется свободно. Postgres Pro имеет коммерческие редакции с поддержкой, но есть и бесплатный вариант Standard с ограничениями. Отдельно потребуется лицензия на сервер 1С:Предприятия (кроме 32-разрядной версии с ограничениями по лицензированию).

Почему база создалась, но 1С работает очень медленно?

Чаще всего причина в параметрах PostgreSQL по умолчанию: маленькие shared_buffers и work_mem, а также в том, что не выполняется регламентное обслуживание (VACUUM, ANALYZE). Проверьте настройки памяти, настройте автоочистку и посмотрите медленные запросы в журнале СУБД.

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

На этапе создания базы нужен пользователь с правом создавать базы данных (проще всего — postgres). Для повседневной работы можно создать отдельного пользователя-владельца конкретной БД; платформа будет работать под ним, что безопаснее, чем постоянное использование суперпользователя.