Переезд 1С:Предприятия 8.3 на Linux без Windows: пошаговый план
Содержание
Запустить 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 и новее:
- Распакуйте архив и сделайте установщик исполняемым:
chmod +x setup-full-*.run. - Запустите установку без графического интерфейса, указав нужные компоненты:
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 | Нужны поддержка производителя или крупные базы |
Перед выбором версии СУБД сверьтесь со списком поддерживаемых версий для вашей платформы. Слишком новая СУБД со старой платформой работать не будет.
Первичная настройка
- Установите пакеты СУБД и инициализируйте кластер с русской локалью — обычно установщик сборки делает это сам.
- Задайте пароль служебному пользователю:
sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD 'надёжный_пароль';"
- В
pg_hba.confразрешите подключение по паролю (scram-sha-256илиmd5) с адреса сервера 1С. Если СУБД на той же машине — достаточно127.0.0.1/32. - Перезапустите службу 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 из старой системы. Порядок:
- В старой базе (на Windows) выгрузите данные: Конфигуратор →
Администрирование → Выгрузить информационную базу. - На рабочем месте с клиентом 1С добавьте новую базу: в окне запуска нажмите
Добавить, выберите вариант на сервере 1С:Предприятия. - Укажите кластер (имя сервера, например
srv1c), имя базы, тип СУБД PostgreSQL, сервер базы данных, пользователяpostgresи его пароль. Отметьте флажок создания базы данных, если её ещё нет. - Откройте новую базу в Конфигураторе и загрузите туда файл
.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 или в облаке.
Частые вопросы о 1С на Linux
Можно ли держать файловую базу 1С на Linux?
Нужна ли отдельная лицензия на сервер 1С для Linux?
Работает ли веб-клиент с сервером на Linux?
ws, затем публикуют базу утилитой webinst. Пользователи открывают 1С в браузере без установки клиента.