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

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

1С: как подключить базу PostgreSQL

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

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

Главная особенность: 1С не работает с «ванильной» сборкой PostgreSQL с официального сайта postgresql.org. Требуется либо сборка с патчами от фирмы «1С» (1c.postgres), либо Postgres Pro Standard/Certified. Это связано с особенностями работы платформы с типами данных, локалями и механизмами блокировок. Попытка подключить обычный PostgreSQL приведёт к ошибкам при создании базы или нестабильной работе.

Ниже разобран полный цикл: выбор сборки, установка, создание базы через консоль кластера, настройка доступа и проверка результата. Инструкция ориентирована на Linux и Windows, различия оговорены отдельно.

Какую сборку PostgreSQL выбрать для 1С

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

Варианты сборок PostgreSQL для 1С

Сборка от фирмы «1С» (1c.postgres)

Бесплатная, распространяется через портал 1С для зарегистрированных пользователей. Подходит для большинства внедрений. Ограничение — обновления выходят с задержкой относительно апстрима.

Postgres Pro Standard / Certified

Коммерческая СУБД с поддержкой и сертификацией. Подходит для крупных внедрений и организаций с требованиями к сертифицированному ПО. Требует покупки лицензии.

Обычный PostgreSQL с postgresql.org

Не подходит: создание базы из консоли 1С завершится ошибкой, а если базу развернуть обходными путями — возможны сбои и повреждение данных.

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

Установка и первичная настройка PostgreSQL

На Linux-сервере сборка от 1С обычно распространяется в виде пакетов (rpm/deb) или архива с установочным скриптом. После установки пакетов выполняется инициализация кластера баз данных и запуск службы. На Windows сборка ставится инсталлятором, который сам создаёт службу и предлагает задать пароль суперпользователя postgres.

bash
# Пример для Linux (пути зависят от сборки)
# Инициализация кластера
/opt/pgpro/1c-15/bin/pg-setup initdb
# Запуск службы
systemctl enable --now postgres
# Проверка статуса
systemctl status postgres

Сразу после установки задайте пароль суперпользователя postgres и проверьте, что СУБД принимает локальные подключения через psql. Если psql подключается и выполняет SELECT version();, базовая установка успешна.

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

Настройка доступа: pg_hba.conf и сетевые параметры

Файл pg_hba.conf управляет тем, кто и откуда может подключаться к СУБД. Сервер 1С обращается к PostgreSQL по сети (даже если оба на одной машине — через TCP), поэтому нужна строка, разрешающая подключение с адреса сервера 1С для пользователя, под которым будет работать база.

bash
# Пример строки в pg_hba.conf
# Тип  база    пользователь  адрес             метод
host    all     postgres      192.168.1.10/32   md5

В postgresql.conf проверьте параметр listen_addresses — по умолчанию во многих сборках стоит localhost, и СУБД не принимает внешние подключения. Укажите адрес интерфейса сервера или * (с обязательным ограничением доступа через pg_hba.conf и межсетевой экран). После правки обоих файлов перезапустите службу PostgreSQL или выполните reload.

Не забудьте про сетевой уровень: порт PostgreSQL (по умолчанию 5432) должен быть открыт в брандмауэре сервера СУБД для адреса сервера 1С. Проверить доступность порта можно командой telnet адрес 5432 или Test-NetConnection в PowerShell с машины сервера 1С.

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

База в связке 1С + PostgreSQL создаётся не в pgAdmin и не через psql, а средствами сервера 1С — тогда платформа сама создаёт схему, таблицы и системные объекты в нужном формате. Используется консоль администрирования серверов 1С (на Windows — оснастка «Администрирование серверов 1С Предприятия», на Linux — утилита rac или веб-консоль RAS).

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

Если база данных с таким именем уже существует в PostgreSQL, платформа попытается использовать её; если базы нет — создаст автоматически при наличии у указанного пользователя права CREATEDB. Рекомендуемая практика — завести отдельного пользователя СУБД для баз 1С вместо работы под суперпользователем postgres.

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

Альтернатива: создание базы из конфигуратора

Если консоль кластера недоступна (например, работаете удалённо и есть только клиент 1С), базу можно создать прямо из диалога добавления информационной базы в стартере 1С: выбрать «Создание новой информационной базы», вариант «На сервере 1С:Предприятия» и заполнить те же параметры СУБД. Механизм тот же — сервер 1С обратится к PostgreSQL и создаст базу.

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

Проверка подключения и типичные ошибки

Признак успешного подключения — база создана в кластере, открывается в конфигураторе и толстом/тонком клиенте, а в PostgreSQL видны её таблицы (например, через \dt в psql — появятся системные таблицы платформы). Дополнительно проверьте журнал регистрации 1С и лог PostgreSQL на предмет ошибок аутентификации.

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

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

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

База отображается в списке, свойства открываются без ошибок

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

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

Подключение к PostgreSQL
Норма

psql с параметрами сервера 1С подключается и показывает базу в \l

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

Ошибка аутентификации или «no pg_hba.conf entry»

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

Конфигуратор открывает базу, можно войти в режим предприятия

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

Ошибка при подключении к информационной базе на старте

Логи PostgreSQL
Норма

Нет повторяющихся ошибок FATAL и отказов в доступе

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

Сообщения об ошибках аутентификации или несовместимости версий

Типичные ошибки
01
Установка обычного PostgreSQL вместо сборки с патчами — создание базы падает с ошибкой, время потрачено на переустановку.
02
listen_addresses = localhost при разнесённых серверах — сервер 1С не может достучаться до СУБД, ошибка соединения.
03
Отсутствие строки в pg_hba.conf для адреса сервера 1С — ошибка «no pg_hba.conf entry for host».
04
Несовместимая версия PostgreSQL для данной платформы — отказ при создании базы или нестабильная работа.
05
Создание базы вручную через psql с неверной локалью — проблемы с сортировкой и регистром символов в 1С.
06
Работа всех баз под суперпользователем postgres — риск случайного повреждения и сложности с разграничением прав.
Маршрут решения

Как выбрать действие по ошибке

Ошибка «no pg_hba.conf entry for host ...»Добавьте в pg_hba.conf строку для адреса сервера 1С с методом md5 и перезапустите PostgreSQL.
Ошибка аутентификации по паролюПроверьте пароль пользователя СУБД, задайте его заново через ALTER USER и обновите в свойствах базы кластера.
«СУБД не поддерживается» при создании базыПроверьте, что установлена сборка с патчами и версия СУБД совместима с версией платформы 1С.
Таймаут соединения без деталейПроверьте listen_addresses, открытие порта 5432 в брандмауэре и доступность сервера по сети.

Резервное копирование и сопровождение

После подключения базы сразу настройте резервное копирование. Для PostgreSQL штатный инструмент — pg_dump (логическая копия) или физические копии с WAL-архивацией для крупных баз. Копию средствами 1С (выгрузка .dt) стоит делать дополнительно перед обновлениями конфигурации, но не как единственный механизм: восстановление большой базы из .dt существенно медленнее.

Плановое обслуживание включает регулярный VACUUM/ANALYZE (в современных версиях autovacuum обычно справляется, но за ним нужно следить), мониторинг разрастания таблиц и журналов, а также периодическое тестовое восстановление копий — копия, которая ни разу не проверялась восстановлением, не считается надёжной.

Часто задаваемые вопросы

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

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

Кто должен создавать базу: администратор СУБД или администратор 1С?

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

Какую кодировку и локаль указывать при создании базы?

Кодировка — UTF-8. Локаль должна соответствовать языку данных (для русскоязычных баз обычно ru_RU.UTF-8), иначе возможны проблемы с сортировкой и сравнением строк. Когда база создаётся средствами сервера 1С, корректные параметры подставляются автоматически; при ручном создании базы в СУБД ошибку в локали исправить потом сложно — проще пересоздать базу.

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

Да. Файловая база выгружается в файл .dt через конфигуратор («Администрирование» → «Выгрузить информационную базу»), затем на сервере 1С создаётся новая база с типом СУБД PostgreSQL, и в неё загружается этот файл. После загрузки проверьте работу регламентных заданий, пользователей и настроек, специфичных для клиент-серверного режима.

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

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

Что делать, если после обновления платформы 1С база перестала открываться?

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

Итог

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

Для подключения PostgreSQL к 1С нужна специальная сборка СУБД, корректные pg_hba.conf и listen_addresses, а саму базу создают средствами сервера 1С через консоль кластера. Проверяйте совместимость версий платформы и СУБД, работайте под отдельным пользователем СУБД и настройте резервное копирование сразу после развёртывания.