Как настроить сертификаты для обмена с ФСС в 1С:УПП 1.3 и исправить ошибку расшифровки 0x80092004

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

При настройке электронного документооборота с ФСС (ныне СФР) в конфигурации «Управление производственным предприятием, редакция 1.3» специалисты часто сталкиваются с тем, что необходимые сертификаты контролирующего органа не отображаются в списке выбора. Даже если сертификаты удается выбрать, при попытке обмена может возникнуть критическая ошибка расшифровки. Разберем детально причины такого поведения системы и пошагово восстановим работоспособность обмена.

Выясним причину: почему 1С не видит установленные сертификаты

Для начала проанализируем, как именно программа формирует список доступных сертификатов. В старых редакциях конфигураций, таких как УПП 1.3, для работы с криптографией часто используется внешняя компонента AddIn.ЭДОCom (библиотека v8edocom.dll).

Если мы заглянем «под капот» системы с помощью отладчика, то увидим, что программа перебирает сертификаты в системных хранилищах Windows по определенному алгоритму. Рассмотрим фрагмент кода, который отвечает за это заполнение:


// Перебираем сертификаты хранилища
Пока Крипт.ПолучитьСледующийСертификат("MY") Цикл
    
    ОтпечатокСертификата = Крипт.Отпечаток;
    
    НовСтрХранилище = ТаблицаСертификатовСтрахователя.Добавить();
    НовСтрХранилище.Отпечаток = Отпечаток16ИзBase64(ОтпечатокСертификата, ДвДанные);
    НовСтрХранилище.Субъект = РазобратьСтрокуСубъекта(Крипт.Субъект);
    НовСтрХранилище.СерийныйНомер = Крипт.СерийныйНомер;
    НовСтрХранилище.Поставщик = Крипт.Поставщик;
    НовСтрХранилище.ДействителенС = Крипт.ДействителенС;
    НовСтрХранилище.ДействителенПо = Крипт.ДействителенДо;
    НовСтрХранилище.Наименование = Крипт.ИмяСертификата;
    
КонецЦикла;

Обратим внимание на параметр "MY" в методе ПолучитьСледующийСертификат. Это техническое имя хранилища «Личное» (Personal) текущего пользователя в Windows. Таким образом, компонента AddIn.ЭДОCom жестко ограничена поиском только в этой папке.

Важный нюанс: По правилам информационной безопасности, сертификаты сторонних организаций (в данном случае — ФСС) обычно устанавливаются в хранилище «Другие пользователи». Однако из-за особенностей реализации компоненты в 1С, чтобы программа их «увидела» и позволила выбрать в настройках, их необходимо принудительно установить в хранилище «Личное», несмотря на отсутствие у них закрытого ключа.

Разбор ошибки 0x80092004 при расшифровке данных

После того как сертификаты выбраны, пользователь может столкнуться со следующей системной ошибкой: Объект CryptS : Ошибка при расшифровывании. 0x80092004 (80092004) Объект или свойство не найдено. Эта ошибка указывает на то, что криптопровайдер (например, КриптоПро CSP) не может найти необходимый элемент для завершения операции расшифровки ответа от сервера ФСС.

Проанализируем основные причины возникновения этой ситуации:

  1. Отсутствие привязки закрытого ключа: При расшифровке входящего сообщения от ФСС используется закрытый ключ страхователя (вашей организации). Если сертификат страхователя установлен в систему без связи с закрытым ключом (контейнером), расшифровка будет невозможна.
  2. Нарушение цепочки доверия: Если в системе не установлены корневые сертификаты Удостоверяющего Центра ФСС или Головного Удостоверяющего Центра, сертификат шифрования будет считаться недействительным. Криптопровайдер заблокирует работу с ним.
  3. Использование неактуальных сертификатов: ФСС регулярно обновляет свои сертификаты для шифрования (ЭЛН, ПОВЭД). Если в настройках 1С указан старый сертификат, а сервер прислал ответ, зашифрованный новым, возникнет ошибка «объект не найден».
  4. Разрядность системы: Если 1С запущена как 32-битное приложение, она использует 32-битную версию библиотеки v8edocom.dll. В этом случае сертификаты и криптопровайдер также должны быть корректно настроены в 32-битном контексте.

Пошаговая инструкция по настройке и устранению ошибок

Рассмотрим последовательность действий, которая поможет настроить обмен корректно:

  1. Проверка сертификата организации:

    Убедимся, что сертификат страхователя установлен через КриптоПро CSP с функцией «Установить сертификат из контейнера». Это гарантирует наличие связи между открытым сертификатом и закрытым ключом. Проверить это можно в свойствах сертификата: должна присутствовать надпись «Есть закрытый ключ, соответствующий этому сертификату».

  2. Установка сертификатов ФСС (СФР):

    Скачаем актуальные сертификаты с официального сайта СФР (бывший ФСС). Нам понадобятся сертификаты для шлюза приема отчетности (docs.fss.ru) и, если используется СЭДО, дополнительные сертификаты для sedo.fss.ru.

    Устанавливаем их следующим образом:

    • Помещаем их в хранилище «Личное» (чтобы 1С их увидела).
    • Дублируем их в хранилище «Другие пользователи» (для корректной работы CryptoAPI).
  3. Восстановление цепочки доверия:

    Проверим, установлены ли корневые сертификаты. Откроем установленный сертификат ФСС и перейдем на вкладку «Путь сертификации». Если на каком-то уровне стоит красный крестик, значит, нужно скачать и установить недостающий корневой или промежуточный сертификат в хранилище «Доверенные корневые центры сертификации».

  4. Перерегистрация компоненты (при необходимости):

    Если проблема сохраняется, попробуем перерегистрировать библиотеку v8edocom.dll, которая находится в каталоге установки платформы или в папке шаблонов конфигурации. Выполним команду в консоли cmd от имени администратора:

    regsvr32 "C:\путь_к_папке\v8edocom.dll"

Особенности работы с СФР в 2023-2024 годах

Посмотрим на ситуацию с учетом объединения ФСС и ПФР в единый фонд СФР. Теперь используются новые адреса шлюзов и новые сертификаты. В УПП 1.3 важно проверить, что версия конфигурации поддерживает актуальные форматы обмена.

Если вы используете версию ниже 1.3.130, рекомендуем обновиться, так как многие параметры обмена теперь зашиты в коде программных модулей или обновляются через механизмы интернет-поддержки. Также обратите внимание на версию КриптоПро CSP: для работы с современными алгоритмами ГОСТ Р 34.10-2012 рекомендуется использовать версию не ниже 5.0, так как старые версии (3.6, 3.9) официально не поддерживаются и могут вызывать ошибки при обработке современных ключей.

Соблюдение этих шагов позволит устранить ошибку 0x80092004 и обеспечит стабильную отправку реестров и получение ЭЛН в вашей программе.

← На главную