Ir para conteúdo
  • Cadastre-se

dev botao

Erro Versão 3.10


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

Recommended Posts

  • Moderadores
Postado

Bom dia

Sim veja lá nas regras onde pede pra postar em um local único e aguardar a resposta, sendo que o mesmo post saiu em dois locais em questão de 2 minutos, igualmente!

Bom no post que citei o Italo explica como funciona as duas propriedades !

citando abaixo uma parte do texto:

 

Dica de configuração para que o componente gere o XML no modelo e versão correta:

 

 ACBrNFe.Configuracoes.Geral.ModeloDF := moNFe;
 ACBrNFe.Configuracoes.Geral.VersaoDF := ve200;
 

No exemplo acima o XML a ser gerado vai ser o da NF-e na versão 2.00

 

Valores aceitos pela propriedade ModeloDF: moNFe e moNFCe.

 

Quando o modelo for moNFe, os valores aceitos pela propriedade VersaoDF são: ve200 e ve310.

 

Quando o modelo for moNFCe, os valores aceitos pela propriedade VersaoDF são: ve300 e ve310.

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado (editado)

Ok, Juliomar agradeço pelo sua resposta. Porem se vc observar no codigo abaixo na classe pcnConversao do acbr, variável AVersaoDF não vai consegui setar os valores do ambiente 310, pois ela se modifica em tempo de execução para 200, acredito que o acbr não está usando o codigo da versão da mensagens para ambiente 3.10 ainda não.

 

function GetVersaoNFe(AModeloDF: TpcnModeloDF; AVersaoDF: TpcnVersaoDF; ALayOut: TLayOut): string;
begin
  result := '';
 
  case AModeloDF of
   moNFe:  begin
             case AVersaoDF of
              ve200: begin
                       case ALayOut of
                        LayNfeStatusServico:  result := '2.00';
                        LayNfeRecepcao:       result := '2.00';
                        LayNfeRetRecepcao:    result := '2.00';
                        LayNfeConsulta:       result := '2.01';
                        LayNfeCancelamento:   result := '2.00';
                        LayNfeInutilizacao:   result := '2.00';
                        LayNfeCadastro:       result := '2.00';
                        LayNfeEnvDPEC:        result := '1.01';
                        LayNfeConsultaDPEC:   result := '1.01';
                        LayNFeCCe:            result := '1.00';
                        LayNFeEvento:         result := '1.00';
                        LayNFeConsNFeDest:    result := '1.01';
                        LayNFeDownloadNFe:    result := '1.00';
                        LayNfeAutorizacao:    result := '2.00';
                        LayNfeRetAutorizacao: result := '2.00';
                       end;
                     end;
              ve310: begin
                       case ALayOut of
                        LayNfeStatusServico:  result := '3.10';
                        LayNfeRecepcao:       result := '3.10';
                        LayNfeRetRecepcao:    result := '3.10';
                        LayNfeConsulta:       result := '3.10';
                        LayNfeCancelamento:   result := '3.10';
                        LayNfeInutilizacao:   result := '3.10';
                        LayNfeCadastro:       result := '2.00';
                        LayNfeEnvDPEC:        result := '1.01';
                        LayNfeConsultaDPEC:   result := '1.01';
                        LayNFeCCe:            result := '1.00';
                        LayNFeEvento:         result := '1.00';
                        LayNFeConsNFeDest:    result := '1.01';
                        LayNFeDownloadNFe:    result := '1.00';
                        LayNfeAutorizacao:    result := '3.10';
                        LayNfeRetAutorizacao: result := '3.10';
                       end;
                     end;
             end;
           end;
   moNFCe: begin
             case AVersaoDF of
              ve300: begin
                       case ALayOut of
                        LayNfeStatusServico:  result := '3.00';
                        LayNfeRecepcao:       result := '3.00';
                        LayNfeRetRecepcao:    result := '3.00';
                        LayNfeConsulta:       result := '3.00';
                        LayNfeCancelamento:   result := '3.00';
                        LayNfeInutilizacao:   result := '3.00';
                        LayNfeCadastro:       result := '2.00';
                        LayNfeEnvDPEC:        result := '1.01';
                        LayNfeConsultaDPEC:   result := '1.01';
                        LayNFeCCe:            result := '1.00';
                        LayNFeEvento:         result := '1.00';
                        LayNFeConsNFeDest:    result := '1.01';
                        LayNFeDownloadNFe:    result := '1.00';
                        LayNfeAutorizacao:    result := '3.00';
                        LayNfeRetAutorizacao: result := '3.00';
                       end;
                     end;
              ve310: begin
                       case ALayOut of
                        LayNfeStatusServico:  result := '3.10';
                        LayNfeRecepcao:       result := '3.10';
                        LayNfeRetRecepcao:    result := '3.10';
                        LayNfeConsulta:       result := '3.10';
                        LayNfeCancelamento:   result := '3.10';
                        LayNfeInutilizacao:   result := '3.10';
                        LayNfeCadastro:       result := '2.00';
                        LayNfeEnvDPEC:        result := '1.01';
                        LayNfeConsultaDPEC:   result := '1.01';
                        LayNFeCCe:            result := '1.00';
                        LayNFeEvento:         result := '1.00';
                        LayNFeConsNFeDest:    result := '1.01';
                        LayNFeDownloadNFe:    result := '1.00';
                        LayNfeAutorizacao:    result := '3.10';
                        LayNfeRetAutorizacao: result := '3.10';
                       end;
                     end;
             end;
           end;
  end;
end;
Editado por Fernando Di Pace
  • Consultores
Postado

Bom dia Cesar,

 

O seu fonte esta desatualizado, o que esta disponivel já esta desta forma:

 

  // Alterado por Italo em 13/03/2014
  if ((FConfiguracoes.Geral.ModeloDF = moNFCe) or (FConfiguracoes.Geral.VersaoDF = ve310)) and not
     (FConfiguracoes.WebServices.UFCodigo in [13, 23, 31])  then // AM, CE, MG
   begin
     SoapAction := 'http://www.portalfiscal.inf.br/nfe/wsdl/NfeAutorizacao';
     nfeAutorizacaoLote := True;
   end
  else
   begin
     SoapAction := 'http://www.portalfiscal.inf.br/nfe/wsdl/NfeRecepcao2';
     nfeAutorizacaoLote := False;
   end;
 

Esse fragmento é do ACBrNFeWebServices.pas

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

Bom dia Fernando,

 

Vamos analisar o código do componente:

 

Na unit ACBrNFeConfigurações temos a definição da classe TGeralConf e nela consta as propriedades ModeloDF e VersaoDF:

 

    property ModeloDF: TpcnModeloDF read FModeloDF write SetModeloDF default moNFe;
    property VersaoDF: TpcnVersaoDF read FVersaoDF write SetVersaoDF default ve200;
 

Note que em ambas as propriedades quando realizamos uma escrita (write) é executado uma procedure.

 

procedure TGeralConf.SetModeloDF(AValue: TpcnModeloDF);
begin
  FModeloDF := AValue;
  FModeloDFCodigo := StrToInt(ModeloDFToStr(FModeloDF));

  if FModeloDF = moNFe then
    SetVersaoDF(ve200)
  else
    SetVersaoDF(ve300);
end;

 

Na procedure SetModeloDF realmente, caso seja NF-e a versão é "setada" como 2.00

 

procedure TGeralConf.SetVersaoDF(const Value: TpcnVersaoDF);
begin
  FVersaoDF := Value;
  if (FModeloDF = moNFe) and (FVersaoDF = ve300) then FVersaoDF := ve200;
  if (FModeloDF = moNFCe) and (FVersaoDF = ve200) then FVersaoDF := ve300;
end;
 

Por outro lado a procedure SetVersaoDF aceita a versão 3.10, retornando para 2,00 caso a versão informada seja 3.00 e modelo seja NF-e.

 

A dica é sempre configurar da seguinte forma:

 

ACBrNFe.Configuracoes.Geral.ModeloDF := moNFe;
ACBrNFe.Configuracoes.Geral.VersaoDF := ve310;
 

Note que primeiro estou "setando" o modelo e depois a versão.

 

Ao "setar" modelo como sendo moNFe o componente coloca a versão 2.00 uma vez que esta é a versão vigente, mas se em seguinda você "setar" a versão corretamente ou seja ve310 o componente vai aceitar essa versão e gerar o XML da NF-e na versão 3.10

 

Duvidas?

  • Curtir 2
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

  • Membros Pro
Postado (editado)

Ok italojjr é isso mesmo se colocar o codigo acima citado em tempo de projeto dá certo, porem se colocar na propriedade do objeto visual ele não consegue setar o valor para 310 em tempo de execução.

 

Obg. pela resposta.

Editado por Fernando Di Pace
  • Membros Pro
Postado

Italo em alguns caso o status retorna assim

 

<retConsStatServ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.portalfiscal.inf.br/nfe" versao="2.00"><tpAmb>2</tpAmb><verAplic>4.00</verAplic><cStat>239</cStat><xMotivo>Rejeicao: Cabecalho - Versao do arquivo XML nao suportada</xMotivo><cUF>29</cUF><dhRecbto>2014-01-02T00:00:00</dhRecbto></retConsStatServ>

  • Consultores
Postado

Boa tarde Cesar,

 

Leia o meu post acima #29, pois notei que ao consultar o status de serviço o XML esta sendo gerado na versão 2.00 e no caso do envio na versão 3.10

 

Você chegou a verificar a unit ACBrNFeWebServices.pas conforme eu postei #28.

 

Eu acredito que você esta com algum fonte desatualizado ou esta configurando o componente de forma errada.
 

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 Cesar,

 

A unit ACBrNFeWebServices.pas, após baixar tudo novamente como esta o fragmento que contem a seleção do método?

 

Agora tem que estar desta forma:

 

  if ((FConfiguracoes.Geral.ModeloDF = moNFCe) or (FConfiguracoes.Geral.VersaoDF = ve310)) and not
     (FConfiguracoes.WebServices.UFCodigo in [23, 31])  then // CE, MG
   begin
     SoapAction := 'http://www.portalfis...feAutorizacao';
     nfeAutorizacaoLote := True;
   end
  else
   begin
     SoapAction := 'http://www.portalfis.../NfeRecepcao2';
     nfeAutorizacaoLote := False;
   end;
 

O seu Delphi esta configurado para salvar as DCU em pastas diferentes das dos fontes?

 

Você checou a sua aplicação se a configuração do componente esta da forma explicada no post #29 deste tópico?

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

  • Membros Pro
Postado

Italo temperatura alguma Coisa errada o Pedido ESTA desfazer com uma versao Correta ja o Retorno Localidade: Não ...

 

<? Xml version = "1.0">
 
- <consStatServ Versao="3.10" xmlns="http://www.portalfiscal.inf.br/nfe">
 
<tpAmb> 2 </ tpAmb>
 
<cUF> 29 </ cUF>
 
<xServ> STATUS </ xServ>
 
</ ConsStatServ>
 
 

20140329081407-ped-sta.xml

20140329081535-ped-sta.xml

20140329081541-sta.xml

20140329081559-ped-sta.xml

20140329081601-sta.xml

20140329081621-ped-sta.xml

20140329081652-ped-sta.xml

20140329081701-sta.xml

20140329081752-ped-sta.xml

  • Membros Pro
Postado

Ha e ja fiz tudo o que vc pedio #29 e #28

 // Alterado por Italo em 13/03/2014
  if ((FConfiguracoes.Geral.ModeloDF = moNFCe) or (FConfiguracoes.Geral.VersaoDF = ve310)) and not
     (FConfiguracoes.WebServices.UFCodigo in [13, 23, 31])  then // AM, CE, MG
   begin
     nfeAutorizacaoLote := True;
   end
  else
   begin
     nfeAutorizacaoLote := False;
   end;
  • Consultores
Postado

Boa noite Cesar,

 

Você já tentou realizar a consulta ao status de serviço em outra UF (por exemplo SP) ?

 

Apesar da SEFAZ-BA ter disponiblizados tanto em homologação quanto de produção as URLs para a versão 3.10, notei que não esta funcionando ainda.

 

Utilizando a minha aplicação com os fontes do componente atualizados (o que esta disponivel hoje ho SVN) ao realizar a consulta na SEFAZ-BA ocorre o mesmo problema que você obteve, por outro lado ao mudar para a SEFAZ-SP o retorno é "Serviço em Operação".

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

Bom dia Cesar,

 

Os seus testes com a versão 3.10 se refere a UF = 29, ou seja, Bahia, correto?

 

Realizei algumas alterações no componente visando a versão 3.10 da NF-e para a Bahia.

 

Favor atualizar os fontes e realizar os testes.

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

  • 1 mês depois ...
  • Membros Pro
Postado
Italo voltei a fazer os teste com a versão da nota fiscal 3.10 e da o seguente erro:
 
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.
The statement has been terminated.
 
ACBrNFe1.NotasFiscais.Assinar;
NumeroLote := RetornaSequence('seq_nfe_emitida_lote');
ACBrNFe1.Enviar(NumeroLote, False, false);
 

 

29140512667605000110550010002268151002268152-nfe.xml

  • Membros Pro
Postado

Italo o erro ocorre neste bloco 

 

  //if (FConfiguracoes.Geral.ModeloDF = moNFe) or (not ASincrono) then
  if (FConfiguracoes.Geral.ModeloDF = moNFe) and (not ASincrono) then
   begin
    Self.Retorno.Recibo := Self.Enviar.Recibo;
    if not(Self.Retorno.Executar) then
       begin
         if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then
            TACBrNFe( FACBrNFe ).OnGerarLog(Self.Retorno.Msg);
         raise EACBrNFeException.Create(Self.Retorno.Msg);
       end;
   end;
  • Membros Pro
Postado
Italo apaguei a pasta e baixei novamente agora dâ o seguinte erro na propriedade. 
 
   
 
 //{eventos_juaumkiko}
    if Assigned(NFeRetorno.procEventoNFe) then begin // Incluido por Leonardo Gregianin em 08/01/2014 - resolver problema de violação de acesso
    FprocEventoNFe.Clear;
    for I := 0 to NFeRetorno.procEventoNFe.Count -1 do
    begin
      FprocEventoNFe.Add;
      FprocEventoNFe.Items.RetEventoNFe.idLote   := NFeRetorno.procEventoNFe.Items.RetEventoNFe.idLote;
      FprocEventoNFe.Items.RetEventoNFe.tpAmb    := NFeRetorno.procEventoNFe.Items.RetEventoNFe.tpAmb;
      FprocEventoNFe.Items.RetEventoNFe.verAplic := NFeRetorno.procEventoNFe.Items.RetEventoNFe.verAplic;
      FprocEventoNFe.Items.RetEventoNFe.cOrgao   := NFeRetorno.procEventoNFe.Items.RetEventoNFe.cOrgao;
      FprocEventoNFe.Items.RetEventoNFe.cStat    := NFeRetorno.procEventoNFe.Items.RetEventoNFe.cStat;
      FprocEventoNFe.Items.RetEventoNFe.xMotivo  := NFeRetorno.procEventoNFe.Items.RetEventoNFe.xMotivo;
      FprocEventoNFe.Items.RetEventoNFe.XML 
  • Este tópico foi criado há 3615 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.