В этой статье я опишу как подключить автономный сервер 1C к базе расположенной на сервере СУБД Postgres, и опишу особенности такой работы.
Введение
Я уже писал две статьи по Автономному серверу 1С:
- Статья «Автономный сервер 1С» — описывает функциональность и особенности этого решения.
- Статья «Работа автономного сервера 1С с файловой базой» — описывает практическую настройку и работу с автономным сервером на примере файловой базы. В этой статье очень много примеров использования утилиты ibcmd.
А в данной статье я расскажу, как подключить автономный сервер к базе данных, которая находится на сервере СУБД. В моём случае это будет сервер PostgreSQL. Но автономный сервер 1С может работать со всеми серверами СУБД, с которыми работает обычный сервер 1С.
Обратите внимание! Для работы с сервером СУБД автономному серверу необходима серверная лицензия 1С.
Подготовка служебных каталогов и конфига
Во-первых, создадим служебные каталоги для нового экземпляра автономного сервера:
$ mkdir base_pg $ mkdir base_pg/data
- base_pg — основной каталог, сюда положим конфиг (conf.yml);
- base_pg/data — подкаталог для служебных файлов.
Перейдём в каталог с установленной платформой 1С:
$ cd /opt/1cv8/x86_64/8.3.25.1374/
И создадим конфиг для базы:
$ ./ibcmd server config init --name=base_pg --base=/base_pg --port=8080 --address=192.168.0.25 --dbms=postgresql --database-server=192.168.0.25 --db-user=postgres --database-password=54321 --database-name=base_pg > /home/alex/base_pg/conf.yml
Рассмотрим используемые здесь опции:
--name
— имя базы на автономном сервере;--base
— имя базы на встроенном веб-сервере;--port
— порт, на котором будет работать встроенный веб-сервер;--address
— адрес, на котором будет работать автономный сервер;--dbms
— тип СУБД сервера;--database-server
— адрес СУБД сервера;--db-user
— имя пользователя на СУБД сервере;--database-password
— пароль пользователя на СУБД сервере;--database-name
— имя базы на СУБД сервере.
Посмотрим на получившийся конфиг, он мало чем будет отличается от конфига для файловой базы:
$ cat base_pg/conf.yml server: address: 192.168.0.25 port: 8080 database: dbms: PostgreSQL server: 192.168.0.25 name: base_pg user: postgres password: 54321 infobase: id: 0a58fc5f-4b0a-4b7d-a36a-96878b1c1592 name: base_pg distribute-licenses: yes schedule-jobs: allow disable-local-speech-to-text: no http: base: /base_pg
Здесь в секции database указаны параметры подключения к базе на сервере СУБД.
Создание базы на сервере Postgres
Создадим базу на сервере СУБД:
$ ./ibcmd infobase create --config /home/alex/base_pg/conf.yml --data='/home/alex/base_pg/data' --create-database
Проверим что база на сервере СУБД появилась:
$ sudo su - postgres -c 'psql -c "SELECT datname FROM pg_database;"' datname ----------- postgres base_pg template1 template0 (4 строки)
Запуск автономного сервера
Запустим автономный сервер с помощью команды ibsrv. При этом необходимо указать каталог служебных файлов (base_pg/data) и конфиг (base_pg/conf.yml).
$ ./ibsrv --data='/home/alex/base_pg/data' --config /home/alex/base_pg/conf.yml 1C:Enterprise 8.3 (x86-64) (8.3.25.1374) Stand-alone Server started. Ctrl+C to exit. 1C:Enterprise 8.3 (x86-64) (8.3.25.1374) Stand-alone Server ready.
Так как мы запустили сервер в интерактивном режиме, то можем выключить его нажав Ctrl+C.
Создание службы SystemD
Для удобства мы можем сделать службу SystemD, с помощью которой будем включать и выключать автономный сервер.
Создадим файл службы:
$ sudo nano /etc/systemd/system/1c-base_pg.service [Unit] Description=Standalone server 1C for base_pg Requires=network.target [Service] ExecStart=/opt/1cv8/x86_64/8.3.25.1374/ibsrv --daemon --data='/home/alex/base_pg/data' --config /home/alex/base_pg/conf.yml Type=forking User=alex Group=alex Restart=on-failure RestartSec=1 [Install] DefaultInstance=default WantedBy=multi-user.target
После создания файла применим изменения и запустим службу:
$ sudo systemctl daemon-reload $ sudo systemctl start 1c-base_pg.service
Затем можем посмотреть статус службы:
$ systemctl status 1c-base_pg.service ● 1c-base_pg.service - Standalone server 1C for base_pg Loaded: loaded (/etc/systemd/system/1c-base_pg.service; disabled; preset: enabled) Active: active (running) since Mon 2024-10-14 14:05:57 MSK; 7s ago Process: 3122 ExecStart=/opt/1cv8/x86_64/8.3.25.1374/ibsrv --daemon --data=/home/alex/base_pg/data --config /home/alex/base_pg/conf.yml (code=exited, status=0/SUCCESS) Main PID: 3123 (ibsrv) Tasks: 208 (limit: 4623) Memory: 292.8M CPU: 2.381s CGroup: /system.slice/1c-base_pg.service ├─3123 /opt/1cv8/x86_64/8.3.25.1374/ibsrv --daemon --data=/home/alex/base_pg/data --config /home/alex/base_pg/conf.yml └─3228 /opt/1cv8/x86_64/8.3.25.1374/jre/bin/java
Как видим, запускается процесс автономного сервера ibsrv и java.
Теперь, если нам нужно что-то поменять, например выключить регламентные задания, то просто редактируем конфиг (в моём случае — /home/alex/base_pg/conf.yml) и перезапускаем службу.
Подключение к базе
Подключение к базе автономного сервера 1С ничем не отличается от файлового варианта.

Про остальные способы подключения (например конфигуратором), а также про работу утилиты ibcmd можете почитать в статье про файловый вариант — здесь.
Инструкция по автономному серверу есть на сайте ИТС.
Остальные мои статьи по серверам 1С доступны здесь.
Если понравилась статья, подпишись на мой канал в VK или Telegram.
вопрос на засыпку:
— запускаем Автономный Сервер на пустую БД, в которой есть Пользователь «Administrator»:
‘»c:\Program Files\1cv8\8.3.24.1691\bin\ibsrv.exe» —db-path=%CD% —name=DBTemp —data=%CD%\build\tmp
— как-то (не важно как) получаем PID процесса Автономного Сервера = 6000
— пытаемся выполнить команду при помощи утилиты ibcmd — например:
«c:\Program Files\1cv8\8.3.24.1691\bin\ibcmd.exe» —pid=6000 session list
получаем интерактивный запрос Пользователя:
Authentication in the infobase is required to perform the operation
User:
— если пытаемся выполнить:
«c:\Program Files\1cv8\8.3.24.1691\bin\ibcmd.exe» —pid=6000 session list —db-user=Administrator
получаем:
Error parsing option: —db-user=Administrator
— если пытаемся выполнить:
«c:\Program Files\1cv8\8.3.24.1691\bin\ibcmd.exe» —pid=20824 session list —user=Administrator
получаем:
Error parsing option: —user=Administrator
ЧЯДНТ ?
Я проводил эксперимент на базе без пользователей, попробую с пользователем и паролем. Потом отпишусь