Заметки. Установка PostgreSQL для 1С на Ubuntu

Изначально PostgreSQL – это свободная система управления базами данных (СУБД) с открытым кодом. Первая ее версия вышла в 1996 году, а сегодня она считается одной из самых мощных и популярных СУБД.

Фирма «1С» выпускает собственную модификацию PostgreSQL, хорошо приспособленную к работе с платформой «1С:Предприятие».

Разворачивать буду в окружении ProxmoxVE

Параметры создаваемой VM

VM ID — ID создаваемой VM, оставляем как есть или нумеруем согласно своему регламенту, если таковой имеется

Name — имя VM в окружении ProxmoxVE, оно же hostname для самой машины

Образ: Ubuntu 24.04.3

На этом этапе будет создано два диска, один будет отдан под систему 32GB, второй под хранилище баз данных 250GB

Хранилище дисков (Storage) выбирайте свое

Указываем количество ядер выделяемых VM и их тип

Количество памяти

Тип сети который будет у VM

На следующем шаге проверяем параметры создаваемой VM. Жмем Finish и после того как VM будет создана запускаем ее.

Установка Ubuntu 24.04

Поле того как установили сервер Ubuntu 24.04 и сделали предварительные настройки, приступим к разворачиванию нашего сервера баз данных на основе PostgreSQL.

список совместимоcти версий PostgreSQL для 1С на сайте 1С:

Установка шрифтов

sudo apt install fontconfig
sudo sh -c "echo ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true | debconf-set-selections"
sudo apt install -y msttcorefonts -qq
sudo fc-cache –fv

Создаем директорию для хранения дистрибутивов

cd /home
sudo mkdir distrib
sudo chown lazyadmin:lazyadmin ./distrib
cd distrib

PostgreSQL, версия 15.13-1.1C
Внимание! Текущая версия PostgreSQL предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.18

PostgreSQL, версия 17.5-3.1C
Внимание! Текущая версия PostgreSQL предназначена для использования с версией технологической платформы 1С:Предприятие 8 не ниже 8.3.22.2501, 8.3.23.2144, 8.3.24.1528, 8.3.25.1257

Так как у нас все еще используется древняя платформа 8.3.18.1289, будем ставим 15 версию PostgreSQL от компании Postgres Pro. Ее версии сервера postgres-1c так же, как и от компании «1С», построены на чистом коде оригинального проекта с патчами 1С.

Пройдем короткий опросник на сайте 1c.postgres.ru, и на почту придут инструкции по установке данной сборки.

Перейдем в каталог с дистрибутивами и создадим в нем каталог postgres:

cd /home/distrib/
mkdir postgres
cd postgres

Далее действуем по присланной инструкции, скачиваем скрипт, которой добавит apt репозиторий и публичный ключ подписи пакетов в систему, и выполним его:

wget https://repo.postgrespro.ru/1c-15/keys/pgpro-repo-add.sh
sudo sh pgpro-repo-add.sh

Устанавливаем

sudo apt-get install -y postgrespro-1c-15

После установки сервер должен сам запустится, проверим это:

sudo systemctl status postgrespro-1c-15.service
● postgrespro-1c-15.service - Postgres Pro 1c 15 database server
     Loaded: loaded (/usr/lib/systemd/system/postgrespro-1c-15.service; enabled; preset: enabled)
     Active: active (running) since Thu 2025-08-28 13:08:30 +05; 8s ago
    Process: 5419 ExecStartPre=/opt/pgpro/1c-15/bin/check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
   Main PID: 5421 (postgres)
      Tasks: 7 (limit: 9435)
     Memory: 82.2M (peak: 83.6M)
        CPU: 96ms
     CGroup: /system.slice/postgrespro-1c-15.service
             ├─5421 /opt/pgpro/1c-15/bin/postgres -D /var/lib/pgpro/1c-15/data
             ├─5423 "postgres: logger "
             ├─5424 "postgres: checkpointer "
             ├─5425 "postgres: background writer "
             ├─5427 "postgres: walwriter "
             ├─5428 "postgres: autovacuum launcher "
             └─5429 "postgres: logical replication launcher "

Если не запустился

/usr/pgsql-10/bin/postgresql-15-setup initdb

Start/Enable PostgreSQL:

systemctl enable postgrespro-1c-15.service
systemctl start postgrespro-1c-15.service
sudo nano /var/lib/pgpro/1c-15/data/pg_hba.conf

Изменить local all all peer на local all all trust


# "local" is for Unix domain socket connections only
local   all   all   trust

добавить подсети которые могут подключаться к серверу

# IPv4 LAN connections:
host   all   all   192.168.0.0/24   trust
host   all   all   10.0.0.0/24   trust

Перезапускаем сервис

sudo systemctl restart postgresql-15.service

Далее необходимо установить пароль пользователя postgres и создать пользователя для 1С — usr1cv8:
Заходим в консоль postgres:

sudo -u postgres psql
\password
Введите новый пароль для пользователя "postgres":
Повторите его:
\q

Где лежит файл конфигурации PostgreSQL?

sudo -u postgres psql -c 'SHOW config_file'
config_file
-------------------------------------------
 /var/lib/pgpro/1c-15/data/postgresql.conf
(1 строка)

Создаем пользователя usr1cv8:

sudo -u postgres psql
CREATE ROLE usr1cv8 WITH LOGIN SUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD 'veryhardpassword';
CREATE ROLE

Проверим создался ли пользователь:

\du
Имя роли | Атрибуты | Член ролей
----------+-------------------------------------------------------------------------+------------
postgres | Суперпользователь, Создаёт роли, Создаёт БД, Репликация, Пропускать RLS | {}
usr1cv8 | Суперпользователь, Создаёт БД | {}

Базы 1С будут хранится в табличном пространстве на отдельном диске, который смонтирован в

/home/pgts_bases

Также можно создать отдельные табличные пространства, которые 1С будет автоматически использовать:

v81c_data — для данных;
v81c_index — для индексов.

Создадим папки для данных и индексов.

sudo mkdir /home/pgts_bases/v81c_index
sudo mkdir /home/pgts_bases/v81c_data
sudo chown -R postgres:postgres /home/pgts_bases
sudo -u postgres psql
create tablespace v81c_index location <Имя папки>;
create tablespace v81c_data location <Имя папки>;

После чего выходим из утилиты psql:
\q

Используем PGTUNE

Вводим характеристики сервера, получаем рекомендованные настройки. Заносить будем через ALTER SYSTEM, копируем с сайта вкладку ALTER SYSTEM

Подключаемся к postrgresql

psql -U postgres

вставляем данные ALTER SYSTEM

выходим

в папке конфигурации должен появится файл
/var/lib/pgpro/1c-15/data/postgresql.auto.conf

sudo cat /var/lib/pgpro/1c-15/data/postgresql.auto.conf

перезапускаем postgresql

sudo systemctl restart postgrespro-1c-15.service

посмотреть новые параметры можно в консоли, например max_connections

sudo -u postgres psql -c 'SHOW max_connections'

При добавлении или создании базы данных, по умолчанию используется табличное пространство «pg_default».

Чтобы изменить, можно воспользоваться утилитой pgadmin

или через консоль

ALTER DATABASE testdb SET TABLESPACE pg_default;

Завершить подключения к базе

SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'testdb' AND leader_pid IS NULL;

На этом можно сказать что установка сервера PostgreSQL для 1С завершена.