Почему не работает КриптоПро на клиенте при наличии серверной лицензии в 1С:ЗУП 3?

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

При работе с 1С:Зарплата и Управление Персоналом (ЗУП) 3 в режиме клиент-сервер часто возникает ситуация: на сервере установлена мощная серверная версия CryptoPro CSP, сертификаты загружены, и под управлением администратора на самом сервере все работает корректно. Однако, как только рядовой пользователь пытается загрузить электронный листок нетрудоспособности (ЭЛН) из ФСС (СФР) через тонкий клиент со своего рабочего места, система выдает ошибки: "Не удалось создать объект для работы с криптографией" и "В системе не обнаружен криптопровайдер".

Разберем детально, почему так происходит и как заставить систему использовать ресурсы сервера, не покупая лицензии на каждое рабочее место.

Причина 1: Специфика выполнения кода в типовых конфигурациях

Проанализируем архитектуру решения. В 1С существует разделение кода на клиентский и серверный. По умолчанию многие операции по работе с криптографией в старых релизах ЗУП 3 (особенно в части обмена с ФСС) были жестко прописаны для выполнения &НаКлиенте. Это означает, что 1С ищет установленную программу CryptoPro CSP именно на локальном компьютере пользователя.

Рассмотрим, как это работает: когда пользователь нажимает кнопку "Получить из ФСС", программа ищет программный модуль криптопровайдера в реестре локальной Windows. Если его там нет (а он стоит только на сервере), выполнение прерывается с ошибкой. Наличие серверной лицензии CryptoPro на другом компьютере в этот момент никак не помогает клиенту.

Причина 2: Настройка выполнения операций на стороне сервера

Выясним причину, по которой настройка "Проверять подписи и сертификаты на сервере" может не давать ожидаемого эффекта. Для того чтобы криптография действительно "ушла" на сервер, недостаточно просто поставить одну галочку. Проделаем следующие шаги в интерфейсе программы:

  1. Перейдем в раздел Администрирование — Общие настройки — Электронная подпись и шифрование.
  2. На вкладке Программы выберем установленный криптопровайдер (например, Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider).
  3. В карточке программы проверим флаг "Задавать параметры через сервер 1С:Предприятие". Без этой настройки серверная часть 1С не будет знать, по какому пути обращаться к библиотекам криптографии.
  4. Убедимся, что на вкладке Настройки установлен флаг "Выполнять шифрование и подписание на сервере".

Важный момент: даже при этих настройках некоторые модули обмена (особенно устаревшие механизмы ЭЛН) могут продолжать требовать клиентской установки. В новых версиях конфигураций разработчики 1С постепенно переносят весь документооборот с контролирующими органами на серверную сторону, но в релизах уровня 8.3.12, как в рассматриваемом случае, это разделение могло быть неполным.

Причина 3: Проблема видимости сертификатов службой 1С

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

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

Чтобы решить эту задачу, выполним следующие действия:

  1. Установим сертификаты (организации и ФСС) в хранилище Локальный компьютер (Local Machine). Для этого при импорте через оснастку certlm.msc выбирайте соответствующий пункт.
  2. Если используется контейнер закрытого ключа на токене или в реестре, необходимо убедиться, что у пользователя USR1CV8 есть права на чтение этого контейнера. В реестре Windows это ветка HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\... (для 64-битных систем).
  3. В настройках 1С в справочнике Сертификаты электронной подписи и шифрования для каждого сертификата нужно указать, что он используется на сервере, и привязать его к конкретному узлу сервера.

Варианты решения проблемы при невозможности серверной настройки

Если конфигурация ЗУП не позволяет выполнять конкретную операцию по ЭЛН на сервере (ограничение программного кода), рассмотрим альтернативные пути:

Вариант 1: Использование терминального сервера

Это самый надежный способ при наличии серверной лицензии CryptoPro. Пользователи подключаются к серверу через RDP. В этом случае и 1С (клиентская часть), и CryptoPro CSP запущены в одной операционной системе. Серверная лицензия CryptoPro как раз предназначена для работы на серверных ОС в многопользовательском режиме. Проблема "удаленности" криптопровайдера исчезает сама собой.

Вариант 2: Установка CryptoPro на рабочие станции

Если терминальный режим невозможен, придется установить CryptoPro CSP на каждый компьютер пользователя. Помните, что для десктопных ОС (Windows 10/11) требуются клиентские лицензии. Серверная лицензия здесь не подходит по условиям лицензионного соглашения и технически не предназначена для установки на "домашние" версии ОС.

Вариант 3: Использование бесплатных аналогов

Рассмотрим возможность использования ViPNet CSP. Он бесплатен и часто позволяет выполнять те же задачи. Однако будьте крайне осторожны: нельзя устанавливать CryptoPro и ViPNet на один и тот же компьютер. Это приведет к неработоспособности системы и критическим ошибкам Windows (BSOD). Если вы решили перейти на ViPNet, сначала полностью удалите CryptoPro специальной утилитой очистки cspclean.

Резюме

Для успешной работы ЭЛН через серверную криптографию в 1С:ЗУП 3 необходимо:

Если же ошибка "Криптопровайдер не обнаружен" сохраняется на клиенте после всех серверных настроек — это явный признак того, что конкретный участок кода 1С в вашей версии программы не поддерживает серверное подписание и требует локальной установки ПО на компьютер пользователя.

← На главную