Развертывание сервера 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С

srv1c

Порт менеджера кластера

1541

СУБД

PostgreSQL

Сервер PostgreSQL

localhost

Порт PostgreSQL

5432

Имя базы данных

accounting

Пользователь 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 или другую защищённую схему с ограничением доступа.