Почему после установки 64-битной платформы 1С перестали определяться криптопровайдер и сертификаты ЭДО?

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

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

Разберем детально, почему возникает подобный конфликт, как разрядность приложения влияет на взаимодействие с криптографией и как поэтапно вернуть работоспособность подписи и шифрования.

Выясним причину проблемы: несовместимость разрядностей x86 и x64

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

  1. Разрядность внешних библиотек и компонентов. Даже если в 64-битной операционной системе Windows установлен криптопровайдер с поддержкой x64, взаимодействие 1С с функциями операционной системы CryptoAPI часто осуществляется через промежуточные COM-объекты и внешние компоненты. В конфигурациях 1С многие вспомогательные библиотеки исторически скомпилированы исключительно под 32-битную архитектуру (x86). 64-разрядный исполняемый процесс платформы 1С физически не способен загрузить 32-битную библиотеку DLL или инпроцессный COM-сервер в свое адресное пространство.
  2. Разница между обычными и управляемыми формами. В конфигурациях на базе обычных форм (например, ЗУП 2.5, Комплексная автоматизация 1.1, УПП) криптографические операции реализованы через прямое подключение внешних 32-битных ActiveX-модулей. В современных конфигурациях на управляемых формах задействован платформенный объект МенеджерКриптографии и кроссплатформенные Native-компоненты, которые умеют работать с 64-битными вызовами. Именно поэтому в одной и той же среде на управляемых формах сертификаты могут отображаться корректно, а на обычных формах выдается ошибка отсутствия провайдера.
  3. Модуль печати двумерного штрихкода (PDF417). Похожая проблема возникает при печати регламентированных отчетов: официальная внешняя библиотека штрихкодирования от ФНС существует только в 32-разрядном исполнении. Под 64-битным клиентом 1С формирование двумерного штрихкода завершается сбоем.
  4. Клиент-серверные настройки криптографии. Если в программе включен флаг выполнения криптографических операций на сервере, обращение к ключам выполняет не клиентское приложение, а процесс кластера серверов 1С (rphost.exe). В этом случае разрядность серверной службы и наличие сертификатов в профиле системной учетной записи usr1cv8 играют решающую роль.

Шаг 1. Установка правильной разрядности клиентского приложения

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

  1. Определим архитектуру: серверную часть 1С (кластер серверов) на основном хосте можно оставить 64-битной для оптимального использования оперативной памяти и производительности СУБД.
  2. На рабочих станциях пользователей (включая компьютеры под управлением 64-разрядной Windows 10 или Windows 11) установим 32-разрядную технологическую платформу 1С той же версии релиза.
  3. Проверим путь установки: 32-битный клиент платформы по умолчанию инсталлируется в каталог C:\Program Files (x86)\1cv8. Запуск базы данных необходимо выполнять именно из этого каталога.
  4. Запустим конфигурацию и проверим настройки криптографии. При работе через 32-разрядный клиент вызовы внешних COM-библиотек СКЗИ и формирование штрихкодов PDF417 отрабатывают штатно.

Шаг 2. Разделение клиентских и серверных криптоопераций

Рассмотрим ситуацию, когда база данных работает в клиент-серверном режиме. Выясним, на чьей стороне должны происходить подписание и проверка сертификатов:

  1. Откроем базу 1С и перейдем в раздел администрирования настроек электронной подписи и шифрования.
  2. Найдем опцию Выполнять криптографические операции на сервере.
  3. Если сертификаты установлены на локальных компьютерах пользователей (на токенах или в реестре локальной ОС), обязательно отключим данную опцию. В этом случае операции будут выполняться на клиенте через установленный 32-битный процесс 1С.
  4. Если бизнес-процесс жестко требует подписи на стороне сервера (например, при автоматическом фоновом обмене), убедимся, что на сервере установлен 64-битный криптопровайдер, а сертификаты установлены в личное хранилище сервисной учетной записи ОС, под которой стартует служба ragent.exe (по умолчанию usr1cv8). Контейнер закрытого ключа не должен запрашивать интерактивный ввод пароля, так как служба сервера работает в изолированной нулевой сессии (Session 0).

Шаг 3. Корректная очистка следов платформы и криптопровайдеров

Нередко системные администраторы пытаются удалить старую версию 1С простым удалением папок с номерами релизов из файловой системы. Это приводит к засорению реестра, зависанию COM-объектов и отказу запуска системных служб. Восстановим корректное состояние системы:

  1. Удалим все версии платформы исключительно через штатную панель «Программы и компоненты» Windows.
  2. Если после ручного удаления файлов зависла служба агента сервера 1С, удалим битую регистрацию службы через командную строку, запущенную от имени администратора, выполнив команду sc delete "1C:Enterprise 8.3 Server Agent" (указав точное имя службы в системе).
  3. Проверим установленные СКЗИ: на одном рабочем месте категорически запрещено одновременно использовать КриптоПро CSP и ViPNet CSP. При смене одного провайдера на другой полностью удалим старый продукт. Для КриптоПро CSP рекомендуется применить официальную утилиту глубокой очистки cspclean.
  4. После перезагрузки компьютера заново установим требуемый криптопровайдер и затем установим 32-разрядную версию платформы 1С:Предприятия.

Соблюдение однородности разрядности между клиентом 1С и криптографическими компонентами операционной системы полностью устраняет проблему доступности сертификатов ЭДО и модулей печати отчетности.

← На главную