Ir para conteúdo
  • Cadastre-se

dev botao

Erro Ao Gerar Nfs-E Em Contagem


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 3878 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Ao enviar o nfse é retornado o seguinte erro:

 

'Element '{http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd}ValorIssRetido' is unexpected according to content model of parent element '{http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd}Valores'.'#$D#$A'Expecting: {http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd}DescontoIncondicionado, {http://www.abrasf.org.br/ABRASF/arquivos/nfse.xs....'#$D#$A

 

 

Em anexo o xml enviado com erro, começou a ocorrer o erro depois das 14 horas de hoje.

 

Grato,

Diego Gonçalves.

Envia XML NFSE.xml

  • Respostas 57
  • Created
  • Última resposta

Top Posters In This Topic

  • Consultores
Postado

Bom dia Diego,

 

Durante esses últimos dias o componente sofreu varias alterações, como inclusão de novas cidades, entre outras.

 

No seu caso fiz uma alteração que visa resolver o problema ocorrido.

 

Favor atualizar os fontes e testar novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Boa tarde Italo,

 

Peguei a versão mais recente do ACBR, porém o erro persiste.

 

Ele ocorre na classe AcbrNFSEWebServices.DoNFSeEnviarLoteRPS. no seguinte ponto do código.

 

 // Sugestão de Rodrigo Cantelli
 if FProvedorClass.GetValidarLote
  then begin
   if not(NotaUtil.Valida(FDadosMsg, FMsg,
                          FConfiguracoes.Geral.PathSchemas,
                          FConfiguracoes.WebServices.URL,
                          FConfiguracoes.WebServices.ServicoEnviar,
                          FConfiguracoes.WebServices.Prefixo4))
    then raise Exception.Create('Falha na validação do Lote ' +
                   TNFSeEnviarLoteRps(Self).NumeroLote + sLineBreak + FMsg);

 

Variavel FMsg está com o retorno:

 

"'Element '{http://www.ginfes.com.br/tipos_v03.xsd}ValorIssRetido' is unexpected according to content model of parent element '{http://www.ginfes.com.br/tipos_v03.xsd}Valores'.'#$D#$A'Expecting: {http://www.ginfes.com.br/tipos_v03.xsd}DescontoIncondicionado, {http://www.ginfes.com.br/tipos_v03.xsd}DescontoCondicionado.'#$D#$A".

 

O fonte atualizado esta no Trunk ou devo baixa-lo no Branches?

 

Em anexo o xml do envio. "Nesse caso a nota é gerada em guarulhos (Ginfes) e o serviço é executado em São Paulo."

Esse mesmo erro ocorria na nota de contagem que foi a primeira anexada no tópico.

 

Grato desde já,

 

Diego Gonçalves.

envnfse_79_3180.xml

Postado

Italo boa tarde,

  estou realizando testes no NFS-e para Contagem e Guarulhos, o xml que não estava conseguindo enviar enviou, estou tendo outros erros que estou dando uma estudada melhor, caso as alterações que estou fazendo solucionem o mesmo postarei aqui.

 

Desde já agradeço.

 

Diego Gonçalves

Postado

Italo boa tarde,

 

Estou testando para contagem, com NFSe fora do município (Município de Canoas RS)

 

Dentro da uses AcbrNFSeUtil contém a function AssinarMSXML.

 

Dentro da mesma no começo da função tem a seguinte linha de código.

 

 if ALote
  then begin
   I := pos(EnviarLoteRps +' xmlns=', AXML);
   if I = 0
    then NameSpaceLote := ''
    else begin
//     I := I + {25} Length(EnviarLoteRps);  --Essa linha estava com erro
     I := I + {25} Length(EnviarLoteRps +' xmlns='); //Diego Gonçalves -- Correção pois estava duplicando o campo xmlns
     J := pos('>', AXML);
     NameSpaceLote := ' xmlns:ds1=' + Copy(AXML, I, J - I);
    end;

 

eu fiz a alteração no valor de I pois o mesmo estava duplicando a informação xmlns=, depois de realizado a troca do valor da variável I o sistema que antes não passa da linha:

 

 xmldoc.setProperty('SelectionNamespaces', DSIGNS + NameSpaceLote);

 

Agora começou a passar deste ponto, porém logo em seguida o sistema emite o seguinte erro:

 

Código Erro : E160
Mensagem... : Linha: 1 - Coluna: 699 - O elemento 'Valores' tem um elemento filho invalido 'ValorIssRetido'. Lista de possiveis elementos: 'OutrasRetencoes, BaseCalculo, Aliquota'.
Correção... : Envie um arquivo dentro do schema do arquivo XML de entrada.
Provedor... : GovBR
 
Observando no schema da prefeitura que a Tag ValorIssRetido existe.
 
Na versão antiga do acbr o sistema consegue emitir a nota.
 
Agradeço desde já,
 
Diego Gonçalves 
  • Consultores
Postado

Boa tarde Diego,

 

Já encontra-se disponivel a alteração que você sugeriu.

 

Agora quanto a rejeição pelo fato do XML esta errado, favor verificar se você esta utilizando o schema correto, pois no que diz respeito ao grupo valores os elementos estão sendo gerados na sequencia que consta no schema.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Consultores
Postado

Boa tarde Diego,

 

Se compararmos o XML gerado com o schema, não vejo erro nenhum, os elementos filhos de <Valores> estão sendo gerados  na mesma ordem que consta no schema.

 

Vamos inicialmente interpretar a mensagem de erro:

 

<Mensagem>Linha: 1 - Coluna: 642 - O elemento 'Valores' tem um elemento filho invalido 'ValorIssRetido'. Lista de possiveis elementos: 'OutrasRetencoes, BaseCalculo, Aliquota'.</Mensagem>

 

 

A mensagem dis que o elemento filho "ValorIssRetido" é inválido e apresenta uma lista de possíveis elementos, concluimos que o elemento "ValorIssRetido" não deveria estar presente ou devira estar em outra posição dentro do elemento pai: "Valores".

 

Vamos então a algumas suposições:

 

1. O schema que estamos utilizando esta errado.

2. O webservice interpreta o "1" de IssRetido como NÃO em vez de SIM, neste caso o elemento "ValorIssRetido" não deveria aparecer.

3. O webservice não esta obdecendo a ordem dos elementos dentro do grupo "Valores" dai o erro.

 

O que fazer:

 

1. informar NÃO para IssRetido e não informar o valor para ValorIssRetido.

2. informar NÃO para IssRetido e informar o valor de ValorIssRetido.

3. Entrar em contato com o provedor e solicitar o schema correto.

 

Diego, notei que você faz referencia a Canoas/RS, e mostra uma mensagem de erro do provedor GovBR, mas pelo que me consta o provedor dessa cidade é Ábaco.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado (editado)

Italo, 

  Estou vendo com a prefeitura a questão do schema para pegar a versão deles, quanto a referencia de Canoas/RS é pelo fato da nota ser faturada(gerada) aqui em contagem para um serviço realizado em CANOAS/RS (Tributação fora do município). Quando envio notas dentro do próprio município o erro não ocorre.

 

Em Guarulhos realizo o mesmo teste (tanto dentro quanto fora do município e a nota é emitida). Levando a crer que o problema seja somente em contagem, assim que conseguir mais informações posto aqui.

 

Além de contagem, guarulhos estou testando também notas para prefeitura de Betim(provedor Betim) nesse caso não estou conseguindo enviar a nota. Emitindo o seguinte erro:

 

          glCRxwVkZk3tNkZUXQOXapth7HkgS3QgcUD8O4VVFacL9ZZcGBeIC687LFyJ/2V3NAhK2U4T
          bOfpPnt80cuNcprscHyhznCc7opuOcu9bG7AeefBaZ7NVwbo1QrolwJq5uty
        </X509Certificate>
      </X509Data>
    </KeyInfo></Signature></EnviarLoteRpsEnvio> - URL:https://betim.rps.com.br/sgm/zend/nfs/nfs - SOAPAction:https://betim.rps.com.br/sgm/zend/nfs/nfs#RecepcionarLoteRps
 
O erro ocorre dentro da biblioteca AcbrNFSEWebServices, na função function Executar: Boolean; override;
 
  try
    {$IFDEF ACBrNFSeOpenSSL}
      HTTP.Document.LoadFromStream(Stream);
      ConfiguraHTTP(HTTP, 'SOAPAction: "'+ FProvedorClass.GetSoapAction(acRecepcionar, FNomeCidade) +'"');
      HTTP.HTTPMethod('POST', FURL);
 
      StrStream := TStringStream.Create('');
      StrStream.CopyFrom(HTTP.Document, 0);
 
      FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
      FRetWS     := FProvedorClass.GetRetornoWS(acRecepcionar, FRetornoWS);
 
      StrStream.Free;
    {$ELSE}
      ReqResp.Execute(Acao.Text, Stream);  o erro retorna aqui (quando é executado essa linha ele cai na exceção).
      StrStream := TStringStream.Create('');
      StrStream.CopyFrom(Stream, 0);
 
      FRetornoWS := TiraAcentos(ParseText(StrStream.DataString, True));
      FRetWS     := FProvedorClass.GetRetornoWS(acRecepcionar, FRetornoWS);
 
      StrStream.Free;
    {$ENDIF}
 
 
  //
  // Alterado por Luis Fernando Vilela em 15/02/2013
  //
  // para capturar erro de conexao  --Essa exceção que é executada.
  except
on E: Exception do
begin
     Result := False;
     if Assigned(TACBrNFSe( FACBrNFSe ).OnGerarLog) then
        TACBrNFSe( FACBrNFSe ).OnGerarLog(E.Message);
     if E.Message<>''
      then raise Exception.Create(E.Message)
      else raise Exception.Create('Erro Desconhecido!');
end;

 

Verifiquei que em betim o certificado é baixado no site da prefeitura (eles usam certificado próprio), baixando o mesmo o erro continua ocorrendo. Não sei o que posso verificar.
 
Grato,
Diego Gonçalves.
 

 

Editado por Diego Gonçalves
Postado

Outro detalhe na uses AcbrProvedorBetim tem a seguinte função GetSoapAction. Gostaria de saber se ela não teria que contemplar o servidor de produção também visto que está apontando somente para o teste.

 

function TProvedorBetim.GetSoapAction(Acao: TnfseAcao; NomeCidade: String): String;
begin
 case Acao of
 end;
end;
  • 4 semanas depois ...
Postado

Bom dia Italo,

 

 Estou atualizando todos os dias meu ACBR, porém o erro na emissão em contagem persiste.

 

Estou gerando o RPS com as seguintes informações (Tanto pelo meu sistema quanto pelo Demo do ACBR:

 

- A NFSe é lançada em Contagem mas o serviço é realizado em CANOAS/RS.

- O Iss fica retido pelo fato do serviço ser prestado fora do município de Contagem.

- Quando tenho o ISS retido, o webservice da prefeitura emite o seguinte erro:

 

---------------------------
Demo_acbrnfse
---------------------------
"Linha: 1 - Coluna: 624 - O elemento 'Valores' tem um elemento filho invalido 'ValorIssRetido'. Lista de possiveis elementos: 'ValorIss, OutrasRetencoes, BaseCalculo, Aliquota'."
 
- Quando gero NFSe dentro do município, ou seja, sem retenção do ISS o mesmo recepciona a NFSe normalmente.
 
- Com relação a versão mais antiga do ACBR que está inclusive sendo executada em produção ele gera o arquivo do RPS quando é retido de forma diferente do que é gerado hoje pelo ACBR.
 
Vou anexar o modo antigo de envio do arquivo e o novo para que possa ser verificado o real motivo do mesmo não estar enviando.
Percebi que o campo "ValorIssRetido" na versão antiga ficava abaixo da tag "ValorLiquidoNfse", na versão atual o mesmo aparece apos a tag "ValorIss". Outro detalhe que pude perceber é que na verão antiga ele gerava a tag "<EnviarLoteRpsEnvio>" vazia e na versão atual ele adiciona o endereço do schema "<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">".
 
Em anexo um arquivo gerado em uma versão e gerado na outra.
 
Atte,
Diego Gonçalves

XML ACBR.zip

Postado

Bom dia Italo,

 

Realizando testes verifiquei que a variavel que preenche a data de emissão da nfse esta vindo vazia.

 

Dentro da uses: pnfsNFSeW 

Linha: 193.        Gerador.wCampoNFSe(tcDatHor, '#4', 'DataEmissao     ', 19, 19, 1, NFSe.DataEmissao, DSC_DEMI);  //NFSe.DataEmissao = 0 sendo que no xml do rps a data está preenchida.

 

Atte,

Diego Gonçalves

  • Consultores
Postado

Diego,

 

O XML do RPS que você postou não tem a data de emissão, você esta alimentando essa propriedade do componente?

 

E no arquivo NFSE.zip não tem nenhum arquivo XML de NFS-e apenas os arquivos que são gerados antes e depois de assinar o lote, a ser enviado para o webservice.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Da erro antes de enviar o arquivo. Estou alimentando sim, o xml que o sistema gera é o rps_antigo, ao executar o metodo enviar ele gera esse outro arquivo rps sem a data de emissão.

 

   if FProvedorClass.GetValidarLote
    then begin
     if not(NotaUtil.Valida(FDadosMsg, FMsg,
                            FConfiguracoes.Geral.PathSchemas,
                            FConfiguracoes.WebServices.URL,
                            FConfiguracoes.WebServices.ServicoEnviar,
                            FConfiguracoes.WebServices.Prefixo4))
      then raise Exception.Create('Falha na validação do Lote ' +
                     TNFSeEnviarLoteRps(Self).NumeroLote + sLineBreak + FMsg); //nesse ponto ele fala que o campo está vazio. mais não é um retorno do webservice.
Postado

Debugando minha aplicação no quando eu dou o load no meu arquivo xml do rps o campo está com data "Nfse.NotasFiscais.Items[0].NFSe.DataEmissaoRps", agora o campo "Nfse.NotasFiscais.Items[0].NFSe.DataEmissao" está vazio. Isto antes de enviar o lote.

  • Este tópico foi criado há 3878 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.