Можно ли на одном сервере одновременно использовать 32-битные и 64-битные версии платформы 1С и как это влияет на работу КриптоПро

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

При администрировании серверов 1С:Предприятие часто возникает дилемма: стоит ли переходить на 64-битную версию платформы, если часть функционала (например, работа с электронно-цифровой подписью через КриптоПро CSP) завязана на старые 32-битные компоненты. В этой статье мы подробно разберем, как сосуществуют разные архитектуры платформы на одном сервере, выясним причины возможных конфликтов с криптографическим ПО и составим план действий для обеспечения стабильной работы системы.

Сосуществование 32-битной и 64-битной платформ 1С

Рассмотрим техническую возможность одновременной установки. В операционных системах семейства Windows 64-битные и 32-битные приложения устанавливаются в разные директории (C:\Program Files\1cv8 и C:\Program Files (x86)\1cv8 соответственно). Это позволяет физически хранить файлы обеих версий платформы без каких-либо конфликтов. Проанализируем, как это работает на практике:

  1. Клиентское приложение: При запуске тонкого или толстого клиента через 1cestart.exe (общий загрузчик), система позволяет в настройках конкретной информационной базы указать необходимую разрядность. Если установлены обе версии, вы можете принудительно запускать одну базу под 32-битным клиентом, а другую — под 64-битным.
  2. Сервер приложений: Агент сервера 1С работает как служба Windows. Хотя вы можете установить обе версии серверной части, в качестве активной службы одновременно может работать только одна (на стандартных портах). Однако, если возникнет необходимость, можно запустить второй экземпляр службы 1С другой разрядности на альтернативных портах (например, 1640, 1641).
  3. Обновление конфигураций: Как отмечалось в обсуждении, 64-битный вариант платформы часто предпочтительнее для выполнения тяжелых регламентных операций и обновлений больших конфигураций, так как он не ограничен 4 ГБ оперативной памяти на процесс.

Особенности работы КриптоПро CSP в смешанной среде

Выясним причину опасений по поводу «кривой работы» КриптоПро. На самом деле, современные версии КриптоПро CSP (начиная с 4.0) являются гибридными. При установке в 64-битную ОС инсталлятор автоматически регистрирует в системе библиотеки обеих архитектур. Проблема кроется не в самом криптопровайдере, а в способе обращения к нему из кода 1С.

Разберем основные сценарии взаимодействия:

Использование устаревшей библиотеки CAPICOM. Это ключевой момент. Библиотека CAPICOM.dll, которую часто использовали в старых конфигурациях 1С, существует только в 32-битном исполнении. Если ваш код инициализирует COM-объект этой библиотеки, то в 64-битном процессе (будь то клиент или сервер 1С) он работать не будет. Процесс просто не сможет загрузить 32-битную DLL в свое адресное пространство.

Использование объекта МенеджерКриптографии. В современных типовых решениях на базе БСП (Библиотеки стандартных подсистем) взаимодействие с КриптоПро реализовано через встроенный объект 1С МенеджерКриптографии. Этот объект работает напрямую через программный интерфейс CryptoAPI Windows. Поскольку Windows предоставляет 64-битные интерфейсы к CSP, 64-битная платформа 1С прекрасно с ними взаимодействует.

Настройка сервера 1С для работы с криптографией

Если подписание документов или проверка подписей происходит в серверном контексте (например, при обмене ЭДО через фоновые задания), необходимо выполнить ряд специфических настроек. Проанализируем их по шагам:

  1. Права доступа службы: Служба сервера 1С запускается от имени пользователя (по умолчанию USR1CV8). У этого пользователя должен быть доступ к закрытым ключам.
  2. Установка сертификатов: Часто администраторы устанавливают сертификат в хранилище «Личное» текущего пользователя (администратора). Однако сервер 1С его не увидит. Сертификат должен быть установлен в хранилище «Локальный компьютер» (Local Machine) либо импортирован в профиль пользователя USR1CV8.
  3. Настройка контейнеров: Для работы без участия пользователя (без ввода пароля в окне) необходимо сохранить пароль к контейнеру ключа в системе или использовать контейнеры без пароля (если это допустимо политикой безопасности).

Программная реализация проверки криптографии

Посмотрим на пример кода, который позволяет определить доступность менеджера криптографии и проверить установленные модули в контексте исполняемого кода:


// Пример получения списка установленных криптопровайдеров
Процедура ПроверитьДоступностьКриптографии()
    Попытка
        Менеджер = Новый МенеджерКриптографии("", "", 80); // Тип провайдера 80 для ГОСТ 2012
        СписокМодулей = Менеджер.ПолучитьСписокМодулейКриптографии();
        Для Каждого Модуль Из СписокМодулей Цикл
            Сообщить("Найден модуль: " + Модуль.Имя + " (Тип: " + Модуль.Тип + ")");
        КонецЦикла;
    Исключение
        Сообщить("Ошибка инициализации криптографии: " + ОписаниеОшибки());
    КонецПопытки;
КонецПроцедуры

Этот код будет успешно работать как на 32-битной, так и на 64-битной платформе, при условии, что в системе корректно установлен КриптоПро CSP.

Решение проблемы конфликта архитектур через COM+

Если вам все же жизненно необходимо использовать 32-битную библиотеку (например, специфическую компоненту от банка или старый CAPICOM) в 64-битном процессе сервера 1С, существует архитектурное решение через Component Services (COM+). Разберем этот метод:

  1. В консоли «Службы компонентов» создается новое пустое приложение COM+.
  2. В него добавляется необходимая 32-битная DLL.
  3. В настройках приложения на вкладке «Активация» выбирается пункт «Серверное приложение».
  4. После этого ОС создает процесс-суррогат (dllhost.exe), который работает в 32-битном режиме и выступает мостом между 64-битной 1С и 32-битной библиотекой.

Итоги и рекомендации

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

Основные выводы:

Таким образом, наличие 64-битной версии 1С не является препятствием для работы с криптографией, а параллельная установка двух версий платформы является нормальной практикой при миграции или решении специфических технических задач.

← На главную