Переезд 1С:Предприятия 8.3 на Linux без Windows: пошаговый план

· 10 мин

Содержание

Запустить 1С на Linux можно без эмуляторов: у платформы 8.3 есть родные сборки и сервера, и клиента для Ubuntu, Debian, Astra Linux, РЕД ОС и других дистрибутивов. Рабочая связка выглядит так: сервер 1С:Предприятия + PostgreSQL в сборке для 1С на одной машине, тонкий клиент 1С на рабочих местах. Wine нужен только для редких Windows-компонентов, а не для самой программы.

Миграция занимает от вечера до пары дней. Дольше всего уходит не на установку, а на то, что работало через Windows: COM-обмены, драйверы торгового оборудования, внешние компоненты. Их проверяют заранее, до переноса баз.

Схема и выбор дистрибутива Linux для 1С

Начните с решения, что именно переезжает на Linux. Вариантов три, и они заметно различаются по трудозатратам.

Что переносимЧто ставим на LinuxСложность
Только серверСервер 1С + PostgreSQL, клиенты остаются на WindowsНизкая
Сервер и часть рабочих местТо же + тонкий клиент 1С на LinuxСредняя
Всё, включая кассы и обменыПлюс замена COM, драйверы оборудования под LinuxВысокая

Для первого раза безопаснее первый вариант: пользователи ничего не замечают, а вы экономите на лицензиях Windows Server и MS SQL.

Что учесть при выборе дистрибутива:

  • 🐧 Ubuntu Server LTS и Debian — самый частый выбор, больше всего готовых решений и инструкций сообщества.
  • 🇷🇺 Astra Linux, РЕД ОС, ALT — нужны, если организация обязана использовать отечественное ПО. 1С поддерживает их официально.
  • 📦 Формат пакетов — у 1С есть сборки в DEB и RPM. Начиная с платформы 8.3.20 сервер и клиент поставляются единым установщиком setup-full-<версия>-x86_64.run.
  • 🧮 Ресурсы — для 10–20 пользователей хватает 4 ядер и 16 ГБ памяти; под базу данных — SSD. Память делят между PostgreSQL и рабочими процессами 1С.

Берите LTS-версию дистрибутива, которая вышла хотя бы полгода назад. На свежем релизе чаще не хватает библиотек нужных версий.

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

Половина проблем при запуске 1С на Linux — от неподготовленной системы. Проверьте четыре вещи до того, как запустите установщик.

Локаль

Сервер 1С и PostgreSQL должны работать с русской локалью UTF-8. Без неё база создаётся с неверной сортировкой, а в отчётах появляются «кракозябры».

sudo locale-gen ru_RU.UTF-8
sudo update-locale LANG=ru_RU.UTF-8
locale

Имя сервера

Клиенты обращаются к серверу 1С по имени, и сам сервер должен уметь разрешить своё имя в IP-адрес. Пропишите его в /etc/hosts на сервере и в DNS (или в hosts) на рабочих местах:

hostnamectl set-hostname srv1c
echo "192.168.1.10 srv1c" | sudo tee -a /etc/hosts

Не оставляйте имя сервера привязанным к 127.0.1.1 — так делают установщики Ubuntu и Debian. Тогда сервер 1С регистрирует себя на петлевом адресе, и клиенты с других машин не подключаются.

Шрифты и библиотеки

Для печатных форм и отчётов нужны шрифты Microsoft и fontconfig. На Ubuntu:

sudo apt install ttf-mscorefonts-installer fontconfig
sudo fc-cache -fv

Без этих шрифтов печатные формы на сервере и в клиенте «плывут»: текст вылезает за границы ячеек.

Порты

Откройте в брандмауэре порты, по которым клиент работает с сервером: 1540 (агент сервера), 1541 (менеджер кластера) и диапазон рабочих процессов, по умолчанию 1560:1591. PostgreSQL слушает 5432, но его наружу открывать не нужно, если СУБД стоит на той же машине.

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

Установка сервера 1С:Предприятия на Linux

Дистрибутив сервера для Linux скачивают в личном кабинете на сайте поддержки 1С — доступ есть при действующей подписке ИТС. Нужен файл для 64-битной Linux той же версии платформы, что и у клиентов.

Установка через единый установщик

Для платформ 8.3.20 и новее:

  1. Распакуйте архив и сделайте установщик исполняемым: chmod +x setup-full-*.run.
  2. Запустите установку без графического интерфейса, указав нужные компоненты:
sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components server,ws

Компонент server — сам сервер 1С, ws — модули расширения веб-сервера (нужны для публикации баз через Apache). Платформа встаёт в каталог /opt/1cv8/x86_64/<версия>/, установщик создаёт системного пользователя usr1cv8.

Полный список компонентов показывает ./setup-full-*.run --help. На старых версиях до 8.3.20 вместо установщика ставят пакеты common и server через dpkg -i.

Регистрация службы systemd

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

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

Если файла службы в каталоге нет — у вас старая платформа со скриптом в /etc/init.d/. Тогда служба управляется командой service srv1cv83 start.

Каталог кластера с настройками и списком баз лежит в домашнем каталоге usr1cv8, обычно /home/usr1cv8/.1cv8/1C/1cv8/. Включите его в резервное копирование: без него после сбоя придётся заново регистрировать все базы.

Администрирование без MMC-консоли

Привычной оснастки «Администрирование серверов 1С» под Linux нет. Варианты:

  • 🖥️ Консоль с Windows-машины — она подключается к агенту сервера на Linux по порту 1540, как к обычному серверу.
  • ⌨️ Утилита rac — работает через сервер администрирования ras, который запускается отдельно: ras cluster --daemon. После этого rac cluster list выводит кластеры, а rac session list --cluster=<id> показывает сеансы.

Полный перечень команд и параметров выдаёт rac help — по нему удобнее сверяться, чем по памяти.

PostgreSQL для 1С: установка и настройка СУБД

Обычный PostgreSQL из репозитория дистрибутива для 1С не подходит. Нужна сборка с патчами под 1С. Источников два:

СборкаГде взятьКогда выбирать
PostgreSQL для 1ССайт поддержки 1С, рядом с дистрибутивами платформыНебольшие и средние базы, бесплатно
Postgres Pro для 1ССайт Postgres ProfessionalНужны поддержка производителя или крупные базы

Перед выбором версии СУБД сверьтесь со списком поддерживаемых версий для вашей платформы. Слишком новая СУБД со старой платформой работать не будет.

Первичная настройка

  1. Установите пакеты СУБД и инициализируйте кластер с русской локалью — обычно установщик сборки делает это сам.
  2. Задайте пароль служебному пользователю:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'надёжный_пароль';"
  1. В pg_hba.conf разрешите подключение по паролю (scram-sha-256 или md5) с адреса сервера 1С. Если СУБД на той же машине — достаточно 127.0.0.1/32.
  2. Перезапустите службу PostgreSQL.

Память

Ориентиры для postgresql.conf на выделенном сервере:

  • shared_buffers — около 25% оперативной памяти;
  • effective_cache_size — 50–75% памяти;
  • work_mem — 32–64 МБ; на 1С это значение расходуется на каждую операцию сортировки, поэтому не завышайте его.

Если на сервере вместе работают и 1С, и PostgreSQL, держите shared_buffers ближе к 20%: рабочим процессам 1С тоже нужна память.

Для подбора остальных параметров пригодится PgTune: выберите тип нагрузки «смешанная» и укажите реальную память и диски.

Информационная база и тонкий клиент 1С на Linux

Создание или перенос базы

Базу создают на сервере, а данные переносят выгрузкой .dt из старой системы. Порядок:

  1. В старой базе (на Windows) выгрузите данные: Конфигуратор → Администрирование → Выгрузить информационную базу.
  2. На рабочем месте с клиентом 1С добавьте новую базу: в окне запуска нажмите Добавить, выберите вариант на сервере 1С:Предприятия.
  3. Укажите кластер (имя сервера, например srv1c), имя базы, тип СУБД PostgreSQL, сервер базы данных, пользователя postgres и его пароль. Отметьте флажок создания базы данных, если её ещё нет.
  4. Откройте новую базу в Конфигураторе и загрузите туда файл .dt.

Базу можно создать и с консоли сервера через rac infobase create с параметром --create-database; точный набор параметров для СУБД смотрите в rac help infobase.

Тонкий клиент на рабочем месте Linux

На рабочие места ставят только клиент:

sudo ./setup-full-8.3.xx.xxxx-x86_64.run --mode unattended --enable-components client_thin

Если пользователю нужен и Конфигуратор, вместо client_thin укажите client_full. Ярлыки появляются в меню приложений, а запустить тонкий клиент вручную можно файлом /opt/1cv8/x86_64/<версия>/1cv8c.

Клиент не стартует или падает сразу? Проверьте, каких библиотек ему не хватает:

ldd /opt/1cv8/x86_64/8.3.xx.xxxx/1cv8c | grep "not found"

Каждую строку с not found закрывают установкой соответствующего пакета из репозитория дистрибутива. Это быстрее, чем искать ответ по тексту ошибки.

Версия клиента должна совпадать с версией сервера до последней цифры. Иначе подключение к серверной базе не состоится.

Wine, COM и оборудование: что не переносится напрямую

Тонкий и толстый клиенты работают на Linux нативно, поэтому запускать 1С для Windows через Wine нет смысла: это медленнее и менее стабильно. Wine оставляют для отдельных Windows-программ, без которых не обойтись.

Что ломается при переезде и чем заменить:

  • 🔌 COM-соединения. На Linux технологии COM нет. Обмены, которые подключались к 1С через V83.COMConnector, переводят на HTTP-сервисы, веб-сервисы или стандартный интерфейс OData.
  • 🧾 Торговое оборудование. Крупные производители касс и сканеров выпускают драйверы для Linux. Проверьте свою модель заранее; если драйвера нет, кассу оставляют на Windows-машине.
  • 🧩 Внешние компоненты. Компоненты в формате Native API бывают собраны под Linux, COM-компоненты — нет. Уточните у разработчика, есть ли у него версия под Linux.
  • 🔐 Криптопровайдеры и ЭДО. Для отчётности и ЭДО на Linux нужна версия криптопровайдера под эту ОС; ключи переносят по инструкции производителя.
  • 📄 Выгрузка в Excel через COM. Обработки, которые открывают Excel через Новый COMОбъект, на Linux не сработают. Сохранение табличного документа в .xlsx встроенными средствами платформы работает.
Где оставить рабочее место?

Лицензии 1С в Linux: программные и аппаратные

Лицензии 1С не привязаны к операционной системе: те же клиентские и серверные лицензии работают и на Linux. Различаются только механика хранения и драйверы.

Программные (пин-коды)

  • Активация идёт из клиента 1С при первом запуске: вводите пин-код из комплекта, программа связывается с центром лицензирования.
  • Для серверных баз лицензию удобно получать сразу на сервер 1С — в окне активации выберите вариант получения лицензии на сервере. Тогда клиенты на любых машинах берут её с сервера.
  • Файлы лицензий на Linux хранятся в каталоге /var/1C/licenses/. У пользователя usr1cv8 должны быть права на чтение и запись в нём.

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

Аппаратные ключи (HASP)

Для USB-ключей нужен драйвер Sentinel под Linux — пакет с менеджером ключей aksusbd от производителя ключей. После установки проверьте, что служба запущена, и вставьте ключ. Если сервер виртуальный, ключ пробрасывают в виртуальную машину средствами гипервизора или через USB-over-IP.

Сколько лицензий занято прямо сейчас, показывает rac session list --licenses --cluster=<id>.

Автоматическое резервное копирование 1С на Linux

На Linux основной способ бэкапа серверной базы — дамп PostgreSQL. Он не требует остановки работы и быстрее выгрузки .dt.

Скрипт с ротацией

Создайте файл /usr/local/bin/backup-1c.sh:

#!/bin/bash
DB="buh"
DIR="/backup/1c"
DATE=$(date +%Y-%m-%d_%H-%M)
mkdir -p "$DIR"
sudo -u postgres pg_dump -Fc "$DB" > "$DIR/${DB}_${DATE}.dump"
find "$DIR" -name "${DB}_*.dump" -mtime +14 -delete

Сделайте его исполняемым (chmod +x) и добавьте в расписание cron на 2 часа ночи:

0 2 * * * /usr/local/bin/backup-1c.sh

Копии старше 14 дней удаляются автоматически. Восстановление — в пустую базу командой pg_restore -d <имя_базы> файл.dump.

Выгрузка .dt как второй уровень

Раз в неделю полезно делать ещё и выгрузку .dt: её можно загрузить в любую СУБД и в файловую базу. На Linux для этого есть утилита ibcmd, которая работает с базой напрямую через СУБД. Набор её параметров для выгрузки смотрите в ibcmd help infobase dump.

Правило трёх копий работает и здесь: держите дампы не только на самом сервере, а ещё на отдельном хранилище — NAS или в облаке.

Проверка бэкапа раз в месяц
Выполнено: 0 / 5

Частые вопросы о 1С на Linux

Можно ли держать файловую базу 1С на Linux?
Да. Клиент 1С для Linux открывает файловые базы так же, как в Windows. Для сетевой работы нескольких человек файловый вариант на Linux неудобен: доступ через общую папку Samba медленнее и чаще даёт блокировки. При трёх и более пользователях лучше сервер 1С.
Нужна ли отдельная лицензия на сервер 1С для Linux?
Нет. Серверная лицензия 1С одна для Windows и Linux. Отличаются только редакции по возможностям и цене, а не по операционной системе.
Работает ли веб-клиент с сервером на Linux?
Работает. Ставят Apache, при установке платформы выбирают компонент ws, затем публикуют базу утилитой webinst. Пользователи открывают 1С в браузере без установки клиента.
Можно ли поставить сервер 1С в Docker?
Технически да, сообщество собирает такие образы. Но программные лицензии в контейнере теряются при пересоздании, поэтому для рабочих баз проще обычная виртуальная машина.
Будет ли 1С на Linux работать быстрее, чем на Windows?
Заметного прироста от смены ОС обычно нет. Скорость определяют диски, память и настройка PostgreSQL. Экономия — прежде всего на лицензиях Windows Server и MS SQL.