При запуске внешней обработки «Обмен электронными документами СБИС» в среде тонкого клиента 1С:Управление торговлей 11.5 пользователи нередко сталкиваются с ситуацией, когда физический токен подключен к рабочему месту и отображается в криптопровайдере, но сама обработка прерывает работу с диагностическим сообщением: «Массив объектов "Сертификат" пуст».
Проанализируем архитектуру взаимодействия и выясним причину такого поведения. В отличие от типового модуля 1С-ЭДО, внешняя обработка СБИС для взаимодействия с криптографией обращается не к списку сертификатов, зарегистрированных в информационной базе 1С, а напрямую взаимодействует со службами операционной системы и локальным модулем Saby Plugin (или компонентами СБИС). Если закрытый ключ доступен на токене, но не привязан к персональному хранилищу Windows или плагин не может корректно опросить криптопровайдер, обработка не получает перечень доступных сертификатов.
Разберем по шагам диагностику и последовательное решение возникшей неполадки.
Самая распространенная причина ошибки заключается в том, что сертификат физически записан на защищенном носителе (Рутокен, JaCarta), но публичная его часть не установлена в личное хранилище сертификатов текущего пользователя Windows. Для плагина СБИС присутствия ключевого контейнера в считывателе недостаточно — сертификат должен быть явно зарегистрирован в системе со связкой с закрытым ключом.
Выполним процедуру привязки через СКЗИ «КриптоПро CSP»:
После этого операционная система свяжет открытый ключ с закрытым контейнером на токене, и внешние приложения смогут обнаружить сертификат в реестре.
Если срок действия лицензии на СКЗИ истек, криптопровайдер блокирует вызовы криптографических функций со стороны сторонних приложений, даже если сам контейнер отображается в оснастке. Рассмотрим проверку лицензии:
Обработка обмена СБИС обращается к локальной службе интеграции. Устаревшая версия Saby Plugin может содержать ошибки распознавания современных носителей либо некорректно передавать структуры данных в 1С. Разберем действия по обновлению компонента:
1С:Предприятие.Плагин интеграции при формировании списка сертификатов выполняет валидацию цепочки доверия. Если корневые сертификаты головного удостоверяющего центра (Минцифры России) или промежуточного УЦ (например, ФНС России) отсутствуют в хранилище операционной системы, сертификат помечается как недействительный и отсекается из выдачи. В результате обработка сообщает, что массив объектов пуст.
Для исправления ситуации необходимо открыть установленный сертификат, перейти на вкладку «Путь сертификации», убедиться в отсутствии предупреждений о невозможности проверить цепочку и при необходимости установить недостающие сертификаты в ветки «Доверенные корневые центры сертификации» и «Промежуточные центры сертификации».
Проанализируем системные параметры выполнения процессов:
При использовании криптопровайдера КриптоПро версии 5 с определенными моделями смарт-карт и токенов плагин может не успевать получить ответ от считывателя. В этом случае в конфигурационном файле плагина user-config.ini (расположенном в каталоге пользовательских настроек плагина) необходимо прописать директиву активации считывателей:
[Считыватели]
РежимАктивныхСчитывателейКриптоПро5=true
После внесения правок плагин следует перезапустить.
Если требуется срочно отправить документы, а считывание сертификата при первичном входе блокируется, разберем альтернативный сценарий: авторизуемся в обработке по логину и паролю личного кабинета СБИС. В таком режиме вход не зависит от проверки сертификата на этапе запуска, а обращение к носителю произойдет непосредственно в момент подписания исходящего пакета.
Также проверим в параметрах подключения обработки используемый протокол взаимодействия: переключение между режимами интеграции (например, ExtSDK и ExtSDK2) и отключение флага использования тестового контура позволяет исключить фильтрацию рабочих сертификатов при инициализации модуля.