Как правильно перейти с 32-битного на 64-битный сервер 1С:Предприятие и заменить USB-ключ защиты

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

Рано или поздно любая развивающаяся информационная система на базе «1С:Предприятие» перерастает ограничения 32-битной архитектуры. Главным лимитом x32-платформы является жесткое ограничение оперативной памяти — рабочий процесс rphost не может использовать более 4 ГБ адресного пространства. Это приводит к регулярным ошибкам нехватки памяти, падению рабочих процессов и нестабильной работе пользователей. Переход на 64-битный сервер полностью снимает эти ограничения, позволяя системе использовать весь объем доступной оперативной памяти сервера.

В этой статье мы подробно разберем, как правильно осуществить миграцию с 32-разрядного на 64-разрядный сервер 1С, заменить аппаратный USB-ключ защиты и избежать распространенных «подводных камней», связанных с системными правами, совместимостью веб-сервисов и использованием сторонних 32-битных COM-компонент.

Шаг 1. Проверка совместимости и тестирование нового USB-ключа

Прежде чем приступать к масштабным работам по деинсталляции старого ПО, проанализируем специфику имеющихся у нас лицензий. Нам необходимо помнить следующее:

  1. Маркировка и типы ключей: Старый 32-битный ключ серверной лицензии обычно имеет фиолетовый корпус и маркировку ENSR8. Новый 64-битный ключ поставляется в темно-зеленом корпусе с маркировкой EN8SA (или относится к современной серии Sentinel HL Max).
  2. Обратная совместимость: Ключ серверной лицензии x64 (EN8SA) обладает полной обратной совместимостью. Он без проблем поддерживает работу как 64-битного, так и 32-битного сервера 1С.
  3. Клиентские лицензии: Многопользовательские и однопользовательские клиентские ключи (например, серии ORGL8) абсолютно инвариантны к разрядности сервера. Их менять или как-то перенастраивать в процессе миграции сервера не требуется.

Применим отличный практический совет: выполним проверку нового оборудования до начала переустановки платформы. Извлечем старый 32-битный ключ из USB-порта сервера и установим новый 64-битный ключ. Запустим существующий 32-битный сервер 1С и убедимся, что пользователи успешно авторизуются в базах данных. Если все работает стабильно, это гарантирует нам исправность нового физического USB-накопителя, и мы сможем спокойно двигаться дальше.

Шаг 2. Безопасный перенос настроек кластера и журнала регистрации (srvinfo)

Наиболее ценной информацией на сервере 1С (помимо самой базы данных, которая хранится на SQL-сервере) являются настройки кластера, списки информационных баз и журнал регистрации. Все эти данные по умолчанию хранятся в каталоге srvinfo.

Обратим внимание, что пути к этой папке по умолчанию различаются в зависимости от разрядности устанавливаемой платформы:

Для того чтобы не потерять список баз данных и историю действий пользователей (журнал регистрации), выполним следующие действия по шагам:

  1. Остановим службу старого 32-битного сервера приложений 1С через консоль управления службами (services.msc). Служба обычно называется «Агент сервера 1С:Предприятия 8.3».
  2. Скопируем папку srvinfo из каталога Program Files (x86) в безопасное временное место или сразу перенесем ее в будущую директорию 64-битной версии.
  3. Рекомендуемый практический прием: Перенесем папку настроек в корень другого диска, например, создадим каталог D:\1C_srvinfo. Это защитит наши настройки от случайной перезаписи или удаления при последующих обновлениях платформы, а также существенно упростит администрирование.

Шаг 3. Установка 64-битного сервера 1С и конфигурация службы

Разберем процесс установки новой платформы. Удалять старый x32-сервер сразу не обязательно — достаточно держать его службу в отключенном состоянии (тип запуска «Отключена»), однако для чистоты системы его рекомендуется деинсталлировать после завершения всех работ.

Запустим установщик 64-разрядной платформы 1С:Предприятие. Обязательно отметим компоненты «Cервер 1С:Предприятия» и «Администрирование сервера 1С:Предприятия». В процессе установки система предложит создать пользователя USR1CV8. Укажем надежный пароль или выберем существующую учетную запись, под которой работала предыдущая служба.

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

  1. Откроем редактор реестра Windows (regedit).
  2. Перейдем в ветку реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent (x86-64).
  3. Найдем параметр ImagePath. Он содержит строку запуска службы.
  4. Изменим путь, указанный после ключа -d. По умолчанию там прописан стандартный путь в Program Files. Укажем наш новый путь к перенесенной папке настроек. Например, итоговая строка должна выглядеть так:
    
    "C:\Program Files\1cv8\8.3.X.YYYY\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "D:\1C_srvinfo"
    
  5. Важный нюанс прав доступа: Обязательно зайдем в свойства папки D:\1C_srvinfo на вкладку «Безопасность» и предоставим пользователю USR1CV8 (или тому системному пользователю, от имени которого запускается служба сервера 1С) полные права (Full Control). Если этого не сделать, служба завершится с ошибкой при запуске или базы данных будут недоступны.

Теперь запустим службу «Агент сервера 1С:Предприятия 8.3 (x86-64)» и проверим ее работоспособность через консоль администрирования или клиентское подключение.

Шаг 4. Решение проблем с 32-битными COM-компонентами

Один из самых главных «подводных камней» при переходе на 64-битный сервер 1С — это невозможность прямого обращения 64-битного рабочего процесса rphost к внешним 32-битным библиотекам и COM-объектам. Например, часто перестают работать компоненты печати штрихкодов (barcode.ocx), вызовы системных скриптов через MSScriptControl или интеграция со сторонним ПО через COM.

Выясним, как решить проблему с наиболее популярным объектом MSScriptControl.ScriptControl, у которого нет официальной 64-битной версии:

  1. Настроим запуск компонента в изолированном 32-битном процессе-суррогате с помощью службы компонентов Windows (COM+). Для этого откроем консоль управления «Службы компонентов» (выполним команду comexp.msc).
  2. Перейдем по пути: «Службы компонентов» -> «Компьютеры» -> «Мой компьютер» -> «Приложения COM+».
  3. Нажмем правой кнопкой мыши по разделу «Приложения COM+», выберем «Создать» -> «Приложение». В открывшемся мастере выберем «Создать новое пустое приложение». Укажем понятное имя, например, 1C_MSScriptControl, и установим переключатель «Серверное приложение» (это заставит систему запускать компоненты в процессе dllhost.exe).
  4. В качестве учетной записи для запуска приложения укажем «Локальная служба» (Local Service) или учетную запись администратора.
  5. В созданном приложении перейдем в ветку «Компоненты», нажмем правой кнопкой мыши -> «Создать» -> «Компонент». Выберем «Установка новых компонентов» и укажем путь к файлу библиотеки (например, msscript.ocx, которая обычно лежит в каталоге C:\Windows\SysWOW64).

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

Также не забудем зарегистрировать 64-битную версию коннектора для внешнего соединения 1С (COM-соединение). Запустим командную строку от имени администратора и выполним следующую команду:

regsvr32 "C:\Program Files\1cv8\8.3.X.YYYY\bin\comcntr.dll"

Если на вашем сервере выполняются регламентные задания по формированию и выгрузке отчетов в форматы MS Excel или MS Word посредством COM-объектов, то на сервере обязательно должен быть установлен именно 64-разрядный пакет Microsoft Office. Использование 32-битного Office на сервере приведет к ошибкам в фоновых заданиях.

Шаг 5. Обновление драйверов защиты HASP

Хотя при обновлении платформы драйверы защиты часто продолжают работать в штатном режиме, при переходе на современную 64-битную операционную систему семейства Windows Server (например, Server 2019 или 2022) старые версии драйверов HASP могут работать нестабильно, вплоть до вызова критических ошибок операционной системы (BSOD).

Рекомендуем выполнить обновление драйверов безопасности по следующему алгоритму:

  1. Скачаем последнюю официальную версию Sentinel LDK Run-time Command Line Installer с сайта производителя защиты (Thales Group / SafeNet).
  2. Полностью удалим старый драйвер, выполнив в командной строке с правами администратора команду деинсталляции: haspdinst.exe -purge
  3. Установим новый актуальный драйвер защиты, выполнив установку: haspdinst.exe -i

Шаг 6. Настройка публикации баз на веб-сервере

Если ваши пользователи работают с информационными базами через веб-браузер или тонкий клиент, либо если в системе настроен обмен данными через HTTP/Web-сервисы, вам потребуется обновить публикацию баз на веб-сервере (например, IIS или Apache).

Помните, что разрядность веб-сервера должна строго соответствовать разрядности используемых модулей расширения 1С (файлов wsap24.dll для Apache). Если ранее у вас был установлен 32-битный Apache, выполним следующие действия:

  1. Полностью удалим 32-разрядный веб-сервер Apache.
  2. Установим 64-разрядную версию Apache той же ветки (например, Apache 2.4 x64).
  3. Запустим конфигуратор 1С:Предприятия новой 64-битной платформы обязательно от имени администратора.
  4. Перейдем в меню «Администрирование» -> «Публикация на веб-сервере» и заново опубликуем наши информационные базы. Конфигуратор автоматически пропишет новые пути к 64-битным библиотекам связи в конфигурационных файлах веб-сервера.

Заключение

Мы подробно разобрали все этапы перехода с 32-битной архитектуры сервера 1С на производительную 64-битную версию. Своевременное резервное копирование папки srvinfo, настройка прав доступа для системного пользователя, перенос COM-компонентов в службу COM+ и своевременное обновление драйверов защиты гарантируют плавную миграцию без простоя бизнес-процессов компании. Теперь ваш сервер 1С готов к обработке больших объемов данных и стабильной работе под высокой нагрузкой.

← На главную