Как исправить ошибку «сервер баз данных не обнаружен» при работе 1С с PostgreSQL?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Ситуация, когда после внезапного отключения электричества или некорректного завершения работы сервера PostgreSQL отказывается запускаться или становится «невидимым» для 1С, является классической проблемой системного администрирования. В этой статье мы подробно разберем, почему это происходит, как правильно восстановить работу сервера без радикальных мер (вроде полной переустановки) и как настроить конфигурационные файлы, чтобы 1С успешно подключалась к базе данных.

Выясняем причину первоначального сбоя

Проанализируем ситуацию: сервер работал исправно, но после перезагрузки служба postgresql не стартовала. Прежде чем «сносить» все данные, важно понять механизм защиты PostgreSQL. При запуске сервер создает в каталоге data специальный файл-блокировщик — postmaster.pid. Он содержит идентификатор процесса и предотвращает запуск нескольких экземпляров сервера на одних и тех же данных.

Если произошло аварийное отключение, сервер не успевает удалить этот файл. При следующей попытке запуска служба видит postmaster.pid, «думает», что сервер уже запущен, и завершает работу с ошибкой. Решение здесь максимально простое: нужно просто зайти в каталог с данными (обычно это папка data внутри директории установки PostgreSQL) и вручную удалить файл postmaster.pid. После этого служба запустится в штатном режиме без потери данных.

Настройка сетевых интерфейсов в postgresql.conf

Если вы уже переустановили сервер и столкнулись с тем, что 1С выдает «сервер баз данных не обнаружен», хотя через pgAdmin подключение проходит, значит, проблема кроется в сетевых настройках. Разберем по шагам настройку основного конфигурационного файла postgresql.conf.

По умолчанию PostgreSQL часто настроен на прослушивание только локального адреса (loopback). Для корректной работы с 1С (даже если они стоят на одном физическом сервере) необходимо явно разрешить сетевые соединения. Найдем в файле postgresql.conf параметр listen_addresses.

Рекомендуется установить значение «звездочка», что означает «слушать все доступные сетевые интерфейсы»:


# В файле postgresql.conf
listen_addresses = '*' 
port = 5432

Также обратите внимание на порт. Если вы переустанавливали PostgreSQL несколько раз, новая установка могла автоматически занять порт 5433 или выше, если 5432 был чем-то занят или помечен системой как зарезервированный. Проверьте, чтобы порт в настройках сервера совпадал с тем, который вы указываете в консоли кластера 1С.

Настройка прав доступа в pg_hba.conf

Теперь проанализируем файл pg_hba.conf, который отвечает за аутентификацию (Host-Based Authentication). Именно здесь настраивается, кому, откуда и с какими правами разрешено подключаться к базам. Рассмотрим, как разрешить подключения максимально открыто для отладки, а затем сузить их до безопасных.

Для того чтобы разрешить подключения всем пользователям со всех IP-адресов внутри локальной сети (или с самого сервера), добавим следующие строки в конец файла:


# TYPE  DATABASE        USER            ADDRESS                 METHOD

# Разрешаем все локальные подключения IPv4
host    all             all             127.0.0.1/32            trust

# Разрешаем подключения из локальной сети (например, 192.168.1.x)
host    all             all             192.168.1.0/24          trust

# Разрешаем подключения с любых адресов (только для тестов!)
host    all             all             0.0.0.0/0               trust

# Не забываем про IPv6, так как 1С часто обращается по ::1
host    all             all             ::1/128                 trust

Важное пояснение: метод trust означает, что сервер будет доверять любому пользователю без пароля. Это удобно для первичной настройки, но крайне небезопасно для рабочих сред. Как только связь между 1С и PostgreSQL будет установлена, замените trust на md5 или scram-sha-256 и укажите пароли для пользователей.

Специфика PostgreSQL для 1С:Предприятие

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

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

  1. Сборка от самой фирмы 1С (доступна на портале ИТС).
  2. Сборки от Postgres Professional (версия для 1С).
  3. Сборки от Etersoft.

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

Проверка окружения и брандмауэра

Посмотрим на ситуацию со стороны операционной системы. Даже если PostgreSQL настроен идеально, подключения могут блокироваться на уровне Windows. Разберем основные моменты:

  1. Брандмауэр Windows: При переустановке PostgreSQL создается новая служба и новый исполняемый файл postgres.exe. Старые правила в брандмауэре могут быть привязаны к конкретному пути или ID процесса. Проверьте, разрешен ли входящий трафик по порту 5432 (TCP).
  2. Антивирус: Некоторые антивирусы блокируют активность новых процессов, которые пытаются открыть сетевой порт. Попробуйте временно отключить антивирус для проверки гипотезы.
  3. Библиотеки среды: Убедитесь, что установлены необходимые пакеты Visual C++ Redistributable. Без них сервер может запускаться, но работать некорректно при попытке обработки запросов от клиента.

Параметры создания базы в консоли 1С

При создании информационной базы в поле «Сервер баз данных» можно указывать разные значения. Если localhost не работает, попробуйте проанализировать альтернативные варианты записи:

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

Подводя итог: в большинстве случаев проблема «не обнаруженного сервера» решается либо удалением postmaster.pid после сбоя, либо корректной пропиской listen_addresses = '*' и настройкой доверенных сетей в pg_hba.conf. Совместное использование этих методов гарантирует стабильное подключение 1С к базе данных.

← На главную