Как устранить ошибку «Удостоверяющий центр не авторизован фирмой 1С» при получении электронных больничных?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом
← На главную

При работе с электронными листками нетрудоспособности (ЭЛН) в программах «1С:Зарплата и управление персоналом» версий 2.5 и 3.1 пользователи часто сталкиваются с блокирующей ошибкой: «Удостоверяющий центр [Название], издавший сертификат, на момент издания сертификата не авторизован фирмой 1С». Эта проблема возникает даже в тех случаях, когда сертификат полностью валиден, имеет актуальный срок действия и корректно работает в других программах (например, в Контур.Экстерн или СБИС).

В данной статье мы разберем причины возникновения этой ситуации, проанализируем механизмы проверки сертификатов в 1С и рассмотрим несколько способов решения — от простых организационных до глубоких технических правок кода.

Почему возникает ошибка: механизм «Белого списка» 1С

Разберем ситуацию с технической точки зрения. В типовых конфигурациях 1С встроен механизм проверки цепочки доверия сертификатов. Однако, помимо стандартной проверки средствами операционной системы (Windows), 1С обращается к внутреннему списку «авторизованных» Удостоверяющих центров (УЦ). Если вашего УЦ (например, ЗАО «ПФ «СКБ Контур») нет в этом жестко прописанном списке для конкретного вида операции (взаимодействие с ФСС/СФР), программа выдает ошибку и прерывает выполнение метода PKCS7ПодписатьСДаннымиИЗашифровать.

Фирма 1С позиционирует это как меру безопасности, гарантирующую стабильную работу сервиса «1С-Отчетность». На практике это означает, что использование сторонних сертификатов для прямого обмена данными из интерфейса программы искусственно ограничивается.

Способ 1. Организационный обход (выгрузка и загрузка файлов)

Самый стабильный и безопасный метод, который не требует вмешательства в программный код и гарантирует отсутствие проблем при обновлении конфигурации. Проанализируем этот алгоритм:

  1. Формирование данных в 1С: Перейдем в документ «Реестр прямых выплат» или «Ответ на запрос ФСС». Заполним все необходимые данные по сотруднику и больничному листу.
  2. Выгрузка в XML: Вместо нажатия кнопки «Отправить в ФСС», воспользуемся командой «Выгрузить» и сохраним сформированный файл на диск.
  3. Подписание и отправка сторонним ПО: Загрузим полученный файл в программу, через которую вы обычно сдаете отчетность (например, Контур.Экстерн, СБИС или Такском).
  4. Загрузка статусов: После успешной отправки и получения протоколов, статус документа в 1С можно изменить вручную для соблюдения внутреннего учета.

Рассмотрим подробнее ситуацию с получением самих ЭЛН. Если 1С блокирует загрузку по номеру больничного, данные можно скачать в личном кабинете страхователя на сайте ФСС/СФР в формате XML и загрузить в 1С через кнопку «Загрузить из файла».

Способ 2. Настройка криптографии и корневых сертификатов

Иногда ошибка об авторизации УЦ является следствием того, что в системном хранилище Windows нарушена цепочка доверия. Выясним, как это исправить:

Проверим наличие актуальных корневых сертификатов УЦ и самого ведомства. Для этого выполним следующие шаги:

  1. Установим корневой и промежуточный сертификаты вашего УЦ (например, СКБ Контур) в хранилище «Доверенные корневые центры сертификации».
  2. Скачаем с официального сайта СФР (бывший ФСС) актуальные сертификаты самого фонда для шифрования и подписи.
  3. В 1С перейдем в раздел «Настройки электронной подписи и шифрования».
  4. На закладке «Программы» проверим настройки криптопровайдера (Crypto-Pro или ViPNet). Попробуем снять флаг «Проверять состав и подписи в цепочке сертификатов», если данная опция доступна в вашей версии конфигурации.

Важный момент: С 2012 года используется новый ГОСТ. Убедитесь, что ваш криптопровайдер обновлен до версии, поддерживающей ГОСТ Р 34.10-2012.

Способ 3. Техническое решение: модификация программного кода (для программистов)

Если ваша организация использует доработанную (снятую с поддержки) конфигурацию или вы готовы к внесению изменений в расширение, можно деактивировать проверку «авторизации» УЦ. Рассмотрим, как это реализовано в ЗУП 2.5 КОРП и подобных решениях.

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

Пример логики, которую необходимо найти и скорректировать в коде:


// В процедурах отправки или подготовки данных ищем вызов проверки сертификата
Если НЕ УдостоверяющийЦентрАвторизован(Сертификат) Тогда
    // Программа выдает исключение
    // ВызватьИсключение ТекстОшибки; 
    
    // Для обхода проверки можно закомментировать ВызватьИсключение
    // или принудительно возвращать Истина в функции проверки.
КонецЕсли;

Рассмотрим вариант использования расширения для ЗУП 3.1. Мы можем переопределить функцию, отвечающую за валидацию издателя сертификата. Нам нужно найти метод, возвращающий список доверенных УЦ, и добавить туда ваш центр или вовсе пропустить проверку.

Внимание: При обновлении конфигурации данные модули могут быть перезаписаны, поэтому использование Расширений является предпочтительным методом.

Способ 4. Использование СЭДО (Социальный электронный документооборот)

В современных релизах ЗУП 3.1 взаимодействие идет через механизм СЭДО. Выясним одну особенность: СЭДО часто более лоялен к сторонним сертификатам, если правильно настроена «Учетная запись документооборота».

  1. Создайте учетную запись документооборота (даже если не подключена 1С-Отчетность).
  2. В карточке организации выберите «Электронный документооборот с ФСС».
  3. Укажите сертификат организации, выданный любым аккредитованным УЦ.
  4. Если при попытке обмена возникает реклама «1С-Отчетности», попробуйте закрыть её и проверить, заполнились ли данные. В некоторых случаях (как отмечалось в Сообщении 1), данные все равно приходят в фоновом режиме, но визуализация гиперссылок блокируется интерфейсом.

Резюме

Подведем итоги нашего анализа. Ошибка авторизации УЦ — это программное ограничение, накладываемое вендором. Для его решения у вас есть три пути:

  1. Бесплатный и простой: Использовать 1С только для подготовки данных, а отправку осуществлять через Контур/СБИС.
  2. Технический: Внести изменения в код 1С через расширение, чтобы игнорировать результаты проверки авторизации УЦ. Это требует навыков программирования и понимания структуры ОбщегоМодуля.
  3. Финансовый: Подключить сервис «1С-Отчетность», что автоматически снимет все вопросы по авторизации сертификатов, так как они будут выданы доверенным партнером 1С.

Выбор метода зависит от ваших ресурсов и критичности автоматизации процесса обмена ЭЛН непосредственно из интерфейса 1С.

← На главную