Администрирование · 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С для зарегистрированных пользователей. Подходит для большинства внедрений. Ограничение — обновления выходят с задержкой относительно апстрима.
Коммерческая СУБД с поддержкой и сертификацией. Подходит для крупных внедрений и организаций с требованиями к сертифицированному ПО. Требует покупки лицензии.
Не подходит: создание базы из консоли 1С завершится ошибкой, а если базу развернуть обходными путями — возможны сбои и повреждение данных.
Версия СУБД должна быть совместима с версией платформы 1С. Совместимость проверяйте в системных требованиях конкретного релиза платформы: например, для платформы 8.3.22 и новее актуальны одни мажорные версии PostgreSQL, для более старых платформ — другие. Использование неподдерживаемой версии — частая причина ошибки «СУБД не поддерживается» при создании базы.
Установка и первичная настройка PostgreSQL
На Linux-сервере сборка от 1С обычно распространяется в виде пакетов (rpm/deb) или архива с установочным скриптом. После установки пакетов выполняется инициализация кластера баз данных и запуск службы. На Windows сборка ставится инсталлятором, который сам создаёт службу и предлагает задать пароль суперпользователя postgres.
# Пример для 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С для пользователя, под которым будет работать база.
# Пример строки в 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С и подключитесь к кластеру (центральный сервер, порт агента 1540 по умолчанию).
- 2В дереве выберите кластер, раздел «Информационные базы», команда «Создать» → «Информационная база».
- 3Укажите имя базы (как она будет видна пользователям) и тип СУБД — PostgreSQL.
- 4Заполните поля: сервер СУБД (адрес или имя), имя базы данных в PostgreSQL, пользователь СУБД (обычно postgres или отдельная учётная запись) и его пароль.
- 5При необходимости задайте смещение дат (по умолчанию 2000), блокировку регламентных заданий и язык.
- 6Нажмите OK и дождитесь завершения: платформа создаст базу в PostgreSQL и зарегистрирует её в кластере.
- 7Проверьте: база появилась в списке кластера и видна при добавлении базы в список на клиенте (через сервер 1С).
Если база данных с таким именем уже существует в PostgreSQL, платформа попытается использовать её; если базы нет — создаст автоматически при наличии у указанного пользователя права CREATEDB. Рекомендуемая практика — завести отдельного пользователя СУБД для баз 1С вместо работы под суперпользователем postgres.
После создания структуры базу нужно наполнить: либо загрузить выгрузку .dt через конфигуратор, либо развернуть дамп, либо начать с пустой конфигурации поставщика. Само «подключение» на этом этапе уже выполнено — осталось дать пользователям доступ, добавив базу в их список информационных баз с указанием сервера 1С и имени базы в кластере.
Альтернатива: создание базы из конфигуратора
Если консоль кластера недоступна (например, работаете удалённо и есть только клиент 1С), базу можно создать прямо из диалога добавления информационной базы в стартере 1С: выбрать «Создание новой информационной базы», вариант «На сервере 1С:Предприятия» и заполнить те же параметры СУБД. Механизм тот же — сервер 1С обратится к PostgreSQL и создаст базу.
Этот способ удобен для разработчиков и тестовых стендов. Для продуктивных баз предпочтительнее консоль кластера: там видны все параметры, включая блокировки, свойства соединения и журнал регистрации, и проще контролировать результат.
Проверка подключения и типичные ошибки
Признак успешного подключения — база создана в кластере, открывается в конфигураторе и толстом/тонком клиенте, а в PostgreSQL видны её таблицы (например, через \dt в psql — появятся системные таблицы платформы). Дополнительно проверьте журнал регистрации 1С и лог PostgreSQL на предмет ошибок аутентификации.
Как проверить результат
База отображается в списке, свойства открываются без ошибок
Ошибка «СУБД не поддерживается» или «Ошибка соединения с сервером СУБД»
psql с параметрами сервера 1С подключается и показывает базу в \l
Ошибка аутентификации или «no pg_hba.conf entry»
Конфигуратор открывает базу, можно войти в режим предприятия
Ошибка при подключении к информационной базе на старте
Нет повторяющихся ошибок FATAL и отказов в доступе
Сообщения об ошибках аутентификации или несовместимости версий
Как выбрать действие по ошибке
Резервное копирование и сопровождение
После подключения базы сразу настройте резервное копирование. Для 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С через консоль кластера. Проверяйте совместимость версий платформы и СУБД, работайте под отдельным пользователем СУБД и настройте резервное копирование сразу после развёртывания.