Ir para conteúdo
  • Cadastre-se

João Paulo Müller

Membros
  • Total de ítens

    326
  • Registro em

  • Última visita

  • Days Won

    2

Posts postados por João Paulo Müller

  1. Boa tarde a todos, 

    Estou com problema para assinar o XML, estou realizando as implementações para realizar o cancelamento da NFSe para o município de Chapecó, estou fazendo as alterações para tentar solucionar a assinatura, sendo que no XML é utilizado o atributo 'id' não 'Id'.

    Realizei algumas alterações, deixei o arquivo semelhante ao arquivo de exemplo, porém, recebo erro de Access Violation na Unit ACBrDFeXsMsXml, linha 204:

    // Assinando com MSXML e CryptoLib //
          signedKey := xmldsig.sign(dsigKey, CERTIFICATES);

    Realizei as seguinte alterações:

    1) Definir id no elemento <InfPedidoCancelamento> (<InfPedidoCancelamento id="C201900000000005">)

      Em 10/01/2019 at 09:47, Italo Jurisato Junior disse:

    João,

    Unit ACBrNFSeWebSerices:

    procedure TNFSeCancelarNfse.DefinirDadosMsg;
     

          proEquiplano,
          proISSCuritiba,
          proPronimv2,
    //      proPublica,       <== Linha 4611 comentar essa linha
          proSP,
          proNotaBlu,
          proSMARAPD,
          proIPM: FURI := '';
     

    Se os seus fontes estão atualizados é essa linha que você deve comentar

    Ao invés de comentar essa linha sugeria fiz a seguinte alteração:

    proPublica: FURI := 'C'+FNumeroNFSe;

    Ou seja, vamos deixar a URI conforme o exemplo 'C'+NumeroNFs.

    2) Atribuir ID no <Reference> herdada da TAG <Signature> (<Reference URI="#C201900000000005">).

    Na unit ACBrDFeUtil é construída a TAG:

     Result :=
      '<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"' + IdSignature + '>' +
        '<SignedInfo>' +
          '<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
          '<SignatureMethod Algorithm="'+MethodAlgorithm+'" />' +
          '<Reference URI="' + IfThen(URI = '', '', '#' + URI) + '">' +
            '<Transforms>' +
              '<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />' +
              '<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
            '</Transforms>' +
            '<DigestMethod Algorithm="'+DigestAlgorithm+'" />' +
            '<DigestValue></DigestValue>' +
          '</Reference>' +
        '</SignedInfo>' +
        '<SignatureValue></SignatureValue>' +
        '<KeyInfo>' +
        IfThen(AddX509Data,
          '<X509Data>' +
            '<X509Certificate></X509Certificate>'+
          '</X509Data>',
          '')+
        '</KeyInfo>'+
      '</Signature>';

    É utilizado o parâmetro URI para definir o ID. Esse parâmetro é definido na função ExtraiURI, unit ACBRDFeUtil:

    function ExtraiURI(const AXML: String; IdAttr: String): String;
    var
      I, J: integer;
    begin
      Result := '';
      if IdAttr = '' then
        IdAttr := 'Id';
    
      I := PosEx(IdAttr+'=', AXML);
      if I = 0 then       // XML não tem URI
        Exit;
    
      I := PosEx('"', AXML, I + 2);
      if I = 0 then
        raise EACBrDFeException.Create('Não encontrei inicio do URI: aspas inicial');
    
      J := PosEx('"', AXML, I + 1);
      if J = 0 then
        raise EACBrDFeException.Create('Não encontrei inicio do URI: aspas final');
    
      Result := copy(AXML, I + 1, J - I - 1);
    end;

    A função busca no XML o atributo 'Id', pois atualmente o parâmetro IdAttr vem vazio, então é definido fixo o IdAttr := 'Id' (Note que está com o I MAIÚSCULO), já no elemento <InfPedidoCancelamento id="C201900000000005"> está minusculo, ou seja, não é encontrado o id, por isso não seta a TAG <Reference> com o ID necessário.

    Para fazer os testes defini de forma fixa o 'id' (minusculo) na chamada da assinatura unit ACBrNFSeWebServices:

    // O procedimento recebe como parametro o XML a ser assinado e retorna o
      // mesmo assinado da propriedade FPDadosMsg
      if (FPConfiguracoesNFSe.Geral.ConfigAssinar.Cancelar) and (FPDadosMsg <> '') then
        AssinarXML(FPDadosMsg, FdocElemento, FinfElemento, 'Falha ao Assinar - Cancelar NFS-e: ','','','id');

    Para funcionar também alterei a chamada de assinatura na unit ACBRDFeWebService: (Adicionei o parâmetro vazio '')

    FPDadosMsg := FPDFeOwner.SSL.Assinar(AXML, docElement, infElement,
                         SignatureNode, SelectionNamespaces,'', IdSignature);

    LEMBRANDO FIZ ESSES ALTERAÇÕES APENAS PARA TESTE.

    Feito isso, consegui gerar o XML (em anexo) igual o exemplo, exceto a assinatura devido o erro de AV.

    Porém, conforme relatei no inicio, recebo o erro de Access Violation,.

    Lembro de ter visto algo aqui no fórum referente a esse Id, alguém tem alguma sugestão de como resolver?

     

    Exemplo Publica.xml

    Contruido-NãoAssinado.xml

  2. 58 minutos atrás, Cesar Balbinott disse:

    @João Paulo Müller como você está passando em NaturezaOperacao em produção quando a prestação de serviço é dentro do estado?

    Estou utilizando as Naturezas descritas aqui:

    http://nfse-teste.publica.inf.br/homologa_nfse/RelatorioNatureza

     

    Porém ao fazer uma busca agora verifiquei que no comunicado da Prefeitura de Chapecó possui a nova lista para produção.

    https://www.chapeco.sc.gov.br/noticia/1508/comunicado-mudancas-de-sistemas

    • Curtir 1
  3. Boa tarde Pessoal,

    Estou me batendo aqui pra tentar assinar o XML, realizei algumas alterações, deixei o arquivo semelhante ao arquivo de exemplo, porém, recebo erro de Access Violation na Unit ACBrDFeXsMsXml, linha 204:

    // Assinando com MSXML e CryptoLib //
          signedKey := xmldsig.sign(dsigKey, CERTIFICATES);

    Realizei as seguinte alterações:

    1) Definir id no elemento <InfPedidoCancelamento> (<InfPedidoCancelamento id="C201900000000005">)

    Em 10/01/2019 at 09:47, Italo Jurisato Junior disse:

    João,

    Unit ACBrNFSeWebSerices:

    procedure TNFSeCancelarNfse.DefinirDadosMsg;
     

          proEquiplano,
          proISSCuritiba,
          proPronimv2,
    //      proPublica,       <== Linha 4611 comentar essa linha
          proSP,
          proNotaBlu,
          proSMARAPD,
          proIPM: FURI := '';
     

    Se os seus fontes estão atualizados é essa linha que você deve comentar

    Ao invés de comentar essa linha sugeria fiz a seguinte alteração:

    proPublica: FURI := 'C'+FNumeroNFSe;

    Ou seja, vamos deixar a URI conforme o exemplo 'C'+NumeroNFs.

    2) Atribuir ID no <Reference> herdada da TAG <Signature> (<Reference URI="#C201900000000005">).

    Na unit ACBrDFeUtil é construída a TAG:

     Result :=
      '<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"' + IdSignature + '>' +
        '<SignedInfo>' +
          '<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
          '<SignatureMethod Algorithm="'+MethodAlgorithm+'" />' +
          '<Reference URI="' + IfThen(URI = '', '', '#' + URI) + '">' +
            '<Transforms>' +
              '<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />' +
              '<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
            '</Transforms>' +
            '<DigestMethod Algorithm="'+DigestAlgorithm+'" />' +
            '<DigestValue></DigestValue>' +
          '</Reference>' +
        '</SignedInfo>' +
        '<SignatureValue></SignatureValue>' +
        '<KeyInfo>' +
        IfThen(AddX509Data,
          '<X509Data>' +
            '<X509Certificate></X509Certificate>'+
          '</X509Data>',
          '')+
        '</KeyInfo>'+
      '</Signature>';

    É utilizado o parâmetro URI para definir o ID. Esse parâmetro é definido na função ExtraiURI, unit ACBRDFeUtil:

    function ExtraiURI(const AXML: String; IdAttr: String): String;
    var
      I, J: integer;
    begin
      Result := '';
      if IdAttr = '' then
        IdAttr := 'Id';
    
      I := PosEx(IdAttr+'=', AXML);
      if I = 0 then       // XML não tem URI
        Exit;
    
      I := PosEx('"', AXML, I + 2);
      if I = 0 then
        raise EACBrDFeException.Create('Não encontrei inicio do URI: aspas inicial');
    
      J := PosEx('"', AXML, I + 1);
      if J = 0 then
        raise EACBrDFeException.Create('Não encontrei inicio do URI: aspas final');
    
      Result := copy(AXML, I + 1, J - I - 1);
    end;

    A função busca no XML o atributo 'Id', pois atualmente o parâmetro IdAttr vem vazio, então é definido fixo o IdAttr := 'Id' (Note que está com o I MAIÚSCULO), já no elemento <InfPedidoCancelamento id="C201900000000005"> está minusculo, ou seja, não é encontrado o id, por isso não seta a TAG <Reference> com o ID necessário.

    Para fazer os testes defini de forma fixa o 'id' (minusculo) na chamada da assinatura unit ACBrNFSeWebServices:

    // O procedimento recebe como parametro o XML a ser assinado e retorna o
      // mesmo assinado da propriedade FPDadosMsg
      if (FPConfiguracoesNFSe.Geral.ConfigAssinar.Cancelar) and (FPDadosMsg <> '') then
        AssinarXML(FPDadosMsg, FdocElemento, FinfElemento, 'Falha ao Assinar - Cancelar NFS-e: ','','','id');

    Para funcionar também alterei a chamada de assinatura na unit ACBRDFeWebService: (Adicionei o parâmetro vazio '')

    FPDadosMsg := FPDFeOwner.SSL.Assinar(AXML, docElement, infElement,
                         SignatureNode, SelectionNamespaces,'', IdSignature);

    LEMBRANDO FIZ ESSES ALTERAÇÕES APENAS PARA TESTE.

    Feito isso, consegui gerar o XML (em anexo) igual o exemplo, exceto a assinatura devido o erro de AV.

    Porém, conforme relatei no inicio, recebo o erro de Access Violation,.

    Lembro de ter visto algo aqui no fórum referente a esse Id, alguém tem alguma sugestão de como resolver?

    Exemplo Publica.xml

    Contruido-NãoAssinado.xml

  4. Entrei em contato com o pessoal da Publica novamente, passando nosso arquivo com a assinatura incorreta e assinatura de exemplo deles, solicitei se seria possível nos indicar onde está o problemas, mas relataram que estão em processo de monitoramento da NFS-e que está em produção e não irão poder ajudar no momento.

    Forneceram um XML Assinado para exemplo. Anexei o arquivo aqui, alguém saberia dizer o que compõem o ID do elemento  <InfPedidoCancelamento id="C201900000011630">? No meu ver parece ter relação com o número da Nota. Acredito que antes de assinar o arquivo deve ser preenchido esse ID com o valor correto.

    Solicitei a Publica o conteúdo deste ID, mas até o momento não obtive retorno.

     

    Como estão ai pessoal? Já estão rodando em produção sem o evento de cancelamento e com a antiga revision?

    pedido_cancelamento_nfse_C001_03777341004587_201900000011630_2352981065943970236(1).xml

  5. 4 horas atrás, Italo Jurisato Junior disse:

    João, 

    A alteração que fiz foi com base no Schema, agora se o provedor disponibiliza um Schema diferente do que foi implementado no webservice ai a coisa complica.

    Para mim, demostra uma falta de profissionalismo desse provedor.

    A linha que lhe pedi para comentar, note que é ela que faz com que o valor de URI fique em branco e é ele que é usado como valor do ID.

    Comentei a linha citada, é gerado o id da tag, porém da mesma forma obtenho o erro de Assinatura.

    Segue XML em anexo.

    Estou em contato com a Publica pra tentar cancelar uma nota com uma antiga versão que tenho compilado que funciona, para comprarmos os XML.

     

  6. Não estou com os fontes atualizados devido aqueles problemas na ultima atualização.

    Você havia subido umas alterações para uma correção na consulta da situação do lote, após essa alteração estava dando alguns problemas.

    Afinal, é necessário essas alterações na situação do lote? Pois sem as alterações realizadas está funcionando a consulta de situação do lote.

     

    4 minutos atrás, Italo Jurisato Junior disse:

    João,

    Unit ACBrNFSeWebSerices:

    procedure TNFSeCancelarNfse.DefinirDadosMsg;
     

          proEquiplano,
          proISSCuritiba,
          proPronimv2,
    //      proPublica,       <== Linha 4611 comentar essa linha
          proSP,
          proNotaBlu,
          proSMARAPD,
          proIPM: FURI := '';
     

    Se os seus fontes estão atualizados é essa linha que você deve comentar

    Vou localizar a linha e alterar.

  7. 26 minutos atrás, Italo Jurisato Junior disse:

    Bom dia João,

    Chegou a comparar os dois?

    Note que o XML gerado pelo componente o atributo ID esta vazio, já o do exemplo contem um valor que no caso é a palavra "assinar".

    Outra diferença é que no XML gerado pelo componente tem a tag <MotivoCancelamento> que não existe no XML de exemplo.

    Terceiro é o prefixo "ds:" que aparece em todos os elementos da assinatura, prefixo este não gerado pelo componente, alias nunca vi colocar prefixo na assinatura.

    Logo é preciso fazer uma alteração no componente para que seja gerado um ID para o cancelamento e não seja gerado a tag <MotivoCancelamento> para o provedor em questão.

    Então, a questão da Tag <MotivoCancelamento> acredito não ter no exemplo pois é opcional.

    Referente ao atributo ID vazio no cancelamento já havia reparado, porém não tenho muito conhecimento da estrutura do componente e não estava localizando onde fazer a alteração.

    Vou analisar novamente para tentar implementar a alteração.

  8. 6 minutos atrás, Italo Jurisato Junior disse:

    Bom dia a todos,

    Seria interessante obter do provedor um XML de pedido de cancelamento para comparar com o que é gerado pelo componente, assim vamos saber o que esta a mais ou a menos e tentar corrigir.

    Bom dia Italo,

    Segue em anexo o XML de exemplo da publica (Exemplo_Cancelar.xml) e o XML gerado pelo componente (Cancelamento_Atual).xml

    EXEMPLO_Cancelar.xml

    Cancelamento_atual.xml

  9. Boa tarde, fiz testes de cancelamento em Mafra e também está com problema.

    Acredito que todos os municípios de Publica está com problema no cancelamento.

    Tenho uma versão compilada do sistema que funciona. Comparei os arquivos de configuração (Cidades.ini e Publica.ini) e não houve nenhuma alteração que pudesse ocorrer o problema, foi apenas incluso novos municípios.

    Portanto, deve ter sido alguma alteração no componente. É uma pena eu não ter feito o backup do ACBR junto com a versão compilada.

    Vou seguir analisando...

    Caso alguém souber de algo, favor comunicar.

    • Curtir 1
  10. 3 horas atrás, Cesar Balbinott disse:

    @everson.turossi eu espero que não aconteça isso em produção também, já pensou o cliente receber uma mensagem assim Arquivo enviado fora da estrutura do arquivo XML de entrada. Envie um arquivo dentro do schema do arquivo XML de entrada.

    Alguém já emitiu alguma no ambiente de produção? Ou será que ainda não foi liberado?

    Conforme resposta da Publica a previsão é para amanha.

    Citar

    Quem está responsável pela migração é outra equipe aqui da empresa, e a informação que tenho é que amanhã será disponibilizado o sistema em produção

    Pessoal, estou com a base de outro cliente aqui agora, do município de Mafra, para verificar se também esta ocorrendo o erro de cancelamento, pois já observei em outro tópico que há problemas com o cancelamento em outro município no qual o provedor é Publica.

     

    Quero ver essa questão do cancelamento para tentar rodar em produção amanha

    • Curtir 1
  11. Boa tarde,

    Rejane o usuário estava utilizando a aplicação e de repente ocorreu este problema? Ou foi compilado o exe com uma nova revision e atualizado o cliente e então ocorreu o problema?

    Estou desenvolvendo para Chapecó e estou com o mesmo problema. 

    Tenho desenvolvido para Mafra e Itajaí que também utilizam o provedor Publica, mas até então não reportaram nenhum problema.

    Vou pegar a base de dados e o certificado de um cliente de Mafra e realizar alguns testes nessas ultimas revisions.

    Até agora não houve reclamações, acredito ser um problema a partir de uma atualização do ACBR.

  12. 26 minutos atrás, Cesar Balbinott disse:

    No manual de integração tem um parte que explica como faz para enviar mais de um item por nota, fica assim:

    
    <Servico>
    <Valores>...</Valores>
    <ItemListaServico></ItemListaServico>
    <Discriminacao>{[[Descricao=Descrição do item 1][itemServico=102][aliquota=0.03][Quantidade=2]
    [ValorUnitario=2000][Deducoes=0][DescontoCondicionado=0][DescontoIncondicionado=0]]
    [[Descricao=Descrição do item 2][itemServico=901][aliquota=0.04][Quantidade=1.6580][ValorUnitario=150.9880]
    [Deducoes=5.32][DescontoCondicionado=8.2][DescontoIncondicionado=2.99]]}</Discriminacao>
    <InformacoesComplementares></InformacoesComplementares>
    <CodigoMunicipio></CodigoMunicipio>
    <CodigoPais></CodigoPais>
    </Servico>

    e se eu envio assim e vou no site da publica conferir, fica certo, os itens aparecem formatados um embaixo do outro, então acho que é apenas o relatório que não está tratando isso.

    Certo Cesar, compreendi.

    Aqui vou manter um item por NFSe, pois caso contrario terei que alterar toda e estrutura do módulo.

    Como tenho um módulo e estou integrando diversos provedores no mesmo módulo, pode ser que encontro provedores que não suportam mais de um item por nota, ai terei problemas...

  13. 40 minutos atrás, Italo Jurisato Junior disse:

    Bom dia a todos,

    O arquivo Cidades.ini esta desatualizado, tem apenas 47 Kbytes enquanto o que se encontra no repositório tem 80.

    Já o Publica.ini esta com seções em duplicidade, esta com 11 Kbytes enquanto o que  esta no repositório tem apenas 6.

    Peço que façam as devidas correções em cima dos arquivos que estão no repositório.

    No arquivo Publica.ini

    Pelo que pude perceber a unica alteração (tirando as duplicidades) do arquivo editado para o arquivo do repositório foi a configuração de assinatura:

    Repositório

    [Assinar]
    RPS=1
    Lote=0
    URI=1

    Editado

    [Assinar]
    RPS=0
    Lote=1
    URI=0

    Realizando apenas  essa alterações no arquivo original (Repositório) já é possível transmitir as notas.

    Não sei se essas alterações está corretas ou poderão impactar em outros municípios.

    Apenas analisei os arquivos do repositório (que não está funcionado para Chapecó) com o arquivo publicado aqui no tópico (que está funcionando)

    Lembrando que tive que voltar a Revison sem as ultimas alterações realizadas para funcionar

    • Curtir 1
  14. 14 horas atrás, Cesar Balbinott disse:

    @everson.turossi Esse erro código 160 "Arquivo enviado fora da estrutura do arquivo XML de entrada. Envie um arquivo dentro do schema do arquivo XML de entrada." não é problema com o seu sistema, é problema com o servidor deles, quando acontece isso eu envio email pra eles e eles reiniciam o servidor e aí funciona, perdi um tempão pra descobrir isso pois dá a impressão que o nosso xml está errado, agora pouco eu pedi pra reiniciar, deve ter sido no mesmo momento que você tentou enviar.

    Quem está emitindo está conseguindo enviar mais de um serviço na mesma nota e imprimindo corretamente a descriminação dos serviços sem aqueles [ ] ?

    Aproveitando aqui o assunto de mais de um serviço por nota.

    Tenho implementado para enviar sempre um serviço por nota, se na construção da nota o usuário por mais de um item, percorro os itens e faço a geração de uma NFSe para cada item.

    Sabem me dizer se teria algum problema? Pois no padrão ABRASF é suportado apenas um item por nota certo? Acho que essa implementação de vários itens na Descrição fica meio estranho...

  15. 14 horas atrás, everson.turossi disse:

    Apenas uma correção, os arquivos que estou utilizando são colaboração do @Eduardo Muller

    Outro detalhe, aqui estou conseguindo fazer emissão usando WinCrypt. Atualizei o SVN para essa ultima correção disponibilizada, mas acabei tendo alguns problemas. No processamento do lote resultava na mensagem "Arquivo enviado fora da estrutura do arquivo XML de entrada. Envie um arquivo dentro do schema do arquivo XML de entrada." então acabei retrocedendo a revisão anterior, mas o erro persistia, acredito que possa ter sido algum erro interno do provedor pois agora voltou ao normal. Vou continuar testando, mas parece que mesmo sem as alterações enviadas hoje, a consulta do lote está funcionando com Wincrypt.

    Bom dia Everson,

    Você está conseguindo transmitir com o ACBR na ultima revision e os arquivos do repositório?

    Não ocorreu o erro que citei anteriormente quando atualizou para a ultima revision?

    Citar

    Antes resolvi a situação copiando os arquivos aqui configurados pelo Everson, o qual resolveu o erro da validação (Lembrando que o erro ocorre no momento de gerar o lote), estava conseguindo autorizar a NFS-e, consultar etc.. Porém, agora ao copiar os arquivos Recebo o seguinte erro: "Erro não especificado" no momento de fazer a assinatura, unit ACBrNFSeNotasFiscais, linha 702:

    
    XMLAss := SSL.Assinar(ArqXML, docElemento, infElemento,
                                SignatureNode, SelectionNamespaces, IdSignature, IdAttr

    Notei que o erro estava na implementação realizada na unit ACBrNFSeConfiguracoes, linha 648:

    FConfigAssinar.URI := (SSLLib <> libCapicom) and (FConfigGeral.Identificador = 'id');

     

    Aqui também estou utilizando winCrypt.

    ACBrNFSe.SSL.SSLHttpLib := httpWinHttp;
    ACBrNFSe.SSL.SSLCryptLib   := cryWinCrypt;
    
    if Certificado.OpenSSL = 'S' then
    begin
      ACBrNFSe.SSL.SSLXmlSignLib := xsXmlSec;
      ACBrNFSe.SSL.ArquivoPFX    := Dir+'Certificados\'+Certificado.ArquivoPFX;
    end
    else
    begin
      ACBrNFSe.SSL.SSLXmlSignLib := xsMsXml;
      ACBrNFSe.SSL.NumeroSerie := Certificado.NumSerie;
    end;

    Vou voltar a versão e utilizar os arquivos publicados aqui no tópico para conseguir prosseguir com os testes.

  16. Italo, identifique o motivo do erro.

    Está na alteração feita na unit ACBrNFSeConfiguracoes, linha 648:

    FConfigAssinar.URI := (SSLLib <> libCapicom) and (FConfigGeral.Identificador = 'id');

    Comentei a linha acima e consegui  enviar o lote, porém agora estou com erro na consulta da situação do lote. Erro: Não foi possível carregar o XML. Vou analisar melhor..

    Detalhe: Estou utilizando os arquivos postado aqui pelo Everson , caso contrario obtenho erro já na validação, utilizando os arquivos (Publica.ini e Cidades.ini) do ACBR

  17. 4 horas atrás, Italo Jurisato Junior disse:

    Bom dia a todos,

    Enviei para o repositório uma possível correção na assinatura do Consultar Situação do Lote.

    Boa tarde Italo,

    Atualizei o repositório agora para realizar os testes, mesmo assim persiste o problema que havia comentado antes.

    Citar

    Só pra informar pessoal, este problema está ocorrendo com os arquivos postados no SVN, ao utilizar os arquivos publicados aqui pelo Everson o problema foi resolvido.

    O "erro unable to parse" estava ocorrendo quando utilizado OpenSSL, se utilizar CAPICOM, retorna o  erro na coluna 279, onde há um defeito no XML:

    
    ...<InfRps</signature></rps>...

     

    Antes resolvi a situação copiando os arquivos aqui configurados pelo Everson, o qual resolveu o erro da validação (Lembrando que o erro ocorre no momento de gerar o lote), estava conseguindo autorizar a NFS-e, consultar etc.. Porém, agora ao copiar os arquivos Recebo o seguinte erro: "Erro não especificado" no momento de fazer a assinatura, unit ACBrNFSeNotasFiscais, linha 702:

    XMLAss := SSL.Assinar(ArqXML, docElemento, infElemento,
                                SignatureNode, SelectionNamespaces, IdSignature, IdAttr);

     

    Acredito ter relação com a alteração feita, vou seguir analisando..

    Lembrando que com as alterações feitas pelo Everson nos arquivos (Cidades.ini e Publica.ini) estava conseguindo consultar situação do lote.

    • Curtir 1
  18. 2 horas atrás, João Paulo Müller disse:

    Boa tarde pessoal,

    Alguém poderia dar um help?

    Estou recebendo o erro "Erro:Unable to parse" na validação do lote.

    Alguém teria uma ideia?

    Segue procedimento que faço pra gerar o lote::

    
    Frm.ACBrNFSe.NotasFiscais.GerarNFSe; // Gera os RPS //
    try
    	Frm.ACBrNFSe.WebServices.GeraLote(Lote) 
    Except on E: Exception do
    	raise Exception.Create('Falha ao gerar lote: ' + E.Message);
    end;

    Erro ocorre na unit ACBrNFSeWebServices linha 2810

    
    
    if FPConfiguracoesNFSe.Geral.ConfigSchemas.Validar then
          FNotasFiscais.ValidarLote(FPDadosMsg,
                             FPConfiguracoes.Arquivos.PathSchemas +
                             FPConfiguracoesNFSe.Geral.ConfigSchemas.ServicoEnviar);

    Alguma sugestão?

    Só pra informar pessoal, este problema está ocorrendo com os arquivos postados no SVN, ao utilizar os arquivos publicados aqui pelo Everson o problema foi resolvido.

    O "erro unable to parse" estava ocorrendo quando utilizado OpenSSL, se utilizar CAPICOM, retorna o  erro na coluna 279, onde há um defeito no XML:

    ...<InfRps</signature></rps>...

    ----
    Aproveitando a postagem, sabe me dizer se precisa solicitar alguma liberação na publica para realizar os testes em homologação?

    Estou recebendo retorno informando que o prestador não está autorizado a emitir NFS-e. 

  19. Boa tarde pessoal,

    Alguém poderia dar um help?

    Estou recebendo o erro "Erro:Unable to parse" na validação do lote.

    Alguém teria uma ideia?

    Segue procedimento que faço pra gerar o lote::

    Frm.ACBrNFSe.NotasFiscais.GerarNFSe; // Gera os RPS //
    try
    	Frm.ACBrNFSe.WebServices.GeraLote(Lote) 
    Except on E: Exception do
    	raise Exception.Create('Falha ao gerar lote: ' + E.Message);
    end;

    Erro ocorre na unit ACBrNFSeWebServices linha 2810

    
    if FPConfiguracoesNFSe.Geral.ConfigSchemas.Validar then
          FNotasFiscais.ValidarLote(FPDadosMsg,
                             FPConfiguracoes.Arquivos.PathSchemas +
                             FPConfiguracoesNFSe.Geral.ConfigSchemas.ServicoEnviar);

    Alguma sugestão?

  20. Boa tarde a todos, 

    Estive analisando o arquivos Cidades.ini e não encontrei suporte ao município de Trindade do Sul.

    Também verifiquei que o provedor que desenvolveu a NFSe neste município (Sinsoft) não houve nenhum integração no ACBR. 

    Alguém saberia me dizer se há alguma particularidade com este municio por não haver integração ou apenas não houve necessidade até então.

    No manual de integração (Em anexo) cita o padrão ABRASFT  Versão 2.01.

    Ao analisar o manual observei que na autenticação é solicitado um username e password, isso pode acabar dificultando a integração?

    Exemplo em delphi:

    Var
     Request: ConsultarNfseRpsEnvio;
     Response: ConsultarNfseRpsResposta;
     pNFSe: INFSe; {WSDL}
    begin
     Try
     pNFSe:= GetINFSe(True, 'Path do WSLD',HTTPRIO);
     Response := ConsultarNfseRpsResposta.Create;
     Request := ConsultarNfseRpsEnvio.Create;
     Request.nfseCabecMsg := 'CABECALHO';
     Request.nfseDadosMsg := 'XML';
     Request.Username := 'USUARIO';
     Request.Password := 'SENHA';
     Request.Prefeitura := 'PREFEITURA';
     Response.outputXML := (HTTPRIO as
    INFSe).ConsultarNfsePorRps(Request).outputXML;
     if Response.outputXML <> EmptyStr Then
     Showmessage(Response.outputXML);
     Finally
     FreeAndNil(Request);
     FreeAndNil(Response);
     FreeAndNil(Nfse);
     End;

     

    Não cheguei fazer uma analise mais completa no componente ainda, pois vamos implementar essa integração nos próximos meses. Abri o tópico pois talvez alguém possa me adiantar do assunto.

    Obrigado a todos.

  21. Em 18/07/2018 at 14:41, Francisco IBS disse:

    Boa Tarde João...

    Então e tomei a liberdade de fazer algumas alterações no componente para gerar o arquivo já que o estoque já é obrigatório o envio esse mês, precisei alterar a forma que se guardava a informação para gerar o XML(esta usando String se não me engano) e também alterei a forma de se fazer a assinatura, pode se por falta de conhecimento minha do componente mais estava levando bastante tempo.

    Notei que vc comentou de possuir 120k de produtos, a legislação esta bem "por cima" dando/deixando muitas brechas pela questão do entendimento, pelo que entendi deram liberdade para cada estado criar o seu WS então pensa na confusão que isso vai ficar... 
    Mais em contato com o pessoal técnico que me colocou em contato com o GESAC cosegui esclarecer bastante coisas uma delas é que não é necessário mandar todos os produtos(como me foi exigido na homologação) e sim apenas os que tiveram movimentação(entradas ou saidas) no período.

    Vou deixar um grupo de discussão administrado pela SEF-SC bem util a baixo, anteriormente deixavam até fazer questionamentos mais hj apenas para atualização de o que esta ocorrendo na parte Técnica do Bloco X. Mais tem algum material de legislação ali já postado tbm:
    https://groups.google.com/forum/#!forum/sef-sc-siv

    Nesse grupo de discussão vc vai poder ver que existem questionamentos com relação ao tamanho do arquivo e o pessoal da SEF não parece ter a intenção nenhuma de mudar isso ou a forma que é feita, não que devemos concordar com isso, mais precisamos cumprir as obrigações legais que nos são impostas.

    Boa tarde Francisco.

    Não seria interessante sugerir essas alterações realizadas no componente para serem enviadas para o SVN?

    Acredito que mesmo enviando somente os produtos com estoque e movimentação, mesmo assim pode acabar ocorrendo problema com determinadas maquinas.

  22. Em 03/10/2018 at 13:54, Francisco IBS disse:

    Esse foi o entendimento que tive, a única coisa que eu mudaria no que vc falou é a questão de produto com quantidade < 0... pelo que da a entender isso não pode ocorrer, não recordo se vi algum questionamento disso lá no grupo de discussão ou na base de conhecimento do CAF, no endereço http://caf2.sef.sc.gov.br/, acesse a opção ECF, vais encontrar algo, pelo que entendi o cliente deve sempre deixar o estoque 0 ou positivo, no arquivo não deve conter estoque negativo. O que é estranho pq lembro de ter uma flag no xml que diz se o estoque é positivo ou negativo.

     

    Exatamente Francisco.

    Existe uma Flag para indicar se o estoque é positivo ou negativo.

    Aqui estamos enviando tanto os estoques positivos e negativos (se houver) e controlando conforme a Flag.

    • Curtir 1
  23. 1 minuto atrás, Francisco IBS disse:

    Boa Tarde...

    Semana passada troquei um e-mail com o Bruno Nogueira sobre isso,  eu tive um primeiro entendimento errado o  correto é:

    - Qualquer produto com quantidade a cima de 0.
    - Qualquer produto com movimentação, venda ou entrada.

    Deve constar no arquivo de estoque.

    Deixe me ver se compreendi corretamente,

    de qualquer forma se o produto possuir estoque (Quantidade > 0) deve constar no arquivo XML;

    Agora, se o produto não possuir estoque (Quantidade <= 0) E não possuir movimento ai sim não precisa constar no XML, isto?

  24. Em 18/07/2018 at 14:41, Francisco IBS disse:

    Boa Tarde João...

    Então e tomei a liberdade de fazer algumas alterações no componente para gerar o arquivo já que o estoque já é obrigatório o envio esse mês, precisei alterar a forma que se guardava a informação para gerar o XML(esta usando String se não me engano) e também alterei a forma de se fazer a assinatura, pode se por falta de conhecimento minha do componente mais estava levando bastante tempo.

    Notei que vc comentou de possuir 120k de produtos, a legislação esta bem "por cima" dando/deixando muitas brechas pela questão do entendimento, pelo que entendi deram liberdade para cada estado criar o seu WS então pensa na confusão que isso vai ficar... 
    Mais em contato com o pessoal técnico que me colocou em contato com o GESAC cosegui esclarecer bastante coisas uma delas é que não é necessário mandar todos os produtos(como me foi exigido na homologação) e sim apenas os que tiveram movimentação(entradas ou saidas) no período.

    Vou deixar um grupo de discussão administrado pela SEF-SC bem util a baixo, anteriormente deixavam até fazer questionamentos mais hj apenas para atualização de o que esta ocorrendo na parte Técnica do Bloco X. Mais tem algum material de legislação ali já postado tbm:
    https://groups.google.com/forum/#!forum/sef-sc-siv

    Nesse grupo de discussão vc vai poder ver que existem questionamentos com relação ao tamanho do arquivo e o pessoal da SEF não parece ter a intenção nenhuma de mudar isso ou a forma que é feita, não que devemos concordar com isso, mais precisamos cumprir as obrigações legais que nos são impostas.

    Boa tarde Francisco, 

    Obrigado pelas informações.

    Me juntei ao grupo, inclusive já fiz alguns questionamentos ao Bruno (Auditor)...

    Encontrei um tópico no grupo referente ao estoque que descreve o seguinte:

    Citar

    Boa tarde,

    Repasso informação da Gerência de Automação.

    No arquivo de estoque que é enviado todo mês, qual a necessidade de constar nesse arquivo produtos sem estoque e sem movimentação fiscal?

    A orientação é para gerar o arquivo de estoque sem estes itens (pois seriam itens obsoletos, não mais movimentados pelo estabelecimento). Se caso voltarem a ser movimentados, estes voltarão a constar no arquivo de estoque.

     

    Vou ver se consigo enviar um e-mail ao Bruno questionando se é necessário que o produto NÃO possua estoque e também NÃO tenha movimento para ficar de fora do XML ou se basta o produto não possuir movimento.

    Pois pode acontecer de o produto possuir estoque mas não possui movimento no período, neste caso deveria constar no XML ou não? 

    Vou ver se consigo tirar essa dúvida com ele,  caso você já estiver a par da questão seria de grande valia essa informação.

    Novamente, obrigado pela colaboração.

     

×
×
  • 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.