Как переустановить сервер 1С:Предприятие с x86 на x64 без потери настроек и баз данных?

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При увеличении нагрузки на сервер 1С пользователи часто сталкиваются с ошибкой «Недостаточно памяти на сервере». При этом на самом физическом сервере или виртуальной машине может оставаться много свободной оперативной памяти. Причина заключается в архитектурном ограничении 32-разрядного рабочего процесса 1С (rphost.exe), который не может адресовать более 2–3 ГБ оперативной памяти. Оптимальным решением этой проблемы является замена 32-разрядного сервера 1С (x86) на 64-разрядный (x64).

Рассмотрим подробно, как правильно выполнить миграцию службы сервера 1С с x86 на x64, сохранить список прописанных информационных баз и журнал регистрации, а также проанализируем подводные камни, которые могут возникнуть при таком переходе.

Пошаговый алгоритм миграции сервера 1С с x86 на x64

Главная задача при переходе — не потерять настройки кластера информационных баз и журнал регистрации. Сервер 1С хранит эти данные в каталоге srvinfo. По умолчанию 64-разрядный сервер создает собственный пустой каталог, поэтому при стандартной установке список баз в консоли администрирования может оказаться пустым.

Разберем по шагам безопасный способ переключения на 64-разрядную платформу с сохранением всех данных:

  1. Остановка службы 32-разрядного сервера 1С. Зайдем в оснастку управления службами Windows (services.msc) и остановим службу «Агент сервера 1С:Предприятие 8.3». Убедимся через диспетчер задач, что все процессы rphost.exe, rmngr.exe и ragent.exe завершены.
  2. Установка 64-разрядного сервера 1С. Запустим дистрибутив 64-разрядной платформы 1С:Предприятие той же версии (или более свежей) и выберем компонент «Сервер 1С:Предприятие 8.3» вместе с утилитой администрирования. Сразу после завершения установки перейдем в службы и остановим автоматически созданную службу 64-битного сервера.
  3. Корректировка пути к служебным файлам в реестре. Нажмем сочетание клавиш Win + R, введем regedit и перейдем в ветку реестра:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

    Найдем службы 32-битного и 64-битного серверов 1С (например, 1CV83Server и 1CV83_64Server). В параметре ImagePath 64-разрядной службы пропишем путь к существующему каталогу srvinfo, который использовался 32-разрядной службой. При необходимости добавим ключ -debug для включения режима отладки.
  4. Запуск и проверка работы службы. В свойствах службы 64-разрядного сервера изменим тип запуска на «Автоматически», а для 32-разрядной службы укажем «Отключена». Запустим 64-разрядную службу. Через консоль администрирования кластера или клиентское приложение 1С убедимся, что все информационные базы на месте, а пользователи могут успешно подключаться.
  5. Удаление старой версии. После успешной проверки зайдём в «Программы и компоненты» панели управления Windows и удалим 32-разрядный компонент сервера 1С, оставив при необходимости только клиентские приложения.

Важные технические нюансы и потенциальные проблемы

Проанализируем ключевые моменты, на которые следует обратить внимание до начала работ, чтобы избежать простоя системы:

1. Лицензирование

Для работы 64-разрядного сервера 1С требуется отдельная программная или аппаратная лицензия на 64-разрядный сервер (ПРОФ или КОРП). Лицензия, используемая для 32-разрядного сервера, не позволит запустить 64-разрядные процессы. Убедитесь в наличии подходящей лицензии перед началом процедуры.

2. Совместимость с COM-объектами и внешними компонентами

64-разрядный рабочий процесс rphost.exe не может напрямую обращаться к 32-разрядным библиотекам DLL и COM-объектам (например, MSScriptControl.ScriptControl, CAPICOM или старым драйверам торгового оборудования). При попытке вызова такого объекта на стороне сервера возникнет ошибка «Класс не зарегистрирован».

Для решения этой проблемы необходимо либо обновить библиотеки до 64-битных версий, либо настроить их запуск через службу компонентов Windows (DCOM / COM+), создав новое серверное приложение в консоли comexp.msc для выполнения 32-битного кода в изолированном процессе dllhost.exe.

3. Драйверы СУБД

Если СУБД (например, MS SQL Server) располагается на отдельном сервере, на машине с сервером 1С должны быть обязательно установлены 64-разрядные клиентские компоненты СУБД (такие как MS SQL Server Native Client или Microsoft OLE DB Driver for SQL Server x64). 32-битные драйверы 64-разрядным сервером 1С не поддерживаются.

4. Настройка параметров кластера и защита от утечек памяти

С переходом на x64 один процесс rphost.exe получает возможность использовать весь доступный объем физической оперативной памяти. Если в коде конфигурации присутствуют неоптимизированные запросы или утечки памяти, сервер 1С может занять всю память и вызвать сбой операционной системы. Чтобы предотвратить подобные ситуации, рекомендуется настроить ограничения в свойствах кластера 1С:

  1. Допустимый объем памяти (Memory limit) — предел памяти на один рабочий процесс.
  2. Интервал превышения допустимого объема памяти — время, через которое процесс с превышением лимита будет перезапущен.
  3. Автоматический перезапуск рабочих процессов — регулярное обновление процессов для освобождения заблокированных ресурсов.

5. Разрядность клиентских приложений

Переход сервера на 64-разрядную архитектуру не обязывает менять разрядность клиентов: 32-разрядные клиентские приложения 1С могут продолжать штатно работать с 64-разрядным сервером 1С:Предприятие.

← На главную