Alteração de parâmetro no Windows
A partir das versões 5.8.7.56 e 5.8.8.24 do Gestão Empresarial | ERP e a versão 5.8.8.22 do eDocs, o ID das NFS-es, gerado nas tags <LoteRps> e <InfRps> é iniciado pelo valor ID.
Esta alteração foi realizada, pois após a atualização dos métodos de segurança do .NET Framework, ao emitir uma NFS-e, ela permanecia com o status de Validada ou Falha no eDocs e no log era gerado o seguinte registro: ERROR Senior.SapiensNfe.Processos.Service.Nfse.<Método_Utilizado_dependendo_do_Fornecedor> - Erro em EnviarLoteRpsEnvio System.Security.Cryptography.CryptographicException: Elemento Reference mal formado.
Observação
A mensagem de erro poderá variar de acordo com o ambiente onde o sistema estiver instalado, sendo, por exemplo, apresentada em inglês.
Se mesmo após a atualização dessas versões a validação do ID não funcione, é necessário adicionar uma chave no registro do Windows, desativando a validação do ID por parte do .NET. Abaixo segue o passo-a-passo para efetuar este procedimento, de acordo com a versão do .Net utilizada:
Se a versão do .Net instalada e do Windows for 32bits:
- Execute o aplicativo Regedit.exe do Windows com usuário Administrador do sistema no servidor onde o serviço do DE está instalado;
- Localize a chave HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft >.NETFramework > Security;
- Clique com o botão direito do mouse no registro Security, selecione a opção Novo e Valor DWORD (32Bits);
- Insira um novo valor com o nome SignedXmlRequireNCNameIdentifier;
- Clique com o botão direito do mouse no registro criado e selecione a opção Modificar;
- Na tela Editar Valor DWORD (32 bits), informe no campo Dados do valor o valor 0 e o campo Base deverá ficar definido como Hexadecimal;
- Após ter sido inserido o valor no local indicado, é necessário reiniciar o serviço do DE e reprocessar eventuais registros que foram marcados como Falha.
Se a versão do .Net instalada e do Windows for 64bits:
- Execute o aplicativo Regedit.exe do Windows com usuário Administrador do sistema no servidor onde o serviço do DE está instalado;
- Localize a chave HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft >.NETFramework > Security;
- Clique com o botão direito do mouse no registro Security, selecione a opção Novo e Valor QWORD (64Bits);
- Insira um novo valor com o nome SignedXmlRequireNCNameIdentifier;
- Clique com o botão direito do mouse no registro criado e selecione a opção Modificar;
- Na tela Editar Valor QWORD (64 bits), informe no campo Dados do valor o valor 0 e o campo Base deverá ficar definido como Hexadecimal;
- Após ter sido inserido o valor no local indicado, é necessário reiniciar o serviço do DE e reprocessar eventuais registros que foram marcados como Falha.
Se a versão do .Net instalada for 32bits e a versão do Windows for 64Bits:
- Execute o aplicativo Regedit.exe do Windows com usuário Administrador do sistema no servidor onde o serviço do DE está instalado;
- Localize a chave HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Wow6432Node > .NETFramework > Security;
- Clique com o botão direito do mouse no registro Security, selecione a opção Novo e Valor DWORD (32Bits);
- Insira um novo valor com o nome SignedXmlRequireNCNameIdentifier;
- Clique com o botão direito do mouse no registro criado e selecione a opção Modificar;
- Na tela Editar Valor DWORD (32 bits), informe no campo Dados do valor o valor 0 e o campo Base deverá ficar definido como Hexadecimal;
- Após ter sido inserido o valor no local indicado, é necessário reiniciar o serviço do DE e reprocessar eventuais registros que foram marcados como Falha.