Развертывание сервера 1С:Предприятие и PostgreSQL на Linux
Развертывание сервера 1С:Предприятие и PostgreSQL на Linux
Ниже — пошаговая инструкция по установке и первоначальной настройке серверной 1С, активации лицензии, подключению PostgreSQL, настройке журналов, созданию информационной базы, загрузке .dt и открытию портов firewall.
В качестве примера возьмём Ubuntu Server 22.04/24.04 LTS, архитектуру x86-64 и клиент-серверный вариант 1С. Команды запуска службы и имена пакетов могут отличаться в зависимости от версии платформы и выбранной сборки PostgreSQL.
1. Общая схема развертывания
Рабочее место пользователя
Клиент 1С / Конфигуратор / консоль администрирования
TCP 1540 и 1560–1591
Linux-сервер 1С
Агент кластера, менеджер кластера, рабочие процессы
TCP 5432 — если PostgreSQL на другом узле; локальное соединение — если на этом же
PostgreSQL для 1С
Хранение таблиц и данных информационной базы
Рекомендуется использовать версию платформы, совместимую с конфигурацией 1С и выбранной версией PostgreSQL. Для PostgreSQL предпочтительна сборка, предназначенная для 1С и совместимая с выбранным релизом платформы: не всякая стандартная сборка PostgreSQL одинаково подходит для этой задачи. Документация 1С по PostgreSQL【turn193793view0】
2. Подготовка Linux-сервера
Перед установкой задайте имя сервера и обновите пакеты ОС.
sudo apt update
sudo apt upgrade -y
sudo hostnamectl set-hostname srv1c
hostname -f
Проверьте IP-адрес и сетевое разрешение имени:
ip -br address
getent hosts srv1c
Для стабильной работы сервера рекомендуется закрепить за ним статический IP-адрес или зарезервировать адрес на DHCP-сервере.
Скачайте с официального портала 1С:
- дистрибутив платформы 1С нужной версии для Linux;
- серверные компоненты платформы;
- при необходимости — клиентские компоненты и средства администрирования;
- совместимую сборку PostgreSQL для 1С.
В Linux-документации 1С приведены варианты установки из DEB- и RPM-пакетов. Руководство по установке платформы на Linux【turn968566view0】
3. Установка PostgreSQL
3.1. Установка пакетов
Для Ubuntu/Debian загрузите совместимую сборку PostgreSQL для 1С с официального ресурса распространения. Пакеты и зависимости выбирайте для своей версии ОС и платформы.
Если дистрибутив содержит локальные DEB-пакеты, их можно установить через пакетный менеджер. Например, если в каталоге находятся только предназначенные для этой установки пакеты:
cd /opt/install/postgresql
sudo apt install ./*.deb
Это пример способа установки локальных пакетов, а не универсальная команда для любого архива: предварительно распакуйте дистрибутив и убедитесь, что в каталоге нет пакетов от других версий.
После установки проверьте службу. На Ubuntu/Debian она обычно называется postgresql; у некоторых сборок и RPM-дистрибутивов имя будет другим.
systemctl list-unit-files | grep -i postgres
sudo systemctl status postgresql
Если установка завершилась успешно и служба поддерживает такое имя:
sudo systemctl enable --now postgresql
Проверьте доступность SQL-сервера:
sudo -u postgres psql -c "SELECT version();"
Если PostgreSQL не запускается, проверьте имя службы, инициализацию кластера СУБД и журнал ошибок:
sudo journalctl -u postgresql -n 100 --no-pager
Для некоторых сборок после установки необходимы отдельные команды инициализации. Их следует выполнять по инструкции именно к установленной сборке PostgreSQL.
3.2. Настройка PostgreSQL
Если 1С и PostgreSQL размещаются на одном сервере, оставьте PostgreSQL доступным только локально, если нет иных требований.
В конфигурационном файле postgresql.conf параметр может выглядеть так:
listen_addresses = 'localhost'
На Ubuntu/Debian конфигурация обычно находится в /etc/postgresql/<версия>/main/, но для сборки PostgreSQL для 1С путь может отличаться.
Настройте пароль и способ авторизации пользователя СУБД согласно требованиям выбранной сборки и версии платформы. Для начального создания базы потребуется роль PostgreSQL с достаточными правами на создание базы и объектов. Не используйте простой пароль и не разрешайте подключения от любых IP-адресов.
Если PostgreSQL расположен на отдельном сервере, нужно дополнительно настроить listen_addresses, правила pg_hba.conf для адреса сервера 1С и доступ по TCP 5432. Разрешайте соединения только от сервера 1С и необходимых администраторов. Базовые принципы настройки подключения описаны в документации Ubuntu по PostgreSQL【turn824333search7】.
Отдельно проверьте соответствие локали PostgreSQL локали будущей информационной базы 1С. Несоответствие локалей может помешать созданию или работе базы. 【turn193793view0】
4. Установка сервера 1С
4.1. Установка DEB-пакетов
Поместите архив с дистрибутивом в каталог установки, например /opt/install/1c, и распакуйте его:
sudo mkdir -p /opt/install/1c
sudo chown "$USER":"$USER" /opt/install/1c
cd /opt/install/1c
tar -xzf deb64_<версия>.tar.gz
Здесь и далее замените <версия> именем конкретного релиза из загруженного дистрибутива.
Посмотрите, какие пакеты были распакованы:
find . -maxdepth 2 -type f -name '*.deb'
Установите как минимум компоненты common и server соответствующей версии. Если нужен интерфейс дополнительных средств администрирования, установите также необходимые клиентские и административные компоненты.
Например, если в каталоге находятся только пакеты нужной версии:
sudo apt install ./*.deb
Не устанавливайте таким способом случайную смесь пакетов разных релизов.
4.2. Запуск службы 1С
Современные версии платформы могут устанавливать службу systemd с привязкой к конкретному релизу. Найдите установленную версию:
ls /opt/1cv8/x86_64/
Для примера ниже используем версию 8.3.27.2074. Замените её на фактическую версию установленного пакета.
V=8.3.27.2074
sudo systemctl link \
"/opt/1cv8/x86_64/$V/srv1cv8-$V@.service"
sudo systemctl enable --now \
"srv1cv8-$V@default"
Проверьте состояние:
sudo systemctl status "srv1cv8-$V@default"
Если имя службы или путь отличаются, используйте файл службы, поставляемый установленным дистрибутивом. Приведённая схема регистрации systemd-службы соответствует руководству администратора 1С для Linux. 【turn398673search4】
Дополнительно проверьте сетевые порты:
sudo ss -lntp | grep -E ':(1540|1541|1560|1591)\b'
Наличие не всех рабочих портов сразу после запуска может быть нормальным: состав открытых портов зависит от работающих процессов кластера.
5. Активация лицензии 1С
Сначала определите вид защиты, включённый в вашу поставку:
- Программная лицензия — активируется с помощью регистрационного номера и PIN-кода.
- Аппаратная лицензия — используется ключ защиты; Linux-серверу может потребоваться совместимый драйвер и настройка доступа к ключу.
- Серверная лицензия и клиентские лицензии — это разные задачи лицензирования. Наличие лицензии на сервер не обязательно означает наличие лицензий для всех пользователей.
- Запустите предусмотренный вашей версией платформы мастер получения лицензии через приложение 1С или Конфигуратор.
- Укажите регистрацию продукта и PIN-код из приобретённой поставки.
- Выберите подходящий вариант получения: через интернет или через файл при ручной активации.
- Для серверной лицензии обязательно выбирайте компьютер, на котором фактически работает соответствующий сервер 1С. Не активируйте её случайно на рабочей станции администратора.
- Сохраните полученную лицензию и проверьте запуск кластера и подключение к информационной базе.
В Linux для общесистемных программных лицензий используется каталог /var/1C/licenses. Для лицензий текущего пользователя применяются пользовательские каталоги; права на файлы должны соответствовать требованиям платформы и учётной записи, под которой работает 1С. 【turn311514search0】
Не удаляйте файлы лицензий и не меняйте без необходимости идентификационные параметры сервера после активации: программная лицензия может зависеть от параметров компьютера. Подробные варианты получения лицензий приведены в инструкции 1С по программному лицензированию【turn824333search4】.
6. Установка консоли администрирования
Есть два основных варианта администрирования сервера 1С.
Вариант A — графическая консоль. На рабочей станции администратора установите совместимые компоненты платформы и административную консоль 1С. В зависимости от версии установщик предлагает компонент дополнительных функций администрирования. Для консоли Windows может потребоваться регистрация соответствующего компонента MMC.
Вариант B — администрирование через Linux. Используйте комплектные утилиты:
- ras — сервер удалённого администрирования;
- rac — командная утилита для управления сервером.
В типовой установке удалённое администрирование используют через порт 1545. Его нужно настроить и запустить согласно документации своей версии. Пример запуска ras для проверки работы:
V=8.3.27.2074
"/opt/1cv8/x86_64/$V/ras" \
cluster --daemon --port=1545 localhost:1541
Здесь localhost:1541 — адрес менеджера кластера, к которому подключается ras. Для постоянной эксплуатации следует настроить запуск ras как службу, используя штатный файл службы установленного релиза.
Не открывайте порт 1545 всему интернету: ограничьте доступ IP-адресами администраторов. Сведения о настройках ras приведены в руководстве 1С по настройке серверов【turn824333search2】.
7. Настройка связи сервера 1С с PostgreSQL
Когда обе службы запущены, нужно создать информационную базу на кластере 1С.
С рабочей станции, на которой установлен клиент 1С:
- Откройте список информационных баз.
- Нажмите Добавить → Создание новой информационной базы.
- Выберите вариант размещения На сервере 1С:Предприятия.
- Укажите сервер 1С и имя информационной базы.
- На шаге настройки параметров СУБД выберите PostgreSQL.
- Укажите адрес сервера PostgreSQL, имя базы данных, роль PostgreSQL и пароль.
- Установите подходящие региональные настройки и завершите создание.
Для примера, если обе службы находятся на одном сервере:
|
Параметр |
Пример |
|---|---|
|
Сервер 1С |
|
|
Порт менеджера кластера |
|
|
СУБД |
PostgreSQL |
|
Сервер PostgreSQL |
|
|
Порт PostgreSQL |
|
|
Имя базы данных |
|
|
Пользователь PostgreSQL |
Отдельная роль с необходимыми правами |
Это пример заполнения полей, а не готовые логин и пароль. В процессе создания 1С создаёт необходимую структуру объектов базы, если указанная база данных ещё не содержит информационную базу 1С. 【turn539914view0】
Что проверить, если подключение не работает
- Запущены ли службы 1С и PostgreSQL.
- Совпадает ли версия PostgreSQL с поддерживаемой версией платформы.
- Правильно ли указаны адрес СУБД, имя базы и пароль.
- Разрешено ли соединение в pg_hba.conf.
- Может ли сервер 1С разрешить имя хоста.
- Совпадает ли локаль базы с локалью PostgreSQL.
- Не блокируют ли подключение firewall или правила сети.
Не открывайте PostgreSQL наружу только потому, что клиентам требуется доступ к серверу 1С: в этой схеме клиентские приложения работают через сервер 1С, а не непосредственно через PostgreSQL.
8. Включение технологического журнала
Технологический журнал (tech log) нужен для диагностики работы платформы, ошибок и проблем производительности. Он отличается от журнала регистрации самой информационной базы.
8.1. Создание каталога журналов
Создадим каталог для журналов и проверим учётную запись службы 1С:
sudo mkdir -p /var/log/1c/tech
ps -eo user,group,cmd | grep '[r]agent'
ps -eo user,group,cmd | grep '[r]phost'
В стандартных установках пользователь службы часто называется usr1cv8, а группа — grp1cv8. Проверьте, что эти имена совпадают с фактической установкой, затем задайте права:
sudo chown -R usr1cv8:grp1cv8 /var/log/1c/tech
sudo chmod 750 /var/log/1c/tech
8.2. Создание logcfg.xml
Найдите каталог conf установленной версии. В современных установках он может находиться внутри каталога конкретного релиза:
/opt/1cv8/x86_64/<версия>/conf/
Создайте файл logcfg.xml в соответствующем каталоге конфигурации платформы со следующим содержимым:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/var/log/1c/tech" history="24">
<event>
<ne property="name" value=""/>
</event>
<property name="all"/>
</log>
</config>
Указанный пример включает подробную регистрацию событий с хранением файлов журнала до 24 часов. Это хороший старт для ограниченного диагностического периода, но не оптимальная постоянная конфигурация для нагруженного производственного сервера: объём журналов может быстро увеличиваться и влиять на производительность.
После сохранения файла проверьте права доступа. Для применения настроек при необходимости запланируйте перезапуск службы 1С в согласованное технологическое окно:
sudo systemctl restart "srv1cv8-$V@default"
Учитывайте, что перезапуск может прервать текущие подключения. Если в кластере несколько рабочих серверов, настройки нужно согласованно применить на соответствующих узлах. Пример конфигурации и рекомендации для Linux приведены в инструкции 1С по технологическому журналу【turn968566view0】.
Проверка наличия файлов:
sudo find /var/log/1c/tech -type f
9. Включение журнала регистрации 1С
Журнал регистрации хранит прикладные события: действия пользователей, ошибки, изменения данных и другие события информационной базы.
Чтобы настроить его:
- Запустите нужную информационную базу в режиме Конфигуратор.
- Откройте меню Администрирование → Настройка журнала регистрации.
- Выберите необходимые типы событий, например ошибки, предупреждения, информацию и действия пользователей.
- Настройте период хранения и детализацию в соответствии с требованиями аудита.
- Примените настройки и убедитесь, что события действительно появляются в журнале регистрации.
Для промышленной базы следует заранее определить, какие события нужно фиксировать и сколько времени их хранить: чрезмерная детализация увеличивает объём журнала и затраты на хранение. Операции настройки и обслуживания журнала регистрации описаны в руководстве администратора 1С【turn824333search12】.
Важное различие:
|
Журнал |
Назначение |
|---|---|
|
Технологический журнал |
Диагностика технических проблем платформы и серверных процессов |
|
Журнал регистрации |
История прикладных событий и действий пользователей в информационной базе |
Для рабочего сервера обычно нужны оба журнала, но с разными политиками детализации и хранения.
10. Создание чистой информационной базы и импорт .dt
10.1. Создание чистой базы
Через клиент 1С выполните создание новой базы в клиент-серверном режиме, выбрав PostgreSQL как СУБД и вариант Создание информационной базы без конфигурации либо соответствующий пустой шаблон, доступный в вашей версии платформы.
После создания убедитесь, что база зарегистрирована на нужном кластере и открывается в режиме Конфигуратор.
10.2. Загрузка файла .dt
Файл .dt — это выгрузка информационной базы, которая может содержать конфигурацию и данные. Его можно использовать для переноса базы между файловым и клиент-серверным вариантами. 【turn171352search2】
Перед загрузкой убедитесь, что в целевой базе нет нужных данных: загрузка может заменить её содержимое.
Последовательность действий:
- Сделайте резервную копию целевой базы, если там уже есть данные.
- Отключите пользователей от базы и убедитесь, что нет активных сеансов, мешающих загрузке.
- Запустите базу в режиме Конфигуратор с платформой, совместимой с исходной выгрузкой.
- Откройте меню Администрирование → Загрузить информационную базу.
- Выберите нужный .dt-файл.
- Подтвердите загрузку и согласитесь на перезапуск Конфигуратора, если он будет предложен.
- После завершения проверьте конфигурацию, пользователей, данные и запуск в режиме 1С:Предприятие.
Этот способ загрузки соответствует последовательности из документации платформы: загрузка информационной базы из .dt【turn171352search3】.
Не путайте файл .dt с .cf: файл .cf содержит конфигурацию, а не полную выгрузку данных информационной базы.
11. Настройка firewall
Для Ubuntu Server можно использовать ufw. Ниже — пример разрешения соединений только из внутренней сети.
Замените 192.168.1.0/24 на свою локальную подсеть, а 192.168.1.50 — на IP-адрес административной станции.
Перед включением firewall разрешите SSH, если управляете сервером удалённо:
sudo ufw allow OpenSSH
Откройте стандартные порты кластера для клиентских компьютеров:
sudo ufw allow from 192.168.1.0/24 to any port 1540 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 1541 proto tcp
sudo ufw allow from 192.168.1.0/24 to any port 1560:1591 proto tcp
Если используется удалённое администрирование через ras, откройте 1545 только административному компьютеру:
sudo ufw allow from 192.168.1.50 to any port 1545 proto tcp
Если PostgreSQL находится на отдельном сервере, на сервере PostgreSQL, а не на сервере 1С, разрешите 5432 только от IP-адреса сервера 1С:
sudo ufw allow from 192.168.1.20 to any port 5432 proto tcp
В этом примере 192.168.1.20 — IP сервера 1С. Если PostgreSQL установлен на том же сервере, внешний порт 5432 открывать не нужно.
Проверьте правила и включите firewall:
sudo ufw status numbered
sudo ufw enable
sudo ufw status verbose
Если используется firewalld, а не ufw, правила настраиваются другим способом. Приведённый набор портов основан на стандартных портах кластера 1С: 1540 для агента сервера, 1541 для менеджера кластера и 1560–1591 для рабочих процессов. 【turn193793view2】 Общие правила UFW приведены в документации Ubuntu【turn824333search1】.
Не перенаправляйте эти порты напрямую из интернета без отдельного проекта безопасного удалённого доступа. Для внешних пользователей лучше применять VPN или другую защищённую схему с ограничением доступа.