Заменить 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 ServerPostgreSQL или Postgres Proзапросы, блокировки, фоновые задания, обслуживание базыпроведение документов, закрытие регламентных операций, стабильность длительных запросов
Служба лицензированияотдельный сервер лицензийзапуск клиентских и серверных сеансовполучение лицензии после перезапуска узлов и смены адреса
Сетевой доступновые маршруты, VPN и правила межсетевого экранасоединение клиента с кластером и СУБДвход из пользовательских подсетей, работа удалённых площадок
Резервное копированиесредства целевой СУБД и новое хранилищедопустимая потеря данных и время возвратасоздание копии, развёртывание отдельно от рабочей базы, вход в восстановленную базу
Windows-компоненты и утилитыпакеты и аналоги для Linuxпечать, преобразование файлов, обменыформирование печатных форм, выгрузка файлов, запуск обработок
Планировщик Windowscron, 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С. Здесь сеть проверяют одним сеансом до открытия доступа остальным пользователям.

Заранее задайте условие отката. Например: контрольная группа не может войти, не проводится обязательный документ, не запускается обмен либо не восстанавливается копия. Сам порог выбирайте вместе с владельцами процессов.

Откат — это не поиск решения во время простоя. Команда должна заранее знать, кто закрывает доступ к новому контуру, кто возвращает старые маршруты и кто разрешает запись в прежнюю базу.

Протокол пилота принимает решение за проектную группу

Рабочую базу можно переносить, когда пилот подтвердил каждую зависимость. Ещё одно условие — команда проверила возврат на прежний контур.

Порядок работы выглядит так:

  1. Зафиксируйте компоненты, версии и внешние зависимости текущей системы.
  2. Выберите целевые ОС и СУБД по требованиям компании.
  3. Поднимите отдельный сетевой контур.
  4. Восстановите в нём копию рабочей базы.
  5. Проведите пользовательские операции из протокола.
  6. Создайте резервную копию нового контура и разверните её отдельно.
  7. Проверьте сетевое переключение и обратный маршрут.
  8. Подключите контрольную группу.
  9. Откройте доступ остальным после её подтверждения.

Если одна обязательная операция не прошла, рабочий перенос не начинается. Пилот остаётся пилотом, пока команда не устранит причину и не повторит проверку.

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

linux ms-sql-server postgresql миграция 1с совместимость по