Разберем распространенную проблему, с которой сталкиваются системные администраторы при развертывании клиент-серверной архитектуры 1С: Предприятие 8.3: сервер приложений работает под управлением ОС Windows Server, а СУБД PostgreSQL размещена на отдельной машине под управлением Linux (например, Ubuntu). При попытке создать новую информационную базу через консоль администрирования или клиент 1С возникает ошибка «Сервер баз данных не обнаружен».
Проанализируем основные причины этой ошибки и рассмотрим пошаговый алгоритм её устранения.
Стандартный дистрибутив PostgreSQL из официальных репозиториев Linux не содержит специфических патчей, необходимых для работы сервера приложений 1С. Без них 1С не сможет корректно работать с длинными индексами, блокировками и объектами метаданных.
Для корректного взаимодействия следует использовать сборки PostgreSQL, подготовленные и протестированные компанией 1С или ее официальными партнерами (например, Postgres Professional). Скачать нужную сборку можно с официального сайта обновления программ 1С из раздела дополнительных компонентов.
По умолчанию PostgreSQL слушает только локальный интерфейс (localhost / 127.0.0.1), что блокирует любые внешние сетевые подключения от сервера 1С.
Для исправления этой настройки проанализируем и отредактируем основной конфигурационный файл PostgreSQL:
/etc/postgresql/9.6/main/postgresql.conf).listen_addresses и зададим ему значение '*' или укажем конкретный IP-адрес сетевой карты Linux-сервера.
listen_addresses = '*'
port = 5432
После внесения изменений перезапустим службу СУБД командой:
sudo systemctl restart postgresql
Даже если PostgreSQL слушает порт на всех сетевых интерфейсах, правила авторизации клиентов в файле pg_hba.conf по умолчанию разрешают вход только с локальной машины. При обращении сервера 1С СУБД отклоняет запрос на этапе проверки прав доступа.
Рассмотрим, как настроить правила авторизации:
pg_hba.conf (в Ubuntu обычно находится в /etc/postgresql/9.6/main/pg_hba.conf или в каталоге данных кластера).Пример настройки для доступа из локальной сети с аутентификацией по паролю (md5):
# TYPE DATABASE USER ADDRESS METHOD
host all all 192.168.1.0/24 md5
Если требуется временно проверить доступность и исключить ошибки проверки пароля, можно указать метод trust для администратора postgres или локальной сети, после чего обязательно перезапустить службу PostgreSQL.
Наличие успешного ICMP-ответа (команда ping) подтверждает связность на сетевом уровне, но не гарантирует доступность служб по TCP-порту 5432. Брандмауэр на стороне Linux (UFW/iptables) или Windows Firewall может блокировать пакеты.
Выполним следующую диагностику:
5432 с сервера 1С с помощью утилиты Telnet или PowerShell:
Test-NetConnection -ComputerName 192.168.1.50 -Port 5432
sudo ufw allow 5432/tcp
postgres.В новых версиях PostgreSQL часто используется метод авторизации scram-sha-256. Старые релизы платформы 1С или клиенты libpq могут не поддерживать данный алгоритм и выдавать ошибку подключения. В этом случае в pg_hba.conf следует явно задавать метод md5.
Также обратим внимание на инициализацию кластера СУБД. Кластер PostgreSQL для 1С должен быть инициализирован с русской локалью и кодировкой UTF-8 (например, ru_RU.UTF-8), иначе 1С не сможет сформировать служебные таблицы базы данных.
postgresql.conf параметр listen_addresses равен '*'.pg_hba.conf прописана подсеть сервера 1С с методом md5 или trust.5432 открыт в межсетевом экране Linux (ufw).postgres обладает правами SUPERUSER.