Почему 1С пытается подключиться к MS SQL вместо PostgreSQL и как это исправить?

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

Рассмотрим частую ситуацию, с которой сталкиваются системные администраторы: на сервере уже работает MS SQL Server, и необходимо развернуть новую информационную базу 1С на PostgreSQL. При попытке создать базу стандартным способом через окно запуска 1С, платформа упорно пытается подключиться к MS SQL, даже если явно выбран PostgreSQL, или выдает ошибки, которые, на первый взгляд, не связаны с базой данных. Разберем по шагам, почему так происходит и как правильно создать базу в такой среде.

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

Ключевое различие: Сервер 1С:Предприятия и Сервер СУБД

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

  1. Сервер СУБД (Системы Управления Базами Данных). В нашем случае это PostgreSQL или MS SQL Server. Это программа, которая непосредственно хранит все данные: таблицы, справочники, документы, регистры. Она отвечает за целостность данных, выполнение запросов и транзакции. Доступ к ней осуществляется по сетевому адресу и порту.
    • PostgreSQL по умолчанию использует порт 5432.
    • MS SQL Server по умолчанию использует порт 1433.
  2. Сервер 1С:Предприятия (процесс ragent). Это промежуточный слой, мозг всей системы. Он управляет бизнес-логикой, сеансами пользователей, распределением нагрузки в кластере и, что самое важное, именно он взаимодействует с сервером СУБД. Клиентские приложения 1С (тонкий клиент, толстый клиент) подключаются не напрямую к базе данных, а к серверу 1С. А уже сервер 1С, получив запрос от клиента, транслирует его в понятные для СУБД команды.

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

Анализ типичных ошибок при настройке

Проанализируем ошибки, с которыми столкнулся автор в обсуждении, так как они очень показательны.

Ошибка 1: 1С пытается подключиться к MS SQL при выборе PostgreSQL

Такое поведение возникает, когда вы пытаетесь создать новую базу через окно запуска 1С ("Добавить в список существующую информационную базу"), указывая тип расположения "На сервере 1С:Предприятия". Если в поле "Сервер баз данных" указать только имя машины без порта, 1С может попытаться использовать драйвер и порт СУБД, который считается "основным" или настроен по умолчанию для этого сервера, что в смешанной среде часто оказывается MS SQL.

Решение: Всегда явно указывайте порт для СУБД, отличной от MS SQL. Правильный формат для PostgreSQL: имя_сервера:порт. Например: localhost:5432 или 192.168.1.100:5432.

Ошибка 2: "Конечный компьютер отверг запрос на подключение"

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

Правильный способ: создание базы через Консоль администрирования кластера 1С

Попытка создать клиент-серверную базу "силами 1С" из окна запуска клиента — это неправильный подход. Этот инструмент предназначен для добавления уже существующих баз в список. Создавать и управлять базами на сервере 1С нужно через специальный инструмент — Консоль администрирования серверов 1С:Предприятия.

Разберем по шагам правильный алгоритм действий.

  1. Подготовка на стороне PostgreSQL (необязательно, но полезно).

    Убедитесь, что у вас есть пользователь (роль) в PostgreSQL, от имени которого сервер 1С будет подключаться к СУБД и управлять базами. Этот пользователь должен иметь права на создание баз данных (атрибут CREATEDB).

  2. Откройте Консоль администрирования.

    Найдите в меню "Пуск" "Администрирование серверов 1С Предприятия" и запустите консоль.

  3. Создайте новую информационную базу.

    В дереве консоли раскройте ветку с вашим кластером. Нажмите правой кнопкой мыши на элементе "Информационные базы" и выберите пункт "Создать".

  4. Заполните параметры новой базы.

    Откроется окно создания информационной базы. Здесь нужно внимательно заполнить все поля:

    • Имя: Короткое имя базы, которое будет использоваться для ее идентификации в кластере и при подключении клиентов (например, erp_new).
    • Описание: Произвольное описание для вашего удобства.
    • Тип СУБД: Выберите из списка PostgreSQL.
    • Сервер баз данных: Это самый важный пункт! Укажите здесь адрес сервера PostgreSQL и, обязательно, его порт через двоеточие. Например, localhost:5432.
    • База данных: Укажите имя, которое будет иметь база данных непосредственно в PostgreSQL (например, erp_new_db).
    • Пользователь сервера БД: Имя пользователя PostgreSQL (роли), который имеет права на создание баз.
    • Пароль пользователя: Пароль для этого пользователя PostgreSQL.
    • Создать базу данных в случае ее отсутствия: Установите этот флажок. В этом случае сервер 1С сам отправит команду на создание новой, пустой базы данных на сервере PostgreSQL.

    Нажмите "ОК" для завершения.

  5. Процесс создания.

    После нажатия "ОК" сервер 1С:Предприятия подключится к серверу PostgreSQL с указанными учетными данными, выполнит команду CREATE DATABASE и создаст в ней всю необходимую для работы 1С служебную структуру таблиц. Если все прошло успешно, новая база появится в списке информационных баз в консоли.

  6. Добавление базы для пользователей.

    Теперь, когда база корректно создана на сервере, вы можете добавить ее в список в окне запуска 1С у пользователей. При добавлении выберите "Добавление в список существующей информационной базы", укажите "На сервере 1С:Предприятия", введите адрес вашего сервера 1С (не СУБД!) и выберите из списка имя базы, которое вы задали на шаге 4 (erp_new).

Итог: Ключ к решению проблемы — использование правильного инструмента (Консоли администрирования) и четкое разделение понятий "Сервер 1С" и "Сервер СУБД". Создание базы через консоль гарантирует, что все команды будут выполнены корректно и в нужной последовательности, а явное указание порта в настройках соединения исключит попытки подключения к другой СУБД.

← На главную