Сервер 1С:Предприятия 8.3 на Linux с PostgreSQL: от чистой ОС до рабочей базы
Содержание
Чтобы развернуть 1С на Linux, нужны четыре вещи: сервер с поддерживаемым дистрибутивом (Ubuntu, Debian, Astra Linux, РЕД ОС, Альт), единый установщик платформы setup-full-8.3.xx.xxxx-x86_64.run, СУБД PostgreSQL в сборке для 1С и лицензия на сервер. Установщик ставит сервер 1С:Предприятия, затем вы регистрируете службу в systemd, поднимаете PostgreSQL и создаёте базу из клиента. На чистой машине вся работа занимает 1–2 часа.
Пользователи при этом могут оставаться на Windows: тонкий или толстый клиент подключается к серверу на Linux по сети так же, как к серверу на Windows. Разница только на стороне администратора — команды, службы и права.
Подготовка: дистрибутив Linux и требования к серверу
Какой дистрибутив выбрать
Сервер 1С:Предприятия 8.3 работает на 64-битных сборках Linux. Список проверенных дистрибутивов фирма 1С публикует в системных требованиях к платформе — сверьтесь с ним для своей версии.
На практике выбор такой:
- 🐧 Ubuntu Server LTS / Debian — больше всего инструкций и готовых пакетов, удобно для коммерческих компаний.
- 🛡️ Astra Linux, РЕД ОС, Альт Сервер — отечественные ОС из реестра Минцифры. Нужны госсектору и тем, кто переходит на импортозамещение.
- 🏢 RHEL-совместимые (CentOS Stream, Rocky, AlmaLinux) — если в компании уже принят стек на rpm и SELinux.
Берите LTS-версию дистрибутива. Сервер 1С живёт годами, а обновлять ОС под работающими базами — лишний риск.
Железо
Ориентиры для связки «сервер 1С + PostgreSQL на одной машине»:
| Пользователей | CPU | RAM | Диск |
|---|---|---|---|
| до 10 | 4 ядра | 16 ГБ | SSD 200 ГБ |
| 10–30 | 8 ядер | 32 ГБ | NVMe 500 ГБ |
| 30–80 | 12–16 ядер | 64 ГБ | NVMe, отдельный диск под СУБД |
| больше 80 | разнести 1С и СУБД на разные серверы | от 64 ГБ на каждый | RAID 10 на NVMe |
Это примерные цифры для БП и ЗУП. ERP и УТ с активной проводкой документов требуют больше памяти и частоты процессора. Частота ядра для 1С важнее числа ядер: однопоточные операции (проведение, закрытие месяца ) упираются именно в неё.
Что настроить в ОС до установки
- Имя хоста. Задайте постоянное имя (
hostnamectl set-hostname srv1c) и пропишите его в/etc/hostsс реальным IP, а не только с127.0.1.1. Клиенты и сам кластер обращаются к серверу по имени. - Локаль. Нужна
ru_RU.UTF-8. Проверка —locale -a | grep ru_RU. Если нет —sudo locale-gen ru_RU.UTF-8на Ubuntu/Debian. - Время. Включите синхронизацию:
timedatectl set-ntp true. - Шрифты. Без Microsoft core fonts печатные формы поедут. На Ubuntu это пакет
ttf-mscorefonts-installer. - Порты. Откройте 1540 (агент), 1541 (менеджер кластера), 1560–1591 (рабочие процессы). Для удалённой консоли — 1545 (ras), для СУБД на другом сервере — 5432.
Открытие портов на Ubuntu:
sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp
sudo ufw allow 1545/tcp
На CentOS/RHEL то же через firewalld:
sudo firewall-cmd --permanent --add-port=1540-1541/tcp
sudo firewall-cmd --permanent --add-port=1560-1591/tcp
sudo firewall-cmd --permanent --add-port=1545/tcp
sudo firewall-cmd --reload
Установка платформы 1С:Предприятие на Linux
С версии 8.3.20 платформа для Linux поставляется единым установщиком setup-full-…-x86_64.run. Раньше были отдельные deb- и rpm-пакеты (common, server, ws, client) — на старых релизах ставили их через dpkg -i или rpm -i.
Скачайте архив дистрибутива для Linux x86_64 с сайта поддержки пользователей 1С (нужна действующая подписка), положите на сервер и распакуйте.
Интерактивная установка
tar -xzf server64_8_3_25_1374.tar.gz
chmod +x setup-full-8.3.25.1374-x86_64.run
sudo ./setup-full-8.3.25.1374-x86_64.run
Номер версии здесь — пример, подставьте свой. Установщик спросит, какие компоненты ставить. Для сервера достаточно:
- ✅ Сервер 1С:Предприятия — агент, менеджер кластера, рабочие процессы;
- ✅ Администрирование сервера — утилиты
rasиrac; - ✅ Модули расширения веб-сервера — если планируете публикацию на Apache;
- ⬜ Клиентское приложение — на сервере не нужно, клиентов поставим позже на рабочие места;
- ⬜ Тонкий клиент — тоже отдельно.
Установка без диалогов
Для скриптов и серверов без графики используйте режим unattended:
sudo ./setup-full-8.3.25.1374-x86_64.run --mode unattended \
--enable-components server,server_admin,ws,ru
Платформа встанет в /opt/1cv8/x86_64/8.3.25.1374/. Установщик создаёт системного пользователя usr1cv8 — от его имени работает служба, а данные кластера хранятся в /home/usr1cv8/.1cv8/1C/1cv8/.
Несколько версий платформы живут рядом в своих каталогах. Это удобно: новую версию ставят заранее, а переключают службу в выбранный момент.
Запуск службы сервера 1С и проверка кластера
Регистрация службы в systemd
Начиная с 8.3.21 в каталоге платформы лежит готовый unit-файл. Его подключают и запускают так:
VER=8.3.25.1374
sudo systemctl link /opt/1cv8/x86_64/$VER/srv1cv8-$VER@.service
sudo systemctl enable srv1cv8-$VER@default
sudo systemctl start srv1cv8-$VER@default
На версиях до 8.3.21 служба называлась srv1cv83 и запускалась через скрипт /etc/init.d/srv1cv83.
Проверка, что сервер поднялся
systemctl status srv1cv8-$VER@default
В выводе должна стоять строка Active: active (running). Если там failed — смотрите журнал: journalctl -u srv1cv8-$VER@default -n 50.
Проверьте, что процессы слушают порты:
ss -tlnp | grep -E '1540|1541'
Сервер администрирования и список кластеров
Утилита rac работает не напрямую с кластером, а через сервер администрирования ras. Запустите его:
sudo -u usr1cv8 /opt/1cv8/x86_64/$VER/ras cluster --daemon
Теперь запросите кластеры:
/opt/1cv8/x86_64/$VER/rac cluster list
При первом старте агент сам создаёт «Локальный кластер» на порту 1541 — вы увидите его UUID, имя и порт. Список баз в нём пока пуст. Посмотреть его можно командой rac infobase --cluster=<UUID> summary list.
Если администрируете кластер консолью с Windows, укажите в ней адрес srv1c:1545. Консоль подключается к ras, а не к агенту напрямую.
Администраторы кластера
Сразу после установки кластер открыт: любой, кто дотянется до порта, может создавать базы. Добавьте администратора агента и кластера через консоль администрирования (раздел «Администраторы» у центрального сервера и у кластера). Для подробностей по ключам rac пользуйтесь встроенной справкой rac help cluster.
Запишите пароль администратора кластера в хранилище паролей. Восстановить его без остановки службы и возврата файла настроек из резервной копии не получится.
Установка и настройка PostgreSQL для 1С
Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Нужна сборка с патчами для 1С: бесплатная сборка от Postgres Pro (вариант «для 1С») или сборка PostgreSQL, которую распространяет сама фирма 1С. Подключите репозиторий по инструкции поставщика сборки и установите пакет сервера СУБД.
Базовая настройка
- Инициализация кластера СУБД с русской локалью. Если пакет не сделал этого сам, создайте кластер с параметром
--locale=ru_RU.UTF-8. Без неё создание базы 1С упадёт с ошибкой локали. - Пароль пользователя postgres:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'СложныйПароль';"
- Сетевой доступ. В
postgresql.confзадайтеlisten_addresses. Если СУБД на той же машине, что и 1С, хватитlocalhost. - Права подключения. В
pg_hba.confдобавьте строку для сервера 1С:
host all all 127.0.0.1/32 scram-sha-256
host all all 192.168.10.20/32 scram-sha-256
- Перезапустите СУБД:
sudo systemctl restartс именем службы вашей сборки.
Не создавайте базу в PostgreSQL вручную. Отдайте это 1С — при создании информационной базы поставьте флажок создания базы данных, и платформа сделает всё с нужными параметрами.
Создание информационной базы и развёртывание клиентских приложений
Новая база на сервере
На любом рабочем месте с клиентом 1С:
- В окне запуска нажмите Добавить → Создание новой информационной базы.
- Выберите шаблон конфигурации или пустую базу.
- Тип расположения — На сервере 1С:Предприятия.
- Заполните поля:
- кластер серверов
—
srv1c; - имя базы в кластере —
buh; - тип СУБД —
PostgreSQL; - сервер баз данных —
localhost, если СУБД на том же сервере; - имя базы данных —
buh; - пользователь и пароль сервера БД —
postgresи пароль из шага выше; - флажок «Создать базу данных в случае ее отсутствия».
- кластер серверов
—
- Нажмите Далее и Готово.
Перенести существующую файловую базу
проще всего так: выгрузить её в .dt в Конфигураторе, создать пустую серверную базу
и загрузить .dt туда.
Клиенты на Windows
Ставится обычный дистрибутив клиента той же версии, что и сервер. Номер версии клиента и сервера должен совпадать до последней цифры. Иначе получите ошибку несоответствия версий при подключении.
Проверьте, что имя srv1c разрешается на рабочем месте: ping srv1c. Если в сети нет DNS — пропишите сервер в C:\Windows\System32\drivers\etc\hosts.
Клиенты на Linux
Тот же setup-full-…run, но с компонентами клиента:
sudo ./setup-full-8.3.25.1374-x86_64.run --mode unattended \
--enable-components client_full,ru
Для тонкого клиента
— client_thin. После установки ярлык появится в меню приложений. Если клиент не стартует и ругается на отсутствующую библиотеку, установите её из репозитория дистрибутива по имени из сообщения.
Лицензии
Без лицензии сервер не обслуживает клиентов, кроме учебной версии. На Linux работают программные лицензии и аппаратные ключи HASP. Программную лицензию активируют на сервере — проще всего при первом подключении клиента к серверной базе или утилитой ring (параметры смотрите в ring license --help). Для аппаратного ключа нужен драйвер HASP для Linux и служба aksusbd.
Оптимизация производительности сервера 1С и PostgreSQL
Память PostgreSQL
Стандартные значения PostgreSQL рассчитаны на маленькую машину. Для сервера, где СУБД делит 32 ГБ с 1С, отправная точка такая:
| Параметр | Ориентир | Пример для 32 ГБ |
|---|---|---|
shared_buffers | ~25% RAM | 8GB |
effective_cache_size | 50–75% RAM | 20GB |
work_mem | 32–64 МБ | 64MB |
maintenance_work_mem | 0,5–2 ГБ | 1GB |
max_connections | от числа рабочих процессов | 300 |
Если 1С и PostgreSQL на одном сервере, не отдавайте СУБД больше половины памяти: рабочие процессы rphost тоже съедают по 1–4 ГБ.
Настройки кластера 1С
- ⚙️ Объём памяти рабочих процессов — в свойствах рабочего сервера. Ставьте лимит с запасом под ОС и СУБД, чтобы не поймать OOM-killer.
- ⚙️ Безопасный расход памяти за один вызов — защищает от тяжёлого отчёта, который съест всю память. Разумный ориентир — 3–5 ГБ.
- ⚙️ Количество ИБ на процесс и соединений на процесс — для 10–30 пользователей хватает значений по умолчанию.
ОС
- 💾 Включите своп хотя бы на 4–8 ГБ — он страхует от падения
rphostпри пиках. - 📊 Держите базу СУБД на SSD/NVMe. Перевод с HDD даёт больше, чем любая настройка параметров.
- 🧹 Регламентные операции СУБД (
VACUUM ANALYZE) запускайте ночью, в окно без пользователей.
Резервное копирование по расписанию
Бэкап PostgreSQL делают утилитой pg_dump в сжатом формате. Скрипт /usr/local/bin/backup1c.sh:
#!/bin/bash
DIR=/backup/1c
mkdir -p "$DIR"
sudo -u postgres pg_dump -Fc buh > "$DIR/buh_$(date +%F).dump"
find "$DIR" -name '*.dump' -mtime +14 -delete
Сделайте его исполняемым (chmod +x) и добавьте в crontab -e от root строку — ежедневный бэкап в 2:00:
0 2 * * * /usr/local/bin/backup1c.sh
Скрипт хранит копии 14 дней. Раз в неделю копируйте свежий дамп на другой сервер или в облако: копия на том же диске не спасёт при его отказе.
Восстановление — в пустую базу командой pg_restore -d имя_базы файл.dump. Хотя бы раз проверьте его на тестовой базе: не проверенный бэкап — не бэкап.
Выгрузка в .dt из Конфигуратора — тоже копия, но она требует монопольного доступа и на больших базах идёт часами. Для ежедневного бэкапа используйте pg_dump, а .dt — перед обновлением конфигурации.
Типичные ошибки при развертывании 1С на Linux
Перезапуск службы srv1cv8 обрывает сеансы всех пользователей. Делайте это вечером или заранее предупредив людей.