При настройке электронного документооборота с ФСС (ныне СФР) в конфигурации «Управление производственным предприятием, редакция 1.3» специалисты часто сталкиваются с тем, что необходимые сертификаты контролирующего органа не отображаются в списке выбора. Даже если сертификаты удается выбрать, при попытке обмена может возникнуть критическая ошибка расшифровки. Разберем детально причины такого поведения системы и пошагово восстановим работоспособность обмена.
Для начала проанализируем, как именно программа формирует список доступных сертификатов. В старых редакциях конфигураций, таких как УПП 1.3, для работы с криптографией часто используется внешняя компонента AddIn.ЭДОCom (библиотека v8edocom.dll).
Если мы заглянем «под капот» системы с помощью отладчика, то увидим, что программа перебирает сертификаты в системных хранилищах Windows по определенному алгоритму. Рассмотрим фрагмент кода, который отвечает за это заполнение:
// Перебираем сертификаты хранилища
Пока Крипт.ПолучитьСледующийСертификат("MY") Цикл
ОтпечатокСертификата = Крипт.Отпечаток;
НовСтрХранилище = ТаблицаСертификатовСтрахователя.Добавить();
НовСтрХранилище.Отпечаток = Отпечаток16ИзBase64(ОтпечатокСертификата, ДвДанные);
НовСтрХранилище.Субъект = РазобратьСтрокуСубъекта(Крипт.Субъект);
НовСтрХранилище.СерийныйНомер = Крипт.СерийныйНомер;
НовСтрХранилище.Поставщик = Крипт.Поставщик;
НовСтрХранилище.ДействителенС = Крипт.ДействителенС;
НовСтрХранилище.ДействителенПо = Крипт.ДействителенДо;
НовСтрХранилище.Наименование = Крипт.ИмяСертификата;
КонецЦикла;
Обратим внимание на параметр "MY" в методе ПолучитьСледующийСертификат. Это техническое имя хранилища «Личное» (Personal) текущего пользователя в Windows. Таким образом, компонента AddIn.ЭДОCom жестко ограничена поиском только в этой папке.
Важный нюанс: По правилам информационной безопасности, сертификаты сторонних организаций (в данном случае — ФСС) обычно устанавливаются в хранилище «Другие пользователи». Однако из-за особенностей реализации компоненты в 1С, чтобы программа их «увидела» и позволила выбрать в настройках, их необходимо принудительно установить в хранилище «Личное», несмотря на отсутствие у них закрытого ключа.
После того как сертификаты выбраны, пользователь может столкнуться со следующей системной ошибкой: Объект CryptS : Ошибка при расшифровывании. 0x80092004 (80092004) Объект или свойство не найдено. Эта ошибка указывает на то, что криптопровайдер (например, КриптоПро CSP) не может найти необходимый элемент для завершения операции расшифровки ответа от сервера ФСС.
Проанализируем основные причины возникновения этой ситуации:
v8edocom.dll. В этом случае сертификаты и криптопровайдер также должны быть корректно настроены в 32-битном контексте.Рассмотрим последовательность действий, которая поможет настроить обмен корректно:
Убедимся, что сертификат страхователя установлен через КриптоПро CSP с функцией «Установить сертификат из контейнера». Это гарантирует наличие связи между открытым сертификатом и закрытым ключом. Проверить это можно в свойствах сертификата: должна присутствовать надпись «Есть закрытый ключ, соответствующий этому сертификату».
Скачаем актуальные сертификаты с официального сайта СФР (бывший ФСС). Нам понадобятся сертификаты для шлюза приема отчетности (docs.fss.ru) и, если используется СЭДО, дополнительные сертификаты для sedo.fss.ru.
Устанавливаем их следующим образом:
Проверим, установлены ли корневые сертификаты. Откроем установленный сертификат ФСС и перейдем на вкладку «Путь сертификации». Если на каком-то уровне стоит красный крестик, значит, нужно скачать и установить недостающий корневой или промежуточный сертификат в хранилище «Доверенные корневые центры сертификации».
Если проблема сохраняется, попробуем перерегистрировать библиотеку v8edocom.dll, которая находится в каталоге установки платформы или в папке шаблонов конфигурации. Выполним команду в консоли cmd от имени администратора:
regsvr32 "C:\путь_к_папке\v8edocom.dll"
Посмотрим на ситуацию с учетом объединения ФСС и ПФР в единый фонд СФР. Теперь используются новые адреса шлюзов и новые сертификаты. В УПП 1.3 важно проверить, что версия конфигурации поддерживает актуальные форматы обмена.
Если вы используете версию ниже 1.3.130, рекомендуем обновиться, так как многие параметры обмена теперь зашиты в коде программных модулей или обновляются через механизмы интернет-поддержки. Также обратите внимание на версию КриптоПро CSP: для работы с современными алгоритмами ГОСТ Р 34.10-2012 рекомендуется использовать версию не ниже 5.0, так как старые версии (3.6, 3.9) официально не поддерживаются и могут вызывать ошибки при обработке современных ключей.
Соблюдение этих шагов позволит устранить ошибку 0x80092004 и обеспечит стабильную отправку реестров и получение ЭЛН в вашей программе.