Не удалось подписать в формате xmldsig 1с отчетность

Обновлено: 07.07.2024

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

Прочитав статью, вы:

  • Получите важную информацию на 2019 год от оператора 1С-Отчетность Калуга Астрал .
  • Узнаете, какие ошибки возникают при обмене электронного документооборота.
  • Изучите рекомендации по исправлению ошибок, полученных при попытке расшифровать файл. Это самая распространенная ошибка в 1С-Отчетности .

Ошибка расшифровки файла

Список возможных ошибок 1С-Отчетности можно посмотреть здесь. PDF

  • Не расшифровано.
  • Не найден сертификат. Ошибка расшифровки файла документа при распаковке пакета.

22 ноября 2018 года оператор 1С-Отчетности распространил следующую информацию для партнеров 1С и пользователей, сдающих отчетность в ПФР Москвы и Московской области.

Если вы сдаете отчетность в ПФР Москвы и Московской области, то вы гарантированно получите указанную ошибку.


Возникновение ошибок

Использование криптопровайдеров ниже версий VipNet 4.2 или КриптоПро CSP 4.0 повлечет возникновение ошибок при обработке документов на стороне ПФР.

Обновление криптопровайдеров

Для исключения технических проблем при работе с ПФР, необходимо обновить криптопровайдеры до версий: VipNet 4.2 или КриптоПро CSP 4.0 и выше.

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

Шаг 1. Откройте криптопровайдер, щелкнув мышкой по иконке VipNet СSP .


Шаг 2. Проверьте версию криптопровайдера VipNet в нижнем левом углу открывшейся формы.


Шаг 3. Обновите версию криптопровайдера по инструкции оператора Калуга Астрал, если:

  • сдаете отчетность в ПФР Москвы и Московской области;
  • версия вашего криптопровайдера VipNet ниже 4.2.


Другие причины возникновения ошибок

Проверка версии криптопровайдера


Обновление 1С

Второе не менее важное правило: перед глубоким погружением в проблему выполните две несложных проверки в1С:

  • проверьте на актуальность релиз вашей 1С;
  • уточните права пользователя, отправляющего отчетность.

Отправка отчетности всегда должна выполняться на актуальной версии 1С. Проверьте текущий релиз вашей программы на сайте поддержки пользователей и обновите конфигурацию, если установленный релиз вашей программы не актуальный.

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

Права пользователя, отправляющего отчетность

Пользователи, работающие с 1С-Отчетность , должны иметь права:

  • Право на защищенный документооборот с контролирующими органами;
  • Полные права.

Если с отчетностью работает пользователь не с полными правами, ему необходимо добавить право на защищенный документооборот, например, в Конфигураторе : меню Администрирование — Пользователи на вкладке Прочее .


Если работать с отчетностью стал новый пользователь и у него стала выходить ошибка, а у прежнего пользователя все было нормально — дело, скорее всего. в правах нового пользователя.

Если проверки выполнены, а ошибка осталась — переходите к поиску решения проблемы с помощью:

  • технической поддержки Калуга-Астрал;
  • самостоятельной настройки криптографии.

Техническая поддержка Калуга-Астрал

Корректность шифровки передаваемого файла сначала проверяет оператор, т.е. компания Калуга-Астрал, после успешной проверки оператором файлы отсылаются непосредственному адресату получения, например, в ПФР.

При возникновении проблем с передачей отчетности, в том числе по расшифровке переданного файла, можно перезвонить непосредственно оператору Калуга-Астрал и попросить помощи:

Техническая поддержка компании работает круглосуточно и успешно устраняет проблемы, связанные с передачей файлов по сервису 1 С-Отчетность , удаленно подключаясь к компьютеру пользователя.

Дозвониться до оператора совсем несложно, в отличие от горячей линии 1С, и работа по решению проблем оператором выполняется без задержек — в момент обращения.

Обратиться в техподдержку Калуга-Астрал один из самых простых вариантов решить проблемы. Работа выполняется профессионально и бесплатно в рамках приобретенного сервиса 1С:Отчетность .

На сайте оператора собраны все возможные ошибки и пути их устранения. Это настоящая библиотека «скорой помощи» пользователю. Мы очень рекомендуем в нее заглядывать:

Настройка криптографии

Поскольку проблема носит чисто технический характер и может быть вызвана множеством причин, рассмотреть которые в одной статье очень сложно, мы дадим в этой части статьи:

  • свои экспертные рекомендации, которые помогали нам решить проблему у наших клиентов;
  • общий список рекомендации 1С, включающий работу с ОС и 1С одновременно.

Рекомендации Бухэксперт8

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

Как зайти в настройки учетной записи документооборота?

В разных конфигурациях откройте вкладку Список заявлений : справочник Организации — ЭДО — Список заявлений .


Откройте список заявлений и проверьте, чтобы не было «красноты».


Перейдите на вкладку Служебная информация , откройте графу Учетная запись — результат и выполните команду Открыть (щелкнув мышкой по двум квадратикам).


В открывшемся окне можно:

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


После выполнения каждой инструкции нажимайте кнопки Обменяться и Расшифровать . Проблема может решиться после любого выполненного шага.

Если предложенные шаги не привели к решению проблемы — переустановите криптопровайдер.

Полный список рекомендаций 1С

Полный список рекомендаций 1С для устранения ошибки в операционной системе:

  • Повторно выполнить настройку криптографии на компьютере.
  • Переустановить личный сертификат.
  • Провести тестирование контейнера закрытого ключа, связанного с сертификатом.
  • Сбросить пароль на контейнер закрытого ключа.
  • Повторно перенести контейнер закрытого ключа в реестр при необходимости.

Действия по исправлению ошибки в 1С:

  • Пометить на удаление имя сертификата ЭЦП, и поставив префикс Не использовать , чтобы не спутать с новым элементом справочника.
  • Добавить сертификат из хранилища сертификатов, для которого была проведена повторная установка.
  • Провести Тест настроек сертификата .
  • Указать новый элемент справочника Сертификаты ЭЦП в Соглашении.
  • Провести Тест настроек соглашения .

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Похожие публикации

    Контроль дебиторской и кредиторской задолженности — одно из важных направлений..Иногда при работе с программой 1С может возникнуть ошибка СУБД.Для передачи покупателям счетов-фактур в формате ЭДО типовыми средствами 1С.

Карточка публикации

Данную публикацию можно обсудить в комментариях ниже.
Обратите внимание! В комментариях наши кураторы не отвечают на вопросы по программам 1С и законодательству.
Задать вопрос нашим специалистам можно по ссылке >>

Все комментарии (1)

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

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявку

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Содержание

Вы можете задать еще вопросов

Доступ к форме "Задать вопрос" возможен только при оформлении полной подписки на БухЭксперт8

Вы можете оформить заявку от имени Юр. или Физ. лица Оформить заявку

Нажимая кнопку "Задать вопрос", я соглашаюсь с
регламентом БухЭксперт8.ру >>

Добрый день! Пытаюсь подписать xml-файл созданным сертификатом, но никак не получается. Порядок действий был такой:

1. Выпустил собственный сертификат командой в PowerShell:


2. Скопировал в папку "Доверенные корневые центры сертификации" -> "Сертификаты"
3. В отладчике, в списке, полученном от МенеджерКриптографии нашел свой сертификат
4. Выбрав свой сертфикат, при попытке Подписать() получаю ошибку типа:
Сертификат, связанный с закрытым ключом, указывает на модуль криптографии, отличный от текущего.
Сертификат связан с модулем криптографии "Microsoft Software Key Storage Provider" с типом 0.

Код получения сертификатов и подписи с ИТС

Что делаю не правильно?


(1)
Мда. RTFM.
С чего вы вообще решили, что МенеджерКриптографии.Подписать выдаст вам подпись в формате xmldsig?
Это так не работает. Вот вообще.

Да собственно, все делаете не правильно.
Платформа не умеет подписывать в формате xmldsig.
Но в БСП есть внешняя компонента, которая умеет.

(4) собственно по этому и спрашиваю, что мат. часть по этому вопросу со стороны 1с освещена слабо, а пример с ИТС получается вообще не к этому относится.
Можете ссылку на описание ВК? Или хотя бы ее наименование?

(1)По поводу ошибки при подписи.

При таком создании сертификата провайдер может быть разный, его надо указать явно.

Specifies the name of the KSP or CSP that this cmdlet uses to create the certificate. See Cryptographic Providers for more information. Some acceptable values include:

Microsoft Software Key Storage Provider
Microsoft Smart Card Key Storage Provider
Microsoft Platform Crypto Provider
Microsoft Strong Cryptographic Provider
Microsoft Enhanced Cryptographic Provider v1.0
Microsoft Enhanced RSA and AES Cryptographic Provider
Microsoft Base Cryptographic Provider v1.0
The name of a third party KSP or CSP

У вас создался сертификат с провайдером Microsoft Software Key Storage Provider, а вы создаете менеджер криптографии для провайдера Microsoft Enhanced Cryptographic Provider v1.0, поэтому и ошибка.

(5) исходя из (4) текущему коду это исправление не поможет, верно?

(7)Да, так вы не подпишите.

Возьмите демо базу БСП и попробуйте в ней реализовать подпись, используя процедуры и функции общих модулей БСП.

(8) спасибо, буду пробовать. Видел этот метод в конфе, но не смог подумать, что он мне подойдёт. (8) попробовал, проблема с сертификатами.
Вопрос - делали ли уже такую процедуру сами? Если да, то сертификат самовыпущенный? Если да, то как его создавали? (10)Как-то пробовал, в тот раз не разобрался что передать, чтобы заработало. Больше не пробовал.
Но то что оно работает у других, это точно.
У меня есть сертификат крипто-про.
Самовыпущенные сертификаты не использовал. (12)пробовал , не получается, ошибки те же, т.к. код По сути тот же что и на итс

Значит, скорее всего, дело в сертификате - чем-то он не соответствует криптопровайдеру, о чем честно говорится в ошибке

(14) спасибо за ссылку, буду пробовать, обязательно отпишусь по результату

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

но не могу допереть, как "Установить закрытый ключ" - во всех примерах там КриптоПро и VIPnet, все возможные действия для стандартной оснастки certmgr уже выполнил (добавил в доверенные, в личные, экспортировал и импортировал в локальный компьютер и личную учетную запись).

как "Установить закрытый ключ" - во всех примерах там КриптоПро и VIPnet 6. Для использования данного сертификата необходимо будет выдать права на закрытый ключ. (23) сходил, добавил для сертификата права всем пользователям - ничего не изменилось, та же ошибка ( В том числе и USR1CV8, или как там у вас называется пользователь, от имени которого запускается 1С?
А что показывает certmgr.msc в свойствах этого сертификата? Есть для него закрытый ключ или нет?

(25) да, для usr1cv8 тоже.

В свойствах закрытого ключа не нашёл - по картинками должен быть ключик на главной странице свойств и надпись. Но его нет (

Тогда результат из (22) закономерен - система не видит закрытого ключа и поэтому 1С никак не сможет ним работать.

Как минимум надо добиться, чтобы сертификат был связан с закрытым ключом. а потом, не исключено, снова вылезет ошибка из (1).

(27) не могу понять, как связать сертификат с закрытым ключом, и где его взять? (22) Картинка "на клиентском компьютере". Так Вы где подпись собираетесь ставить, &НаКлиенте или &НаСервере? (29) собираюсь на сервере, а картинка в рдп сеансе под админом (30) 1) Команда PowerShell добавит самоподписанный с закрытым ключом в личное текущего пользователя ОС - в хранилище админа.
New-SelfSignedCertificate -DnsName "www.mytest.com", "www.whatsthis.com" -Provider "Microsoft Enhanced Cryptographic Provider v1.0" -CertStoreLocation "cert:\CurrentUser\My"
2) Далее его нужно экспортировать с закрытым ключом. Win+R certmgr.msc
3) Потом certmgr.msc нужно запустить под тем пользователем, под которым сервер 1С работает как служба (например USR1CV8), и в личное хранилище этого юзера импортировать файл из шага-2 (30) У меня после того, как сертификат с закрытым ключом появился в личном хранилище сертификатов у пользователя USR1CV8 - начинает работать следующий код:

(22) Если Вы генерировали сертификат по инструкции через certreq.exe -new template.txt outcert.cer - то он должен появиться в остнастке

Win+R
mmc
Ctrl+M
Сертификаты
Учетной записи компьютера

Экспортируем из остнастки этот сертификат с закрытым ключом в файл (название файла задаем, чтобы не перепутать с outcert.cer, т.к. outcert.cer это просто открытый сертификат без закрытого ключа), закрываем консоль. Открываем консоль снова под пользователем USR1CV8 (можно создать ярлык на рабочем столе certmgr.msc и запускать его от имени пользователя USR1CV8) В консоли импортируем файл с закрытым ключом в личное хранилище пользователя USR1CV8.

После всего этого МенеджерКриптографии.Подписать - сможет подписать данным ключом &НаСервере.

Отмечу несколько особенностей формата XMLDSig:

2. Различные части XML-документа могут быть подписаны несколькими исполнителями.

3. XML-подпись может находиться на разных уровнях по отношению к подписываемому объекту:

  • в структуре подписи может находиться URI (унифицированный идентификатор ресурса);
  • XML-подпись может находиться на одном уровне с подписываемым узлом;
  • XML-подпись может находиться внутри подписываемого узла;
  • подписываемый узел может находиться внутри структуры XML-подписи.

4. Для проверки действительности ЭП необходим доступ к объекту подписания.

Структура SOAP-коверта


Криптографические алгоритмы и каноникализация.

Для решения задачи были использованы ГОСТ Р 34.11-94 — российский криптографический стандарт вычисления хеш-функции и ГОСТ Р 34.10-2001 - стандарт электронной подписи.

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

С логической точки зрения они равнозначны, то есть имеют одинаковую XML-схему. Но XML-файлы этих листингов не содержат одну и ту же последовательность символов, что повлечёт разные результаты, например, при получении значения хэша.

Библиотека SIRCrypt

Для реализации подписания XML в DIRECTUM была написана COM-библиотека, внутри которорй описаны 3 класса: Hasher, Signer и XMLCanonicalizer для получения хэша, значения ЭП и каноникализации XML-документов соответственно.

> regasm.exe "путь к dll" /codebase /tlb

Объект Hasher для вычисления хэша по ГОСТ

Содержит поля Content (тип 'строка') и HashValueAsBase64 (тип 'строка'), а также метод для вычисления значения хэш-функции Hash(). Для вычисления необходимо означить Content, вызвать метод Hash(), в результате которого в поле HashValueAsBase64 запишется значение хэш-функции в Base64.

Объект Signer для получения значения ЭП по ГОСТ

Содержит поля Content (тип 'строка'), ContainerName (тип 'строка'), CertificateAsPEM (тип 'строка'), BESignatureValueAsBase64 (тип 'строка'), метод Sign(). После инициализации объекта необходимо означить Content (данные для подписания), ContainerName (имя контейнера закрытого ключа сертификата), вызвать метод Sign(). После чего в поле CertificateAsPEM попадёт соответствующий закрытому ключу сертификат в Base64, а в поле BESignatureValueAsBase64 значение подписи в виде Base64-строки.

Объект XMLCanonicalizer для каноникализации XML

Содержит поля XMLContent (тип 'строка'), CanonicalXML (тип 'строка'), метод C14NExc(). Для получения канонической формы XML нужно означить XMLContent, вызвать C14NExc(), получить результат из поля CanonicalXML.

Структура XML-подписи


Создание подписи выглядит следующим образом: сначала формируется основа soap-пакета, узлы Header и Body. Body заполняется данными и добавляется атрибут wsu:ID="Body" - идентификатор подписываемых данных.

Далее нужно подготовить структуру Security и включить её в Header.

Заполнение структуры Security происходит в следующем порядке:

  1. Берётся значение хэш-функции от узла Body в каноническом виде и помещается в узел DigestValue.
  2. Узел SignedInfo приводится к каноническому виду, подписывается ЭП. Результат в формате Base64-строки попадает в узел SignatureValue.
  3. Открытый ключ сертификата, которым было выполнено подписание помещается в узел BinarySecurityToken в формате строки Base64.

Для того, чтобы проверить сформированную таким образом ЭП необходимо проделать все действия в обратном порядке, а именно:

  1. получить каноническую форму элемента SignedInfo.
  2. С использованием резльтата предыдущего шага проверить, действительно ли значение ЭП из узла SignatureValue с помощью открытого ключа сертификата. На данном этапе проверяется только корректность ЭП, что не гарантирует неизменность данных.
  3. Если проверка действительности ЭП пройдена успешно, сравнивается хэш из узла DigestValue и хэш от узла с данными. Если они неравны, то подписанные данные изменены и вся ЭП недействительна.

Пример использования

Пакет разработки и библиотека

Примеры подписания XML на ISBL (сценарий): dev.zip (5,95 Кб)

Для постоянного использования код, выполняющий типовое подписание готового SOAP-конверта, вынесен в функцию SignSOAP().

Для подписания используется сертификат из личного хранилища сертификатов текущего пользователя.

Cертификат для тесподписания можно получить на тестовом центре сертификации КриптоПРО.

1. Проверка наличия установленной программы для работы с криптографией (КриптоПРО, VipNet CSP) на компьютере.
2. Проверка настроек электронной подписи и шифрования в 1С.

Первым делом проверим настройки программ шифрования в 1С.

Раздел «Администрирование» - «Обмен электронными документами».


Администрирование - Обмен электронными документами

Далее «Настройки электронной подписи и шифрования».

Обмен электронными документами

Вкладка «Программы».

Настройки электронной подписи и шифрования - Программы


Проверить наличие строки с установленной программой для работы с электронной подписью (КриптоПРО, VipNet CSP). При необходимости добавить нужную программу, нажав соответствующую кнопку (если эта программа действительна установлена на данном компьютере).

Программа электронной подписи и шифрование(создание)


Далее проверим настройки электронной подписи в 1С.

Раздел «Администрирование» - «Обмен электронными документами».

Администрирование - Обмен электронными документами

Далее «Настройки электронной подписи и шифрования».

Обмен электронными документами

Вкладка «Сертификаты».


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

Проверка сертификата


Если нужного сертификата нет в списке, необходимо его добавить, для этого делаем следуещее.

Нажать «Добавить» далее «Из установленных на компьютере».

Сертификаты - Из установленных на компьютере


В появившемся окне выбрать нужный действующий сертификат.

Добавление сертификата для подписания данных


Затем ввести пароль (иногда пароль пустой) от сертификата и нажать «Добавить».

Добавление сертификата для подписания данных - Добавить


Если напротив строчек отобразились зеленые галочки - все в порядке, в ином случае проверить установлена ли цепочка доверенных сертификатов.

Проверка сертификата

3. Проверка настроек профиля ЭДО

В разделе «Администрирование» - «Обмен с контрагентами».

Администрирование - Обмен с контрагентами


Далее «Профили настроек ЭДО» выбрать свой профиль и дважды щелкнуть по нему для изменения.

Профили настроек ЭДО


и перейти в открывшемся окне на вкладку «Сертификаты организации».

Через оператора ЭДО


Проверить наличие действующего сертификата. Если указан старый сертификат, и Вы уверены, что у Вас есть новый действующий сертификат, то его необходимо добавить.

Настройки ЭДО - Добавить


Операция добавления сертификата

Сертификаты ключей электронной подписи и шифрования

При продлении или замене сертификата для 1С:Отчетности, и при его использовании в качестве сертификата для ЭДО, он не добавляется автоматически, это необходимо сделать вручную.


Также необходимо выполнить тест настроек, нажав кнопку «Тест профиля настроек».

Тест профиля настроек


Далее вводим пароль от ЭЦП (иногда пароль пустой, либо стандартный: 123456, или 12345678) и нажимаем «ОК».

Тест аутентификации


После чего внизу, либо во всплывающем окне отобразится следующее.

Если тест прошел неудачно, необходимо проверить наличие сертификата в личном хранилище сертификатов пользователя и установленную цепочку доверенных корневых сертификатов.

Маршруты подписания профиля ЭДО (актуально для ЖКХ 3.1)

В разделе «Администрирование» - «Обмен с контрагентами».

Администрирование - Обмен с контрагентами


Далее «Профили настроек ЭДО».

Администрирование - Обмен электронными документами - Профили настроек ЭДО


Выбрать свой профиль и перейти в открывшемся окне на вкладку «Виды электронных документов».

Виды электронных документов


Проверить на отсутствие устаревших форматов электронных документов. Настроить актуальные форматы.
Проверить маршруты подписания. В табличной части в столбце «Регламент ЭДО» по очереди щелкнуть по «Подпись (маршрут: Одной доступной подписью)».


Изменение профиля настроек ЭДО - Продолжить


Откроется окно «Настройка регламента ЭДО». В нем выбрать маршрут, нажав на «. ».


Настройка регламента ЭДО


Откроется окно с маршрутами подписания (обычно там прописан 1 маршрут).

Маршруты подписания

Если в открывшемся окне «Маршруты подписания» отсутствует строка «Одной доступной подписью», необходимо с помощью обработки ( с качать ) добавить маршрут подписания .

Читайте также: