Usuários SAC zemarcio 12 Posted August 27, 2020 Usuários SAC Report Share Posted August 27, 2020 Estou tendo erro de access violation ao executar o seguinte comando: dmAcbr.ACBrNFe1.ImprimirInutilizacao; Estranho que só dá o erro na segunda vez que executa. Segue abaixo a procedure completa: procedure TfInutilizacaoAdd.bbSalvarClick(Sender: TObject); var iID_Inutilizacao : Integer; sXML, sArq : string; begin if length(Memo1.Text) <= 15 then begin iMessageBox(handle,'Favor preencher no mínimo 15 caracteres!','Inutilizar',MB_OK); Exit; end; if iMessageBox(Handle,'Deseja realmente inutilizar a numeração?','Inutilizar Numeração',MB_YESNO) <> IDYES then Exit; dmAcbr.ACBrNFe1.WebServices.Inutiliza( sApenasNumeros(dmConexao.TFILIALCNPJ.AsString), Memo1.Text, edtAno.Value, 55, edtSerie.Value, edtNumInicial.Value, edtNumFinal.Value); if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat = 102 then begin fInutilizacao.TInutilizacaoID_INUTILIZACAO.Required := False; fInutilizacao.TInutilizacao.Insert; fInutilizacao.TInutilizacaoID_INUTILIZACAO.IsNull; fInutilizacao.TInutilizacaoID_FILIAL.AsInteger := iID_FILIAL; fInutilizacao.TInutilizacaoANO.AsInteger := edtAno.Value; fInutilizacao.TInutilizacaoMODELO.AsInteger := 55; fInutilizacao.TInutilizacaoSERIE.AsInteger := edtSerie.Value; fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger := edtNumInicial.Value; fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger := edtNumFinal.Value; fInutilizacao.TInutilizacaoJUSTIFICATIVA.AsString := Memo1.Text; fInutilizacao.TInutilizacaoPROTOCOLO.AsString := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.Protocolo; fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime := dmAcbr.ACBrNFe1.WebServices.Inutilizacao.dhRecbto; if dmAcbr.ACBrNFe1.WebServices.Inutilizacao.tpAmb = taProducao then fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Produção' else fInutilizacao.TInutilizacaoAMBIENTE.AsString := 'Homologação'; //retorna proximo id do generator iID_Inutilizacao := iRetornarID('GEN_INUTILIZACAO_ID'); fInutilizacao.TInutilizacao.Post; dmConexao.IBTCONEXAO.CommitRetaining; sArq := dmConexao.TFILIALCODIGO_ESTADO.AsString + Copy(IntToStrZero(fInutilizacao.TInutilizacaoANO.AsInteger, 4), 3, 2) + sApenasNumeros(dmConexao.TFILIALCNPJ.AsString) + IntToStrZero(fInutilizacao.TInutilizacaoMODELO.AsInteger, 2) + IntToStrZero(fInutilizacao.TInutilizacaoSERIE.AsInteger, 3) + IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_INICIAL.AsInteger, 9) + IntToStrZero(fInutilizacao.TInutilizacaoNUMERO_FINAL.AsInteger, 9); bInserirXMLDB('INUTILIZACAO', 'INUTILIZACAO', IntToStr(iID_Inutilizacao), fInutilizacao.TInutilizacaoPROTOCOLO.AsString, 'Inutilizada', dmACBr.ACBrNFe1.WebServices.Inutilizacao.XML_ProcInutNFe, sArq+'-procInutNFe.xml', fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime, 0); // dmAcbr.ACBrNFe1.NotasFiscais.Clear; sXML := sVerificaArquivo('Inutilizada', 'INUTILIZACAO', ExtractFileDir(Application.ExeName)+'\XML_NFE\Inu\'+FormatDateTime('YYYYMM', fInutilizacao.TInutilizacaoDATA_HORA.AsDateTime)+'\'+sArq+'-procInutNFe.xml', iID_Inutilizacao , 0); dmAcbr.ACBrNFe1.DANFE:=dmAcbr.ACBrNFeDANFEFR1; dmAcbr.ACBrNFe1.InutNFe.XML:=''; dmAcbr.ACBrNFe1.InutNFe.LerXML( sXML ); dmAcbr.ACBrNFe1.ImprimirInutilizacao; fInutilizacao.TInutilizacao.Close; fInutilizacao.TInutilizacao.ParamByName('ID_FILIAL').AsInteger := iID_FILIAL; fInutilizacao.TInutilizacao.Open; iMessageBox(handle,'Numeração inutilizada com sucesso! Favor excluir as notas fiscais que foram inutilizadas (caso houver)!','Inutilizar Numeração',MB_OK); Close; end else begin iMessageBox(handle,pchar('Não foi possível inutilizar a numeração!'+#13+IntToStr(dmAcbr.ACBrNFe1.WebServices.Inutilizacao.cStat)+' - '+dmAcbr.ACBrNFe1.WebServices.Inutilizacao.xMotivo),'Inutilizar Numeração',MB_OK); end; end; Link to post Share on other sites
Juliana Tamizou 4,230 Posted August 27, 2020 Report Share Posted August 27, 2020 Boa tarde. O mesmo ocorre ao reproduzir no demo? Att. Juliana Tamizou Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link to post Share on other sites
Juliana Tamizou 4,230 Posted August 27, 2020 Report Share Posted August 27, 2020 Tópico movido para a área do SAC, para que o SLA de respostas seja considerado Juliana Tamizou Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link to post Share on other sites
Italo Giurizzato Junior 9,877 Posted August 27, 2020 Report Share Posted August 27, 2020 Boa noite Marcio, Você chegou a "debugar" para saber exatamente em que linha da sua rotina ou do componente ocorre o erro de violação de acesso? Italo Giurizzato Junior Ajude o Projeto ACBr crescer - Assine o SAC Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP Link to post Share on other sites
Fundadores Solution Daniel Simoes 8,703 Posted August 27, 2020 Fundadores Solution Report Share Posted August 27, 2020 A.V. somente ocorre quando você tenta acessar um Objeto que não existe... ou seja, ele já foi destruído, ou ainda não foi criado... Revise a sua rotina de impressão, e verifique se você está modificando por código a atribuição do DANFE ao componente... Vá com o Debug, e identifique a linha exata, onde ocorre o problema... Daniel Simões de Almeida O melhor TEF, é com o Projeto ACBr - Clique e Conheça Ajude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Link to post Share on other sites
Juliomar Marchetti 3,845 Posted August 28, 2020 Report Share Posted August 28, 2020 Debuga e quando der o erro olha no call stack onde ele vai apontar. Juliomar Marchetti Ajude o Projeto ACBr crescer - Assine o SAC skype: juliomar telegram: juliomar http://www.juliomarmarchetti.com.br Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Link to post Share on other sites
Usuários SAC zemarcio 12 Posted September 1, 2020 Author Usuários SAC Report Share Posted September 1, 2020 Obrigado Pessoal, vou verificar melhor aqui! 1 Link to post Share on other sites
Recommended Posts