Заменить Windows на Linux и MS SQL Server на PostgreSQL недостаточно. После миграции пользователи должны войти в 1С, провести документы, выполнить обмен и получить привычные печатные формы. Администратор отвечает за всю цепочку, а не за две строки в реестре отечественного ПО.
3 апреля 2023 года Елена Скворцова из IT Expertise представила на PGConf доклад о переносе высоконагруженных систем 1С с Windows и MS SQL Server на Linux и PostgreSQL. Сам предмет доклада показывает масштаб задачи: перенос требует отдельной стратегии, а не переустановки двух продуктов.
Ваша цель — собрать пилот на копии рабочей базы и получить проверяемый ответ: можно переключать пользователей или сначала нужно устранить несовместимость. Сертификат ОС, запущенная служба 1С и успешное подключение администратора этого ответа не дают.
Сначала опишите контур, который предстоит перенести
Сервер 1С редко работает сам по себе. В рабочий контур входят СУБД, лицензирование, сетевые маршруты, резервное копирование, внешние компоненты и клиентские приложения.
В руководстве Yandex Cloud для 1С 8.3.25 роли разделены между рабочим сервером 1С, отдельным сервером лицензий и кластером Managed Service for PostgreSQL. Доступ организован через OpenVPN, а для настройки кластера нужен Windows-компьютер с клиентом 1С и консолью администрирования.
Эту схему не нужно копировать буквально. Она полезна другим: показывает, сколько самостоятельных частей скрывается за фразой «перенести 1С на Linux».
| Компонент текущего контура | Кандидат на замену | Что от него зависит | Что проверить на копии |
|---|---|---|---|
| Windows Server | РЕД ОС, ALT Linux или другой поддерживаемый Linux | служба 1С, драйверы, права на каталоги, внешние компоненты | запуск службы, запись временных файлов, обращение к общим каталогам |
| MS SQL Server | PostgreSQL или Postgres Pro | запросы, блокировки, фоновые задания, обслуживание базы | проведение документов, закрытие регламентных операций, стабильность длительных запросов |
| Служба лицензирования | отдельный сервер лицензий | запуск клиентских и серверных сеансов | получение лицензии после перезапуска узлов и смены адреса |
| Сетевой доступ | новые маршруты, VPN и правила межсетевого экрана | соединение клиента с кластером и СУБД | вход из пользовательских подсетей, работа удалённых площадок |
| Резервное копирование | средства целевой СУБД и новое хранилище | допустимая потеря данных и время возврата | создание копии, развёртывание отдельно от рабочей базы, вход в восстановленную базу |
| Windows-компоненты и утилиты | пакеты и аналоги для Linux | печать, преобразование файлов, обмены | формирование печатных форм, выгрузка файлов, запуск обработок |
| Планировщик Windows | cron, systemd timers или задания 1С | обмены, архивирование, служебные обработки | запуск по расписанию, права процесса, запись результата |
| Антивирус и мониторинг | агенты для целевой ОС | доступ к файлам 1С, журналам и резервным копиям | отсутствие блокировок, поступление метрик и уведомлений |
Эта карта делит миграцию по зависимостям. Если печать сломалась из-за пакета шрифтов, вам не придётся искать причину в PostgreSQL или сетевом маршруте.
До развёртывания пилота зафиксируйте версии платформы, СУБД и расширений. Добавьте список внешних компонент, регламентных заданий, обменов, подключаемого оборудования и общих каталогов.
Не ограничивайтесь сервером. Рабочее место администратора тоже входит в контур: с него вы создаёте кластер, подключаете информационную базу и проверяете сеансы.
Сертификат ОС не подтверждает работу вашей базы
Сертификат совместимости отвечает на узкий вопрос: проверяли ли конкретные версии продуктов вместе. Он ничего не говорит о вашей конфигурации, расширениях, драйверах касс, обмене с сайтом и самописной внешней компоненте.
Поэтому совместимость всей связки 1С с РЕД ОС 8 проверяют отдельно. В перечень входят сама платформа, СУБД, дополнения к конфигурации и программы, к которым обращается 1С.
Материал Serverzilla о совместимости 1С с российскими ОС указывает на близкий функциональный состав платформы 8.3 для Windows и Linux. Но близкий состав функций не гарантирует одинаковый результат внутри конкретной базы.
На Linux служба сервера называется srv1cv8. Её успешный запуск подтверждает только то, что процесс стартовал. Он не проверяет печать, лицензии, обмены и восстановление базы.
Для формирования печатных форм материал Serverzilla перечисляет Microsoft Core Fonts, ImageMagick и libgsf. Если эти пакеты не установлены или работают иначе, пользователь заметит проблему уже после переключения: изменится шрифт, расположение элементов либо обработка вложенного изображения.
Проверьте каждую типовую форму на пилоте. Возьмите счёт, накладную, акт, этикетку и документ со штрихкодом, если он используется. Сравнивайте не только открытие формы, но и вывод в PDF и печать на рабочем устройстве.
ОС и СУБД выбирают по требованиям контура
Название «Linux» не задаёт состав пакетов и порядок сопровождения. РЕД ОС использует пакетную базу RPM, а ALT Linux — репозиторий «Сизиф», согласно материалу Serverzilla. Для администратора это означает разные репозитории, команды обновления и процедуры установки зависимостей.
Разница между PostgreSQL и Postgres Pro тоже не сводится к цене лицензии. Serverzilla указывает у Postgres Pro вендорскую поддержку в России, сертификацию ФСТЭК, блочное инкрементальное копирование и патчи для работы с временными таблицами 1С.
Эти свойства нужны не каждой компании. Сертификация ФСТЭК имеет вес там, где её требует модель угроз или нормативный документ. Вендорская поддержка нужна, если команда не готова самостоятельно разбирать сбой СУБД.
| Требование компании | Что сверить у ОС или СУБД | Как подтвердить до миграции | Когда вариант не подходит |
|---|---|---|---|
| Поддержка нужной версии 1С | матрицу совместимости платформы, ОС и СУБД | установить те же версии на пилоте | версия платформы не поддерживает целевой компонент |
| Работа внешних компонент | сборку под Linux, библиотеки и разрядность | запустить каждую операцию, которая вызывает компоненту | поставщик не выпускает сборку под выбранную ОС |
| Требования по защите | сертификаты и область их действия | сопоставить документы с моделью угроз | сертификат не покрывает нужную редакцию или версию |
| Поддержка производителя | режим обращения и границы ответственности | заранее определить, кто принимает инцидент по ОС и СУБД | между поставщиками остаётся участок без владельца |
| Резервное копирование | полный и инкрементальный режим, хранение WAL | восстановить копию в отдельный контур | копия создаётся, но не разворачивается |
| Обслуживание без интернета | локальные репозитории и доставка обновлений | обновить пилот тем же способом, что и рабочие серверы | установка требует доступа, запрещённого политикой |
| Плановый простой | способ переноса и объём передаваемых данных | провести учебное переключение с фиксацией времени | испытание не укладывается в согласованное окно |
Выбирайте продукт после этой проверки. Перечень функций производителя ещё не доказывает, что функция закрывает именно ваше требование.
Для отдельного выбора СУБД пригодится разбор PostgreSQL и SQL Server в контуре 1С. Его стоит читать после составления требований: без них сравнение превратится в спор о продуктах вообще.
Пилот должен повторять рабочий день
Пилот не равен пустой базе, к которой подключился администратор. Он должен содержать копию рабочих данных и повторять маршруты пользователей.
Руководство Yandex Cloud описывает архитектуру для 1С 8.3.25 с серверами без прямого доступа в интернет. Управление проходит через OpenVPN, а клиент и консоль администрирования остаются на отдельном Windows-компьютере. Такой подход отделяет проверку серверного Linux от замены всех рабочих мест одновременно.
Поднимите пилот в отдельном сетевом сегменте. Не давайте ему отправлять реальные письма, заказы и документы во внешние системы. Иначе тестовое регламентное задание может создать рабочую операцию.
Загрузите свежую копию базы. Если переносите клиент-серверную базу, используйте штатные средства СУБД либо формат, согласованный с вашим планом миграции. Материал Serverzilla называет .dt универсальным форматом выгрузки 1С, но универсальность не делает его подходящим для любого окна простоя.
Проведите один рабочий день в сокращённом виде. Для каждого подразделения выберите операции, без которых оно остановится после переключения.
| Что проверяем | Действие пользователя | Признак успешного результата | Причина остановить миграцию |
|---|---|---|---|
| Вход в базу | открыть клиент с обычного рабочего места | пользователь входит под своей учётной записью и видит нужные разделы | работает только учётная запись администратора |
| Лицензирование | открыть несколько контрольных сеансов после перезапуска узлов | клиентские и серверные лицензии выдаются повторно | лицензия теряется после смены адреса или перезапуска |
| Проведение документов | создать и провести типовые документы подразделений | движения записываются, форма результата открывается | ошибка запроса, блокировка или расхождение результата |
| Печатные формы | сформировать документ, PDF и физическую печать | текст, изображения и штрихкоды читаются | пропали шрифты, изображения или части макета |
| Фоновые задания | дождаться запуска либо выполнить его вручную на пилоте | задание завершается и оставляет ожидаемый результат | процесс зависает, пишет в чужой каталог или обращается к рабочей системе |
| Обмены | провести тестовый обмен с изолированной копией второй стороны | данные уходят и принимаются без дублей | обмен обращается к рабочому адресу или меняет реальные данные |
| Внешние компоненты | выполнить операцию с оборудованием или сторонней программой | компонента загружается и возвращает ожидаемый ответ | нет сборки под Linux или не хватает библиотеки |
| Резервная копия | создать копию средствами целевой СУБД | задание завершается, файл попадает в заданное хранилище | копия создаётся только вручную либо остаётся на том же диске |
| Восстановление | развернуть копию под другим именем | тестовый клиент входит и открывает контрольные данные | файл существует, но СУБД его не восстанавливает |
| Сетевой доступ | подключиться из офиса, филиала и административной сети | каждый маршрут работает по согласованным правилам | доступ есть только из сегмента пилота |
Запуск srv1cv8 не завершает проверку. Разрешение на перенос даёт сквозной прогон: от входа пользователя до восстановления резервной копии.
Запишите результат каждой строки. Формулировок «вроде работает» в протоколе быть не должно. Нужны операция, исполнитель, результат и ссылка на журнал при ошибке.
Переключение должно оставлять путь назад
Перед рабочим переносом запретите изменения в старой базе на согласованный период. Иначе часть пользователей продолжит писать данные в прежний контур, пока остальные уже работают в новом.
После остановки изменений снимите финальную копию и сохраните её отдельно. Затем перенесите данные, выполните контрольные проверки и откройте доступ ограниченной группе.
Контрольной группе нужны обычные права. Администратор с расширенными разрешениями может пройти там, где бухгалтер, кладовщик или менеджер получит отказ.
Сетевой переход оформите отдельной операцией. Исправные сервер 1С и СУБД останутся недоступными, если новый маршрут, DNS или правило межсетевого экрана не пропустит соединение.
При изменении защищённого сетевого контура пригодится порядок переноса ViPNet Prime с контрольным подключением к 1С. Здесь сеть проверяют одним сеансом до открытия доступа остальным пользователям.
Заранее задайте условие отката. Например: контрольная группа не может войти, не проводится обязательный документ, не запускается обмен либо не восстанавливается копия. Сам порог выбирайте вместе с владельцами процессов.
Откат — это не поиск решения во время простоя. Команда должна заранее знать, кто закрывает доступ к новому контуру, кто возвращает старые маршруты и кто разрешает запись в прежнюю базу.
Протокол пилота принимает решение за проектную группу
Рабочую базу можно переносить, когда пилот подтвердил каждую зависимость. Ещё одно условие — команда проверила возврат на прежний контур.
Порядок работы выглядит так:
- Зафиксируйте компоненты, версии и внешние зависимости текущей системы.
- Выберите целевые ОС и СУБД по требованиям компании.
- Поднимите отдельный сетевой контур.
- Восстановите в нём копию рабочей базы.
- Проведите пользовательские операции из протокола.
- Создайте резервную копию нового контура и разверните её отдельно.
- Проверьте сетевое переключение и обратный маршрут.
- Подключите контрольную группу.
- Откройте доступ остальным после её подтверждения.
Если одна обязательная операция не прошла, рабочий перенос не начинается. Пилот остаётся пилотом, пока команда не устранит причину и не повторит проверку.
Когда выбор зависит от расширений, модели лицензирования и схемы сетевого доступа, одной общей инструкции мало. После пилота можно заказать проверку архитектуры миграции под вашу базу и передать специалисту уже собранный протокол, а не пересказ симптомов.