При работе в клиент-серверном варианте программы 1С:Зарплата и управление персоналом 3 (ЗУП) системные администраторы часто сталкиваются с парадоксальной ситуацией. Несмотря на установленные флаги "Шифровать на сервере" и "Подписывать на сервере" в настройках криптографии, при попытке отправить отчетность непосредственно с рабочего места пользователя система выдает ошибку: «Криптопровайдер в системе не обнаружен». Рассмотрим детально, почему это происходит, как работают механизмы защиты и какие существуют способы решения данной проблемы.
Проанализируем первопричину конфликта. Важно понимать, что в современных конфигурациях 1С сосуществуют две разные подсистемы работы с электронной подписью. Первая — это универсальная Библиотека стандартных подсистем (БСП), которая отвечает за обычный электронный документооборот (1С-ЭДО). Вторая — это модуль 1С-Отчетность, разработанный совместно с компанией «Калуга Астрал».
Выясним причину проблемы: настройки «Шифровать на сервере», расположенные в общем разделе обмена электронными документами, зачастую применяются только к подсистеме БСП (ЭДО). Модуль 1С-Отчетность исторически имеет жесткую привязку к интерактивным действиям пользователя. Если программный код отправки отчета инициирует проверку сертификата на стороне клиента до того, как данные будут переданы на сервер для подписания, система потребует наличие установленного СКЗИ (например, КриптоПро CSP) непосредственно на компьютере пользователя.
Разберем ситуацию, когда криптопровайдер на сервере установлен, но система его «не видит». Это часто связано с особенностями работы службы 1C:Enterprise 8.3 Server Agent. Рассмотрим основные моменты:
USR1CV8). Если вы установили сертификаты и контейнеры закрытых ключей под учетной записью администратора, служба сервера их не увидит. Контейнеры должны быть установлены либо в ветку реестра HKEY_LOCAL_MACHINE (для всех пользователей), либо непосредственно в профиль пользователя, под которым работает сервер 1С.Рассмотрим несколько способов организации работы, чтобы избежать установки СКЗИ на каждое рабочее место.
Проанализируем вариант с сервером терминалов. Это одно из самых надежных решений. Мы устанавливаем тонкий клиент 1С, криптопровайдер и все необходимые сертификаты на один терминальный сервер. Пользователи подключаются к нему через RDP или RemoteApp. В этом случае для программы клиент и сервер (в контексте криптографии) фактически находятся в одном программном окружении, и конфликтов с «отсутствием криптопровайдера» не возникает.
Посмотрим на настройки внутри самой программы 1С. Чтобы подписание на сервере действительно заработало, выполним следующие шаги:
СертификатыКлючейЭлектроннойПодписиИШифрования.ПрограммыЭлектроннойПодписиИШифрования.Выясним, как полностью избавиться от локальных ключей. Современным и наиболее технологичным решением является использование 1С:DSS. Это сервис «облачной» подписи. В данной схеме закрытый ключ хранится в защищенном хранилище на сервере оператора (или на вашем корпоративном сервере DSS). При подписании документа 1С отправляет запрос на сервер DSS, а пользователь подтверждает операцию через мобильное приложение или SMS. При такой архитектуре установка КриптоПро CSP на клиентские машины не требуется вовсе.
Важно помнить о лицензировании. Обычная лицензия КриптоПро CSP на рабочее место часто не дает права использовать программу в составе серверных приложений для автоматической обработки данных. Для легальной работы на стороне сервера 1С требуется специальная лицензия — «КриптоПро CSP для серверных операционных систем». Без нее криптопровайдер может блокировать запросы от многопоточных серверных процессов, что также приводит к ошибкам «не обнаружен» или «отказ в доступе».
Подводя итог, отметим: если вы используете стандартную 1С-Отчетность через локальные ключи в реестре, то в большинстве случаев (без использования терминалов или DSS) вам действительно придется установить криптопровайдер на каждое рабочее место, где происходит отправка отчетов. Настройки «на сервере» в текущих версиях программ часто имеют ограниченное действие и требуют тщательной подготовки профиля серверной службы USR1CV8 и правильного импорта сертификатов в хранилище Local Computer или Personal для пользователя службы.