При работе с электронными листками нетрудоспособности (ЭЛН) в программах «1С:Зарплата и управление персоналом» версий 2.5 и 3.1 пользователи часто сталкиваются с блокирующей ошибкой: «Удостоверяющий центр [Название], издавший сертификат, на момент издания сертификата не авторизован фирмой 1С». Эта проблема возникает даже в тех случаях, когда сертификат полностью валиден, имеет актуальный срок действия и корректно работает в других программах (например, в Контур.Экстерн или СБИС).
В данной статье мы разберем причины возникновения этой ситуации, проанализируем механизмы проверки сертификатов в 1С и рассмотрим несколько способов решения — от простых организационных до глубоких технических правок кода.
Разберем ситуацию с технической точки зрения. В типовых конфигурациях 1С встроен механизм проверки цепочки доверия сертификатов. Однако, помимо стандартной проверки средствами операционной системы (Windows), 1С обращается к внутреннему списку «авторизованных» Удостоверяющих центров (УЦ). Если вашего УЦ (например, ЗАО «ПФ «СКБ Контур») нет в этом жестко прописанном списке для конкретного вида операции (взаимодействие с ФСС/СФР), программа выдает ошибку и прерывает выполнение метода PKCS7ПодписатьСДаннымиИЗашифровать.
Фирма 1С позиционирует это как меру безопасности, гарантирующую стабильную работу сервиса «1С-Отчетность». На практике это означает, что использование сторонних сертификатов для прямого обмена данными из интерфейса программы искусственно ограничивается.
Самый стабильный и безопасный метод, который не требует вмешательства в программный код и гарантирует отсутствие проблем при обновлении конфигурации. Проанализируем этот алгоритм:
Рассмотрим подробнее ситуацию с получением самих ЭЛН. Если 1С блокирует загрузку по номеру больничного, данные можно скачать в личном кабинете страхователя на сайте ФСС/СФР в формате XML и загрузить в 1С через кнопку «Загрузить из файла».
Иногда ошибка об авторизации УЦ является следствием того, что в системном хранилище Windows нарушена цепочка доверия. Выясним, как это исправить:
Проверим наличие актуальных корневых сертификатов УЦ и самого ведомства. Для этого выполним следующие шаги:
Важный момент: С 2012 года используется новый ГОСТ. Убедитесь, что ваш криптопровайдер обновлен до версии, поддерживающей ГОСТ Р 34.10-2012.
Если ваша организация использует доработанную (снятую с поддержки) конфигурацию или вы готовы к внесению изменений в расширение, можно деактивировать проверку «авторизации» УЦ. Рассмотрим, как это реализовано в ЗУП 2.5 КОРП и подобных решениях.
Проанализируем структуру модулей. Проверка обычно зашита в общем модуле РегламентированнаяОтчетность или в специализированных модулях документооборота. Пользователи форума отмечают, что помогает «откат» к алгоритмам из старых релизов (например, 2.5.133.1), где проверка была менее жесткой.
Пример логики, которую необходимо найти и скорректировать в коде:
// В процедурах отправки или подготовки данных ищем вызов проверки сертификата
Если НЕ УдостоверяющийЦентрАвторизован(Сертификат) Тогда
// Программа выдает исключение
// ВызватьИсключение ТекстОшибки;
// Для обхода проверки можно закомментировать ВызватьИсключение
// или принудительно возвращать Истина в функции проверки.
КонецЕсли;
Рассмотрим вариант использования расширения для ЗУП 3.1. Мы можем переопределить функцию, отвечающую за валидацию издателя сертификата. Нам нужно найти метод, возвращающий список доверенных УЦ, и добавить туда ваш центр или вовсе пропустить проверку.
Внимание: При обновлении конфигурации данные модули могут быть перезаписаны, поэтому использование Расширений является предпочтительным методом.
В современных релизах ЗУП 3.1 взаимодействие идет через механизм СЭДО. Выясним одну особенность: СЭДО часто более лоялен к сторонним сертификатам, если правильно настроена «Учетная запись документооборота».
Подведем итоги нашего анализа. Ошибка авторизации УЦ — это программное ограничение, накладываемое вендором. Для его решения у вас есть три пути:
ОбщегоМодуля.Выбор метода зависит от ваших ресурсов и критичности автоматизации процесса обмена ЭЛН непосредственно из интерфейса 1С.