Администрирование · 12 мин
Как перенести 1С на Linux: полное руководство по миграции
Как перенести 1С на Linux: выбор дистрибутива, установка платформы и PostgreSQL, перенос баз через dt-выгрузку, настройка лицензий и типичные ошибки миграции.
Перенос 1С на Linux — рабочий способ снизить затраты на лицензии Windows Server и СУБД, повысить стабильность сервера и уйти от зависимости от проприетарной инфраструктуры. Платформа 1С:Предприятие официально поддерживает работу на Linux: доступны сервер 1С, клиентские приложения и веб-клиент, а в связке с PostgreSQL такая конфигурация давно стала отраслевым стандартом для файловых и клиент-серверных баз.
Миграция сводится к пяти крупным задачам: выбору дистрибутива, установке СУБД, развёртыванию сервера 1С, переносу самих баз и переводу пользователей. Каждый этап имеет свои ограничения: например, конфигурации с COM-объектами, OLE-интеграциями или специфическими внешними компонентами под Windows могут потребовать доработки, а перенос баз между СУБД выполняется только через выгрузку в dt-файл, а не копированием файлов базы данных.
Ниже разобран практический порядок действий: от проверки совместимости до контрольных точек после переезда. Материал ориентирован на администраторов и внедренцев, которые делают перенос впервые и хотят избежать типовых ошибок.
Проверка совместимости: что может помешать переезду
До установки чего-либо на новый сервер нужно выяснить, переживёт ли переезд сама конфигурация и окружение. Большинство типовых конфигураций (Бухгалтерия, ЗУП, Управление торговлей, ERP) работают на Linux без доработок, но проблемы обычно прячутся в интеграциях и доработках.
Основные зоны риска: COM/OLE-объекты (обмен с Excel через COM, интеграции через OLE), внешние компоненты, собранные только под Windows, оборудование с драйверами без Linux-версий (некоторые ККТ, сканеры, весы), обмены файлами через сетевые папки с Windows-путями и жёстко прописанными буквами дисков, а также скрипты регламентных заданий, вызывающие внешние Windows-утилиты.
Практический приём — поднять тестовый стенд на виртуальной машине с Linux, загрузить туда копию базы и прогнать ключевые сценарии: проведение документов, формирование отчётов, обмены, печать. Тест занимает день-два, но снимает почти все сюрпризы продуктивного переезда.
Проверить наличие Linux-версий у поставщика компоненты или заменить механизм
Такие вызовы на сервере Linux не работают — переносить логику на файловый обмен
Уточнить наличие драйверов под Linux или оставить оборудование на Windows-клиентах
Найти в конфигураторе строки с Windows-путями и заменить на кроссплатформенные
Выбор дистрибутива Linux и подготовка сервера
Фирма «1С» публикует список поддерживаемых дистрибутивов в системных требованиях платформы. На практике чаще всего используют Debian, Ubuntu Server, Astra Linux, ALT Linux и РЕД ОС — для российских организаций с требованиями импортозамещения выбор обычно падает на отечественные дистрибутивы из реестра ПО. Выбирать стоит систему, для которой у вашей команды есть компетенции сопровождения: различия в работе 1С между поддерживаемыми дистрибутивами минимальны.
По ресурсам ориентируйтесь на текущую нагрузку Windows-сервера с запасом: сервер 1С и PostgreSQL чувствительны к объёму оперативной памяти и скорости дисковой подсистемы. Для клиент-серверной базы на десятки пользователей типичный минимум — 16–32 ГБ ОЗУ и SSD, при этом значительную часть памяти отдают под PostgreSQL.
Перед установкой настройте базовые вещи: статический IP-адрес, корректное имя хоста и его разрешение (DNS или /etc/hosts — сервер 1С чувствителен к резолвингу имени), синхронизацию времени по NTP и отключение энергосберегающих режимов дисков. Эти мелочи потом экономят часы диагностики.
Установка и настройка PostgreSQL для 1С
Сервер 1С работает с PostgreSQL, но требования к СУБД специфичны: нужна сборка с определёнными параметрами локализации и библиотеками. Самый надёжный путь — использовать сборку PostgreSQL, которую «1С» публикует вместе с дистрибутивом платформы, либо сборку PostgresPro, сертифицированную для работы с 1С. Стоковый PostgreSQL из репозитория дистрибутива часто требует ручной правки параметров и иногда ведёт себя непредсказуемо под нагрузкой.
После установки СУБД настраивают два ключевых файла: postgresql.conf (память, соединения, журналирование) и pg_hba.conf (правила доступа). Для 1С важны параметры shared_buffers (обычно четверть доступной ОЗУ), work_mem, effective_cache_size и max_connections с запасом под рабочие процессы кластера. Точные значения подбираются под объём базы и число пользователей — универсальных «правильных» цифр нет.
Пользователя СУБД для 1С (обычно postgres или отдельная учётная запись) нужно наделить правами создания баз и ролей — кластер 1С сам создаёт базы при регистрации новой инфобазы. Пароль задайте сразу и сохраните: он понадобится при добавлении базы в консоли кластера.
# Пример: установка PostgreSQL из пакетов 1С на Debian/Ubuntu
sudo dpkg -i postgresql-*.deb
sudo systemctl enable --now postgresql
# Проверка, что СУБД принимает подключения
sudo -u postgres psql -c "SELECT version();"Установка сервера 1С и публикация баз
Дистрибутив сервера 1С для Linux скачивается с портала releases.1c.ru по действующей договорённости ИТС. Внутри архива — deb- или rpm-пакеты: сервер, дополнительные модули, консоль администрирования. Устанавливаются они штатным пакетным менеджером, после чего служба агента сервера (srv1cv8) регистрируется в systemd и запускается автоматически.
После установки проверьте, что агент работает и слушает порты (по умолчанию диапазон 1540–1591). Управление кластером удобнее всего вести из консоли администрирования серверов 1С на Windows-машине администратора — она подключается к Linux-агенту по сети. Либо используйте утилиту rac из комплекта сервера прямо на Linux.
Если пользователи работают через браузер или тонкий клиент по HTTP, дополнительно ставится веб-сервер (Apache — официально поддерживаемый вариант) с модулем публикации 1С. Публикация базы выполняется утилитой webinst или вручную через конфигурационный файл default.vrd.
- 1Скачайте дистрибутив сервера 1С для Linux нужной версии платформы
- 2Установите пакеты командой dpkg -i или rpm -i
- 3Запустите службу: systemctl enable --now srv1cv8-*
- 4Проверьте процессы: ps aux | grep ragent
- 5Подключитесь консолью администрирования и создайте кластер/проверьте существующий
- 6Зарегистрируйте тестовую пустую базу и убедитесь, что она создаётся в PostgreSQL
Перенос баз данных с Windows на Linux
Физическое копирование файлов базы из MS SQL в PostgreSQL невозможно — СУБД несовместимы. Штатный и единственно надёжный механизм переноса — выгрузка информационной базы в файл .dt через конфигуратор и последующая загрузка в новую базу на Linux. Этот же способ подходит и для переезда из файлового варианта в клиент-серверный.
Последовательность такая: на старом сервере открываете конфигуратор от имени администратора, выполняете «Администрирование → Выгрузить информационную базу», получаете dt-файл. На новом сервере через консоль кластера создаёте пустую инфобазу (без конфигурации), открываете её в конфигураторе (клиент конфигуратора может быть и на Windows — он подключается к кластеру по сети) и выполняете «Загрузить информационную базу».
Учтите ограничения: выгрузка большой базы в dt занимает часы, а сам файл может быть сопоставим по размеру с базой. На время выгрузки и загрузки пользователей нужно отключить, а регламентные задания — заблокировать. Если база очень большая и окно простоя недопустимо, рассматривают миграцию через средства репликации или поэтапный перенос, но это уже задача для опытного специалиста.
Лицензии, клиенты и переключение пользователей
Лицензии 1С бывают программными и аппаратными (USB-ключи HASP). Программные лицензии привязываются к аппаратным параметрам сервера — при переезде на новое железо или виртуальную машину их нужно активировать заново из пин-кодов, идущих в комплекте поставки (обычно есть основной и резервные пины). Аппаратный ключ на Linux работает через драйвер HASP для Linux, либо ключ можно оставить на отдельной Windows-машине, а сервер 1С настроить на получение лицензий от него по сети.
Клиентские места не обязаны переезжать на Linux одновременно с сервером: пользователи на Windows продолжают работать тонким или толстым клиентом, подключаясь к Linux-кластеру, либо переходят на веб-клиент через браузер. Это позволяет мигрировать поэтапно: сначала сервер, потом, при желании, рабочие места.
Переключение пользователей делайте в нерабочее время: завершите сеансы на старом сервере, выполните финальную выгрузку, загрузите базу на Linux, проверьте вход и ключевые операции, обновите списки баз у пользователей (файл ibases.v8i или публикация) и только потом открывайте доступ. Старый сервер не выключайте минимум несколько дней — он понадобится как точка отката.
Как проверить результат миграции
Пользователи заходят тонким и веб-клиентом без ошибок
Ошибки соединения с кластером или СУБД
Оборотно-сальдовая ведомость и ключевые отчёты совпадают со старым сервером
Расхождения в итогах, пустые регистры
Задания выполняются по расписанию, в журнале нет ошибок
Задания падают из-за Windows-путей или внешних вызовов
Сеансы не ограничены, в консоли видны выданные лицензии
Ошибка 'не найдена лицензия' при входе
Типичные ошибки и как их избежать
Большинство проблем после миграции связано не с самой платформой, а с окружением: неправильным резолвингом имён, недонастроенным PostgreSQL, забытыми интеграциями. Вторая частая группа — организационные ошибки: перенос без тестового прогона и без резервной копии.
Отдельно отметим производительность: свежеперенесённая база на PostgreSQL без настройки параметров СУБД часто работает медленнее, чем на привычном MS SQL. Это не повод откатываться — нужна настройка postgresql.conf и, при необходимости, анализ медленных запросов. После тюнинга связка 1С + PostgreSQL показывает производительность, сопоставимую с коммерческими СУБД.
Что важно запомнить
Перенос 1С на Linux — штатная процедура: поддерживаемый дистрибутив, PostgreSQL из сборки 1С, сервер платформы и перенос баз через dt-файл. Ключ к спокойной миграции — тестовый стенд, проверенная резервная копия и сохранённый старый сервер как запасной вариант.
Частые вопросы о переносе 1С на Linux
Можно ли перенести базу 1С с MS SQL на PostgreSQL напрямую?
Нет, прямой конвертации файлов базы между СУБД не существует. Используется штатный механизм платформы: выгрузка информационной базы в файл .dt через конфигуратор на старом сервере и загрузка этого файла в пустую базу, зарегистрированную в кластере на Linux с PostgreSQL.
Потеряются ли лицензии 1С при переезде на другой сервер?
Программные лицензии привязаны к оборудованию, поэтому на новом сервере их активируют заново из комплекта пин-кодов поставки — обычно доступны основной и резервные пины. Аппаратный USB-ключ просто переносится на новый сервер вместе с установкой драйвера HASP для Linux.
Обязательно ли переводить рабочие места пользователей на Linux?
Нет. Сервер 1С на Linux обслуживает клиентов на любой ОС: пользователи могут продолжать работать с Windows через тонкий клиент или браузер. Миграцию сервера и рабочих мест можно выполнять независимо и в разное время.
Работают ли внешние печатные формы и отчёты после переезда?
Внешние отчёты и обработки в формате epf/erf работают кроссплатформенно, если внутри нет вызовов COM-объектов, OLE или Windows-утилит. Такие вызовы нужно найти заранее поиском по тексту модулей и заменить на кроссплатформенные механизмы, например файловый обмен.
Какая СУБД лучше для 1С на Linux — PostgreSQL или PostgresPro?
Обе поддерживаются. Сборка PostgreSQL от 1С бесплатна и покрывает большинство задач; PostgresPro — коммерческий продукт с расширенными возможностями и поддержкой вендора, его выбирают для крупных нагруженных баз или по требованиям импортозамещения.
Сколько времени занимает миграция и какой простой закладывать?
Длительность зависит от размера базы: выгрузка и загрузка dt для базы в десятки гигабайт может занять несколько часов. Реалистичный план — тестовый прогон заранее для замера времени, а продуктивный перенос в выходные с запасом на проверку и возможный откат.