При работе с 1С:Зарплата и Управление Персоналом (ЗУП) 3 в режиме клиент-сервер часто возникает ситуация: на сервере установлена мощная серверная версия CryptoPro CSP, сертификаты загружены, и под управлением администратора на самом сервере все работает корректно. Однако, как только рядовой пользователь пытается загрузить электронный листок нетрудоспособности (ЭЛН) из ФСС (СФР) через тонкий клиент со своего рабочего места, система выдает ошибки: "Не удалось создать объект для работы с криптографией" и "В системе не обнаружен криптопровайдер".
Разберем детально, почему так происходит и как заставить систему использовать ресурсы сервера, не покупая лицензии на каждое рабочее место.
Проанализируем архитектуру решения. В 1С существует разделение кода на клиентский и серверный. По умолчанию многие операции по работе с криптографией в старых релизах ЗУП 3 (особенно в части обмена с ФСС) были жестко прописаны для выполнения &НаКлиенте. Это означает, что 1С ищет установленную программу CryptoPro CSP именно на локальном компьютере пользователя.
Рассмотрим, как это работает: когда пользователь нажимает кнопку "Получить из ФСС", программа ищет программный модуль криптопровайдера в реестре локальной Windows. Если его там нет (а он стоит только на сервере), выполнение прерывается с ошибкой. Наличие серверной лицензии CryptoPro на другом компьютере в этот момент никак не помогает клиенту.
Выясним причину, по которой настройка "Проверять подписи и сертификаты на сервере" может не давать ожидаемого эффекта. Для того чтобы криптография действительно "ушла" на сервер, недостаточно просто поставить одну галочку. Проделаем следующие шаги в интерфейсе программы:
Crypto-Pro GOST R 34.10-2012 Cryptographic Service Provider).Важный момент: даже при этих настройках некоторые модули обмена (особенно устаревшие механизмы ЭЛН) могут продолжать требовать клиентской установки. В новых версиях конфигураций разработчики 1С постепенно переносят весь документооборот с контролирующими органами на серверную сторону, но в релизах уровня 8.3.12, как в рассматриваемом случае, это разделение могло быть неполным.
Предположим, мы настроили выполнение на сервере. Однако возникает новая ошибка: "Сертификат не выбран в настройках" или "Сертификат не найден в хранилище". Разберем ситуацию с точки зрения системного администрирования.
Сервер 1С:Предприятие работает как Windows-служба. Обычно она запускается от имени специального пользователя, например, USR1CV8. Когда вы устанавливаете сертификат через интерфейс CryptoPro под своей учетной записью администратора, он попадает в хранилище Личное (Current User) администратора. Служба 1С, работая под другим пользователем, физически не имеет доступа к этому хранилищу.
Чтобы решить эту задачу, выполним следующие действия:
certlm.msc выбирайте соответствующий пункт.USR1CV8 есть права на чтение этого контейнера. В реестре Windows это ветка HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Crypto Pro\Settings\Users\... (для 64-битных систем).Если конфигурация ЗУП не позволяет выполнять конкретную операцию по ЭЛН на сервере (ограничение программного кода), рассмотрим альтернативные пути:
Это самый надежный способ при наличии серверной лицензии CryptoPro. Пользователи подключаются к серверу через RDP. В этом случае и 1С (клиентская часть), и CryptoPro CSP запущены в одной операционной системе. Серверная лицензия CryptoPro как раз предназначена для работы на серверных ОС в многопользовательском режиме. Проблема "удаленности" криптопровайдера исчезает сама собой.
Если терминальный режим невозможен, придется установить CryptoPro CSP на каждый компьютер пользователя. Помните, что для десктопных ОС (Windows 10/11) требуются клиентские лицензии. Серверная лицензия здесь не подходит по условиям лицензионного соглашения и технически не предназначена для установки на "домашние" версии ОС.
Рассмотрим возможность использования ViPNet CSP. Он бесплатен и часто позволяет выполнять те же задачи. Однако будьте крайне осторожны: нельзя устанавливать CryptoPro и ViPNet на один и тот же компьютер. Это приведет к неработоспособности системы и критическим ошибкам Windows (BSOD). Если вы решили перейти на ViPNet, сначала полностью удалите CryptoPro специальной утилитой очистки cspclean.
Для успешной работы ЭЛН через серверную криптографию в 1С:ЗУП 3 необходимо:
Local Machine на сервере.Если же ошибка "Криптопровайдер не обнаружен" сохраняется на клиенте после всех серверных настроек — это явный признак того, что конкретный участок кода 1С в вашей версии программы не поддерживает серверное подписание и требует локальной установки ПО на компьютер пользователя.