Сервер 1С:Предприятия 8.3 на Ubuntu с нуля: от пакетов до первой базы

· 10 мин

Содержание

Чтобы установить 1С на Ubuntu, скачайте с портала поддержки архив «Технологическая платформа 8.3. Сервер 1С:Предприятия (64-bit) для DEB-based Linux-систем», запустите из него установщик setup-full-8.3.xx.xxxx-x86_64.run с компонентами server и ws, подключите службу srv1cv8-<версия>@default в systemd и поставьте рядом PostgreSQL в сборке для 1С. Дальше остаются лицензия и создание базы через консоль или rac.

На практике сервер чаще всего не стартует не из-за самой 1С, а из-за мелочей: нет русской локали, имя хоста не резолвится, закрыты порты, PostgreSQL собран без патчей. Если пройти шаги по порядку, эти мелочи не всплывут. Примеры даны для Ubuntu 22.04/24.04 LTS и платформы 8.3.20 и новее; номер 8.3.24.1467 везде подставляйте свой.

1. Подготовка Ubuntu к установке 1С: локаль, имя хоста, пакеты

Начните с чистой серверной Ubuntu LTS и пользователя с правами sudo. Перед установкой сверьте версию дистрибутива с системными требованиями вашей версии платформы: список поддерживаемых систем меняется от релиза к релизу.

Русская локаль

Сервер 1С и PostgreSQL работают с локалью ru_RU.UTF-8. Без неё база создаётся с неверной сортировкой или не создаётся вовсе.

sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8
locale -a | grep ru_RU

Последняя команда должна вывести ru_RU.utf8. После смены локали перезайдите в сессию.

Имя сервера

Клиенты обращаются к серверу 1С по имени, и сам сервер должен это имя знать. Проверьте:

hostname
cat /etc/hosts

В /etc/hosts должна быть строка с реальным IP и именем, например 192.168.1.20 srv1c. Та же запись нужна на клиентских машинах или в DNS. Иначе позже получите «сервер не обнаружен», хотя служба работает.

Зависимости

Набор библиотек зависит от версии платформы, но базовый минимум такой:

sudo apt update
sudo apt install -y fontconfig libfreetype6 libglib2.0-0 libgsf-1-114 \
  imagemagick unixodbc ttf-mscorefonts-installer
sudo fc-cache -fv
  • 🔤 ttf-mscorefonts-installer — шрифты Arial и Times New Roman. Без них печатные формы и отчёты едут по разметке.
  • 🖼 imagemagick и libgsf — работа с картинками и офисными файлами на сервере.
  • 🔌 unixodbc — нужен, если база обращается к внешним источникам данных.

Если после установки сервер падает при старте, проверьте недостающие библиотеки командой ldd /opt/1cv8/x86_64/8.3.24.1467/ragent | grep "not found". Каждая строка not found — пакет, который надо доставить.

Порты

Если включён ufw, откройте порты сервера 1С. Агент слушает 1540, менеджер кластера — 1541, рабочие процессы — диапазон 1560–1591 (он задаётся в свойствах рабочего сервера).

sudo ufw allow 1540:1541/tcp
sudo ufw allow 1560:1591/tcp

Порт PostgreSQL 5432 наружу открывать не нужно, если СУБД стоит на той же машине.

2. Скачать и установить сервер 1С на Ubuntu

Дистрибутив берут на портале поддержки 1С при активной подписке ИТС или по договору с партнёром. Для Ubuntu нужен вариант именно для DEB-based систем, 64-bit.

Платформа 8.3.20 и новее: единый установщик

С версии 8.3.20 сервер поставляется одним файлом .run в архиве server64_8_3_xx_xxxx.tar.gz. Распакуйте и запустите его без графики:

tar -xzf server64_8_3_24_1467.tar.gz
chmod +x setup-full-8.3.24.1467-x86_64.run
sudo ./setup-full-8.3.24.1467-x86_64.run --mode unattended \
  --enable-components server,ws,server_admin

Что ставят эти компоненты:

КомпонентЧто даётКогда нужен
serverАгент, менеджер кластера, рабочие процессыВсегда
wsМодуль веб-сервера для публикацииВеб-клиент, HTTP-сервисы, мобильные приложения
server_adminСервер администрирования ras и утилита racУправление кластером без Windows-консоли

Платформа ляжет в /opt/1cv8/x86_64/8.3.24.1467/. Установщик сам создаст системного пользователя usr1cv8, от имени которого работает сервер.

Версии до 8.3.20: deb-пакеты

В старых архивах лежат отдельные пакеты 1c-enterprise-8.3.xx-common, -server, -ws. Их ставят одной командой из папки с файлами:

sudo dpkg -i 1c-enterprise*.deb
sudo apt -f install

Вторая команда дотягивает зависимости, на которые пожаловался dpkg.

Версия сервера и версия клиентов должны совпадать до последней цифры. Клиент 8.3.24.1467 к серверу 8.3.24.1368 не подключится. Планируйте обновление сервера вместе с обновлением клиентов.

3. PostgreSQL для 1С на Ubuntu: какую сборку ставить и как настроить

Обычный PostgreSQL из репозитория Ubuntu для 1С не подходит: платформе нужны доработки, которые есть только в специальных сборках. Варианта два.

СборкаГде взятьОсобенности
PostgreSQL от фирмы 1СПортал поддержки, раздел дистрибутивов СУБДБесплатно при подписке, привычный путь для небольших компаний
Postgres Pro для 1С (Postgres Professional)Репозиторий вендораСвежие версии, отдельные пакеты под 1С, есть коммерческие редакции

Версию СУБД подбирайте под платформу: в списке поддерживаемых СУБД для каждой версии 8.3 указано, какие версии PostgreSQL с ней проверены.

Инициализация кластера базы данных

Кластер PostgreSQL создавайте с русской локалью. Для сборки 1С это делается при initdb с ключом --locale=ru_RU.UTF-8; у Postgres Pro есть собственный скрипт настройки, он вызывает initdb с нужными параметрами.

После запуска СУБД задайте пароль пользователю postgres — им сервер 1С будет создавать базы:

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

Для рабочих баз лучше завести отдельную роль с правом создавать базы, а не держать в строке подключения суперпользователя.

Базовая настройка postgresql.conf

Значения по умолчанию рассчитаны на слабую машину. Ориентиры для выделенного сервера 1С с 16 ГБ ОЗУ:

ПараметрОриентирСмысл
shared_buffers4GB (около 25% ОЗУ)Кеш страниц самой СУБД
effective_cache_size10–12GBПодсказка планировщику о кеше ОС
work_mem32–64MBПамять на одну сортировку
maintenance_work_mem512MB–1GBИндексы, VACUUM
max_connections200–500Под число сеансов и фоновых заданий

После правки перезапустите СУБД. Если сервер 1С и PostgreSQL на одной машине, в pg_hba.conf достаточно разрешить подключения с 127.0.0.1 по паролю (scram-sha-256 или md5).

4. Запуск службы сервера 1С в systemd

Начиная с 8.3.21 в папке платформы лежит готовый unit-файл. Его подключают в systemd, включают автозапуск и стартуют экземпляр default:

sudo systemctl link /opt/1cv8/x86_64/8.3.24.1467/srv1cv8-8.3.24.1467@.service
sudo systemctl enable srv1cv8-8.3.24.1467@default
sudo systemctl start srv1cv8-8.3.24.1467@default
sudo systemctl status srv1cv8-8.3.24.1467@default

В статусе должно быть active (running). Проверьте, что порты заняты:

sudo ss -tlnp | grep -E '1540|1541'

Данные кластера (список баз, настройки, сеансовые данные) хранятся в домашнем каталоге usr1cv8, обычно /home/usr1cv8/.1cv8/1C/1cv8. Этот каталог стоит включить в резервное копирование .

Сервер администрирования ras

Чтобы управлять кластером командой rac прямо на Ubuntu, запустите ras. Рядом с основным unit-файлом в той же папке лежит unit-файл для ras (его имя начинается с ras-) — подключите его так же через systemctl link и enable. Для разовой проверки можно запустить вручную:

/opt/1cv8/x86_64/8.3.24.1467/ras cluster --daemon
/opt/1cv8/x86_64/8.3.24.1467/rac cluster list

rac cluster list выведет кластер с его идентификатором (cluster), портом 1541 и именем. Идентификатор понадобится на следующем шаге.

Windows-консоль «Администрирование серверов 1С:Предприятия» тоже работает с Linux-сервером: добавьте центральный сервер по имени (srv1c) с портом 1540. Версия консоли должна совпадать с версией сервера.

Лицензия на сервер

Без серверной лицензии кластер принимает подключения, но базы на нём не запустятся. Вариантов два:

  • 🔑 Программная лицензия. Активируется с клиента при первом подключении к базе: мастер запросит пин-код и данные организации. Файлы лицензий на Linux хранятся в /var/1C/licenses.
  • 🔐 Аппаратный ключ HASP. Нужен драйвер от производителя ключа (пакет aksusbd) и проброс USB, если сервер виртуальный.

Не переносите и не копируйте файлы программной лицензии на другую машину вручную — она привязана к параметрам оборудования и после переноса перестанет действовать. Для переезда предусмотрена повторная активация резервным пин-кодом.

5. Создание информационной базы и веб-публикация

Базу можно создать тремя способами. Результат одинаковый: запись о базе в кластере 1С и пустая база данных в PostgreSQL.

СпособГдеУдобно, когда
Окно запуска 1СКлиентская машинаОдна-две базы, есть Windows-клиент
Консоль администрированияWindows с консолью той же версииПривычный администратору вариант
racСам сервер UbuntuСкрипты, массовое создание, нет Windows

Через окно запуска

В списке баз нажмите Добавить, выберите создание новой базы, затем вариант размещения «На сервере 1С:Предприятия». Заполните поля: кластер srv1c, имя базы в кластере, тип СУБД PostgreSQL, сервер баз данных localhost (если СУБД на том же сервере), имя базы в СУБД, пользователь и пароль. Отметьте флажок создания базы данных, если она отсутствует.

Через rac

RAC=/opt/1cv8/x86_64/8.3.24.1467/rac
$RAC infobase --cluster=<id-кластера> create --create-database \
  --name=buh --dbms=PostgreSQL --db-server=localhost \
  --db-name=buh --locale=ru --db-user=postgres --db-pwd='СложныйПароль' \
  --license-distribution=allow

Если не уверены в параметре, посмотрите встроенную справку: rac help infobase. Затем загрузите в пустую базу конфигурацию или выгрузку .dt через Конфигуратор с клиента.

Публикация на Apache

Для веб-клиента и HTTP-сервисов поставьте Apache и опубликуйте базу утилитой webinst (она входит в компонент ws):

sudo apt install -y apache2
sudo mkdir -p /var/www/buh
sudo /opt/1cv8/x86_64/8.3.24.1467/webinst -publish -apache24 \
  -wsdir buh -dir /var/www/buh \
  -connstr "Srvr=srv1c;Ref=buh;" -confpath /etc/apache2/apache2.conf
sudo systemctl restart apache2

База откроется по адресу http://srv1c/buh. Для доступа из интернета публикуйте только по HTTPS и за обратным прокси, а не голым портом 80.

6. Проверка после установки 1С на Ubuntu

Пройдите список до того, как отдавать сервер пользователям. Каждый пункт ловит отдельную классическую проблему.

Сервер 1С на Ubuntu готов к работе
Выполнено: 0 / 8

7. Ошибки при установке 1С на Ubuntu и что с ними делать

Первое место, куда смотреть, — журнал службы:

journalctl -u srv1cv8-8.3.24.1467@default -n 100 --no-pager

Если журнала мало, включите технологический журнал: файл logcfg.xml кладётся в каталог /opt/1cv8/conf/, сервер подхватывает его без перезапуска. Пишите в журнал только нужные события (EXCP, CONN), иначе он за день займёт гигабайты.

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

Оптимизация после запуска

Когда сервер поднялся, дайте ему ресурсы по нагрузке, а не по умолчанию:

  • 💾 Включите своп хотя бы на 4–8 ГБ: при нехватке памяти ядро без свопа убивает рабочий процесс rphost, и у пользователей обрываются сеансы.
  • 📂 Держите каталог данных PostgreSQL на SSD отдельно от системного раздела.
  • ⚙️ Настройте в консоли ограничения рабочего сервера по памяти, чтобы один тяжёлый отчёт не выедал всё ОЗУ.
  • 🧹 Запланируйте регулярный VACUUM ANALYZE средствами СУБД в ночное время.

Любой перезапуск службы srv1cv8 или PostgreSQL обрывает сеансы всех пользователей, а несохранённые документы теряются. Делайте это вне рабочего времени и предупреждайте людей заранее.

8. Частые вопросы

Можно ли поставить на Ubuntu клиент 1С, а не только сервер?
Да. В установщике setup-full есть компоненты толстого и тонкого клиента (client_full, client_thin). Для работы бухгалтера на Linux-десктопе обычно хватает тонкого клиента.
Нужна ли отдельная лицензия на сервер, если клиентские лицензии уже есть?
Да. Клиентские лицензии дают право на подключения, а для работы кластера на сервере нужна своя серверная лицензия — КОРП или ПРОФ.
Можно ли поставить сервер 1С и PostgreSQL на один сервер?
Можно, для 10–30 пользователей это обычная схема. Разносить по разным машинам имеет смысл, когда СУБД или рабочие процессы упираются в память или диск.
Как обновить платформу на Ubuntu, не сломав работу?
Установите новую версию рядом со старой тем же установщиком, остановите и отключите старую службу, подключите и запустите unit-файл новой версии. Каталог кластера с базами сохранится. Клиенты обновите одновременно.
Подойдёт ли PostgreSQL из стандартного репозитория Ubuntu?
Нет. Сервер 1С требует доработок, которые есть только в сборках от фирмы 1С и Postgres Professional. С обычной сборкой база либо не создастся, либо будет работать с ошибками.