Сервер 1С и PostgreSQL на Astra Linux: от подготовки системы до первой базы

· 10 мин

Содержание

Чтобы установить 1С на Astra Linux, скачайте единый дистрибутив setup-full-8.3.xx.xxxx-x86_64.run, запустите его от root с компонентами server и server_admin, зарегистрируйте службу srv1cv8-<версия>@default в systemd и подключите PostgreSQL в сборке для 1С. После этого база создаётся из клиента или утилитой rac. На всё уходит час-полтора, если система подготовлена заранее.

Ниже порядок для платформы 8.3.20 и новее, где установщик общий для всех дистрибутивов Linux. Шаги подходят для Astra Linux Special Edition 1.7 и 1.8; на Common Edition шаги те же, но без мандатных механизмов защиты.

1. Подготовка Astra Linux перед установкой 1С

Большая часть проблем с сервером 1С на Linux возникает не в установщике, а раньше: в имени хоста, локали и шрифтах. Проверьте их до запуска дистрибутива.

Имя сервера и файл hosts

Клиенты и сам сервер 1С обращаются к кластеру по имени. Если имя разрешается в 127.0.1.1 (так Astra прописывает хост по умолчанию), клиенты из сети получат ошибку «сервер не обнаружен».

hostnamectl set-hostname srv1c
sudo nano /etc/hosts

В /etc/hosts строка с именем сервера должна указывать на реальный адрес в локальной сети:

127.0.0.1      localhost
192.168.1.10   srv1c.office.local srv1c

Строку 127.0.1.1 srv1c удалите. На клиентских машинах имя srv1c тоже должно разрешаться: через DNS или их собственный файл hosts.

Локаль ru_RU.UTF-8

PostgreSQL создаёт базы 1С с русской локалью. Если её нет в системе, создание базы оборвётся с ошибкой о неверном имени локали.

locale -a | grep ru_RU
sudo dpkg-reconfigure locales   # отметьте ru_RU.UTF-8

Пакеты и шрифты

Серверу нужны библиотеки для работы со шрифтами и графикой: без них не формируются печатные формы и отчёты с диаграммами.

sudo apt update
sudo apt install fontconfig imagemagick unixodbc libgsf-1-114

Шрифты Microsoft (Arial, Times New Roman) нужны, чтобы печатные формы выглядели так же, как в Windows. Установите пакет ttf-mscorefonts-installer, если он есть в подключённых репозиториях, и обновите кеш командой fc-cache -fv.

Если apt не находит пакеты, проверьте /etc/apt/sources.list: для Astra Linux SE подключите базовый и расширенный репозитории своей версии. Названия пакетов в разных выпусках Astra могут немного отличаться, подбирайте через apt search.

Режимы защиты Astra Linux SE

В Special Edition есть механизмы, которых нет в обычных дистрибутивах:

  • 🔒 замкнутая программная среда (ЗПС) — запускаются только исполняемые файлы с доверенной подписью;
  • 🛡️ мандатный контроль целостности (МКЦ) и мандатное управление доступом — у процессов и пользователей есть метки уровней.

Узнать, включены ли они, можно командами astra-digsig-control is-enabled и astra-mic-control is-enabled. Не отключайте защиту самостоятельно на сервере, который аттестован или работает с персональными данными — порядок настройки для 1С согласуйте с ответственным за информационную безопасность.

Перед запуском установщика 1С
Выполнено: 0 / 6

2. Установка платформы 1С на Astra Linux из единого дистрибутива

С версии 8.3.20 платформа для Linux поставляется одним файлом setup-full-<версия>-x86_64.run. Он сам ставит нужные deb-пакеты и раскладывает файлы в /opt/1cv8/x86_64/<версия>/.

Установка без графического интерфейса

На сервере без рабочего стола удобнее режим без диалогов:

chmod +x setup-full-8.3.25.1394-x86_64.run
sudo ./setup-full-8.3.25.1394-x86_64.run --mode unattended \
     --enable-components server,server_admin,ru

Номер версии подставьте свой. Компоненты:

КомпонентЧто ставитКогда нужен
serverсервер 1С:Предприятия (ragent, rmngr, rphost)всегда на сервере
server_adminсервер администрирования ras и утилита racдля управления кластером
ruрусский интерфейсвсегда
wsмодули расширения веб-сервераесли публикуете базы через Apache
client_full / client_thinтолстый и тонкий клиентына рабочих местах или для конфигуратора на сервере

Если на машине есть рабочий стол Fly, можно запустить тот же файл без параметров и отметить компоненты галочками в мастере.

Пользователь usr1cv8

Установщик создаёт системного пользователя usr1cv8 и группу grp1cv8. От их имени работает сервер 1С, а данные кластера хранятся в /home/usr1cv8/.1cv8/1C/1cv8/. Не меняйте владельца этой папки и не запускайте сервер вручную от root: потом служба не сможет прочитать файлы, созданные под root.

Служба в systemd

В каталоге версии лежит шаблон юнита. Его нужно подключить и запустить с экземпляром default:

VER=8.3.25.1394
sudo systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service
sudo systemctl enable srv1cv8-$VER@default
sudo systemctl start srv1cv8-$VER@default
sudo systemctl status srv1cv8-$VER@default

Так же подключается служба сервера администрирования ras: её юнит лежит в том же каталоге версии (ls /opt/1cv8/x86_64/$VER/*.service). Без запущенного ras утилита rac и консоль с Windows не смогут подключиться к кластеру.

При смене версии платформы старую службу нужно остановить и отключить (systemctl disable), а новую подключить тем же способом. Остановка службы обрывает все сеансы пользователей — делайте это вне рабочего времени.

3. PostgreSQL для 1С на Astra Linux

Обычный PostgreSQL из репозитория не подходит: 1С нужны доработки (тип mchar и ряд расширений). Используйте одну из сборок:

  • 📦 PostgreSQL от фирмы 1С, который выкладывается вместе с платформой для владельцев лицензий;
  • 📦 Postgres Pro для 1С от компании Postgres Professional (у неё есть пакеты под Astra Linux).

Установка и инициализация

Порядок зависит от сборки. У Postgres Pro после установки пакета кластер БД инициализируется утилитой pg-setup из каталога /opt/pgpro/<версия>/bin/:

sudo /opt/pgpro/1c-16/bin/pg-setup initdb --locale=ru_RU.UTF-8
sudo /opt/pgpro/1c-16/bin/pg-setup service enable
sudo /opt/pgpro/1c-16/bin/pg-setup service start

Имя каталога 1c-16 замените на свою версию. Затем задайте пароль пользователю postgres, под которым 1С будет создавать базы:

sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'СложныйПароль';"

Доступ и память

В pg_hba.conf разрешите подключение с паролем для адреса сервера 1С (если СУБД на той же машине — для 127.0.0.1/32):

host    all    all    127.0.0.1/32    scram-sha-256

В postgresql.conf стоит поправить память под свою машину. Ориентиры для выделенного сервера:

ПараметрОриентирПример для 16 ГБ ОЗУ
shared_buffersоколо 25% ОЗУ4GB
effective_cache_size50–75% ОЗУ10GB
work_mem32–64 МБ64MB
maintenance_work_mem512 МБ–1 ГБ1GB

Если сервер 1С и СУБД стоят на одной машине, учитывайте, что рабочим процессам 1С тоже нужна память: не отдавайте PostgreSQL больше половины ОЗУ. После правки перезапустите службу СУБД.

На Astra Linux SE с мандатным управлением доступом у PostgreSQL есть свои параметры проверки меток соединений. Если подключение от 1С отклоняется при правильном пароле, ищите решение в документации Astra по работе PostgreSQL в защищённом режиме, а не в настройках 1С.

4. Кластер серверов и первая информационная база

После первого запуска службы srv1cv8 агент сервера на порту 1540 автоматически создаёт локальный кластер на порту 1541. Отдельно регистрировать его не нужно.

Проверка кластера через rac

Запустите ras (если ещё не запущен как служба) и посмотрите список кластеров:

/opt/1cv8/x86_64/8.3.25.1394/rac cluster list localhost:1545

В выводе будет параметр cluster — это идентификатор кластера, он нужен для остальных команд.

Создание базы из клиента

Проще всего создать базу с рабочего места:

  1. Откройте окно запуска 1С и нажмите Добавить.
  2. Выберите создание новой информационной базы, затем шаблон конфигурации или пустую базу.
  3. Укажите вариант размещения «На сервере 1С:Предприятия».
  4. Заполните поля: кластер — srv1c, имя базы — например buh, СУБД — PostgreSQL, сервер баз данных — localhost (если СУБД на сервере 1С), пользователь postgres и его пароль.
  5. Отметьте создание базы данных в случае её отсутствия и разрешите выдачу лицензий сервером, если лицензии будут храниться на сервере.

Поле «Сервер баз данных» задаётся с точки зрения сервера 1С, а не клиента. Если СУБД стоит на той же машине, пишите localhost, даже когда клиент находится в другом офисе.

Создание базы из командной строки

Без клиента базу создаёт rac:

rac infobase create --cluster=<id_кластера> \
  --create-database --name=buh --dbms=PostgreSQL \
  --db-server=localhost --db-name=buh --locale=ru \
  --db-user=postgres --db-pwd='СложныйПароль' \
  --license-distribution=allow localhost:1545

Если сомневаетесь в каком-то параметре своей версии, сверьтесь с rac help infobase.

Администрирование с Windows

Графической консоли кластера для Linux в составе платформы нет. Есть два пути:

  • 🖥️ управлять кластером через rac прямо на сервере;
  • 🖥️ подключиться к ras на порту 1545 из консоли «Администрирование серверов 1С Предприятия» на Windows. Для этого на Windows-машине должна быть зарегистрирована библиотека radmin.dll той же версии платформы, что и сервер: команда regsvr32 "C:\Program Files\1cv8\<версия>\bin\radmin.dll" от администратора.

5. Лицензии 1С на Linux-сервере и права доступа

Для клиент-серверного режима нужна лицензия на сервер 1С:Предприятия. Клиентские лицензии можно держать на рабочих местах или на сервере — тогда их выдаёт кластер.

Программная лицензия

Файлы программных лицензий сервер хранит в /var/1C/licenses/. Активировать её можно с клиента, подключённого к серверной базе: при запросе лицензии выберите получение на сервере и введите регистрационный номер и пин-код из комплекта.

Что проверить, если активация не проходит:

  • 👤 каталог /var/1C/licenses/ существует и пользователь usr1cv8 может в него писать;
  • 🧩 сервер не на виртуальной машине, параметры которой часто меняются — программная лицензия привязана к оборудованию;
  • 🔢 пин-код не использован ранее на другой конфигурации оборудования.

После замены процессора, сетевой карты или переноса виртуальной машины программная лицензия может слететь. Потребуется повторная активация резервным пин-кодом, поэтому храните конверт с пин-кодами.

Аппаратный ключ HASP

Для USB-ключей на Linux нужен драйвер Sentinel (служба aksusbd). Ставится он отдельно от 1С, пакет берут у производителя ключей. Проверка: служба запущена, ключ виден в списке USB-устройств (lsusb).

Права на каталоги

Держите под контролем три места:

КаталогВладелецНазначение
/home/usr1cv8/.1cv8/usr1cv8данные кластера, журналы регистрации баз
/var/1C/licenses/usr1cv8 (запись)программные лицензии
/opt/1cv8/rootфайлы платформы, только чтение для службы

Если вы копировали данные кластера с другого сервера, верните владельца: sudo chown -R usr1cv8:grp1cv8 /home/usr1cv8/.1cv8.

6. Если 1С на Astra Linux не запускается: журналы и типовые ошибки

Начинайте с журнала службы — он показывает, поднялся ли агент вообще:

sudo journalctl -u srv1cv8-8.3.25.1394@default -n 100
ss -tlnp | grep -E '154[015]|15[6-9][0-9]'

Вторая команда показывает, слушаются ли порты 1540, 1541, 1545 и диапазон рабочих процессов.

Где лежат журналы

  • 📁 журнал регистрации базы — в каталоге кластера /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<id_базы>/;
  • 📁 технологический журнал — включается файлом logcfg.xml в /opt/1cv8/conf/; в нём задаётся каталог для логов, события и срок хранения;
  • 📁 журнал PostgreSQL — в подкаталоге log каталога данных СУБД.

Технологический журнал включайте на время диагностики: при подробных настройках он быстро занимает диск.

Диагностика: выберите симптом

Перезапуск службы srv1cv8 или PostgreSQL обрывает все сеансы пользователей. Предупредите людей заранее или делайте это вечером.

7. Частые вопросы об установке 1С на Astra Linux

Можно ли поставить сервер 1С и PostgreSQL на одну машину Astra Linux?
Можно, для небольших баз так делают чаще всего. Следите только за памятью: PostgreSQL и рабочим процессам 1С нужно делить ОЗУ.
Нужна ли отдельная лицензия на сервер, если пользователи работают на Linux?
Да. Клиент-серверный режим требует лицензии на сервер 1С:Предприятия независимо от операционной системы клиентов.
Работает ли файловая база 1С на Astra Linux?
Работает: достаточно установить клиент (client_full или client_thin) и указать каталог базы. Сервер и PostgreSQL для файлового варианта не нужны.
Можно ли обновить платформу, не удаляя старую?
Да. Новая версия ставится в соседний каталог /opt/1cv8/x86_64/<новая версия>/. Останавливаете старую службу, подключаете новую, и кластер подхватывает те же данные из /home/usr1cv8/.1cv8/.
Чем подключаться к кластеру, если на сервере нет графики?
Утилитой rac прямо на сервере или консолью администрирования с Windows через ras на порту 1545. Версия radmin.dll на Windows должна совпадать с версией сервера.