Администрирование · 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С.
# Проверка, что 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С и найдите свой кластер
- 2Создайте новую информационную базу: тип СУБД — PostgreSQL
- 3Укажите сервер СУБД (адрес и порт), имя базы данных, пользователя postgres и его пароль
- 4Отметьте флаг «Создать базу данных в случае её отсутствия»
- 5Сохраните и проверьте, что база появилась в списке и открывается в конфигураторе
Ключевые поля формы: «Тип СУБД» — PostgreSQL; «Сервер баз данных» — адрес машины с СУБД (при нестандартном порте укажите его через двоеточие); «Имя базы данных» — латиницей без пробелов; «Пользователь/пароль СУБД» — учётные данные postgres или выделенного пользователя с правами на создание баз. Флаг «Создать базу данных в случае её отсутствия» позволяет платформе самой создать пустую БД в PostgreSQL.
После создания базы в кластере её нужно наполнить: запустите конфигуратор, откройте созданную базу и загрузите конфигурацию из файла .dt или .cf, либо выполните первоначальную установку типовой конфигурации. Пустая база без конфигурации в толстом или тонком клиенте не откроется осмысленно.
Проверка работоспособности связки
Признак успешного подключения — база открывается в конфигураторе и в клиенте, а в PostgreSQL появляется база данных с заданным именем, содержащая служебные таблицы платформы. Проверить это можно через psql или pgAdmin, выполнив запрос к списку баз.
Как проверить результат
База видна в консоли, статус без ошибок
База не создаётся или помечена ошибкой соединения
БД с заданным именем есть в списке (psql \l), в ней есть таблицы
БД отсутствует или пустая после загрузки конфигурации
Тонкий/толстый клиент подключается и открывает сеанс
Ошибка соединения с сервером или СУБД при старте
Проведение документов и отчёты выполняются без таймаутов
Запросы зависают, в журнале PostgreSQL ошибки и дедлоки
Дополнительно полезно открыть технологический журнал сервера 1С и журнал PostgreSQL: там видны ошибки аутентификации, нехватки соединений или блокировок. Если база открылась, но работает медленно, чаще всего виноваты параметры памяти СУБД по умолчанию или нехватка значения max_connections.
Типичные ошибки и их устранение
Если при создании базы возникает ошибка с текстом про отсутствующие функции или несовместимость — это почти наверняка признак того, что установлен «ванильный» 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). Для повседневной работы можно создать отдельного пользователя-владельца конкретной БД; платформа будет работать под ним, что безопаснее, чем постоянное использование суперпользователя.