-
Total de ítens
6.885 -
Registro em
-
Última visita
-
Days Won
68
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que André Ferreira de Moraes postou
-
Nfe 3.10 Prestação De Serviços Issqn Não Aparece Xml
André Ferreira de Moraes replied to jaques.rocha's tópico in ACBrNFe
Debuque a procedure TNFeW.GerarDetImposto(const i: integer); da unit pcnNFeW.pas e veja oq pode estar errado. -
Nfc-E - Homologação
André Ferreira de Moraes replied to rafael_acacio's tópico in NFC-e - Nota Fiscal do Consumidor Eletrônica
Use o ambiente do AM pra testar, está liberado para todos os estados. -
Nfc-E - Nota Fiscal Do Consumidor Eletrônica
André Ferreira de Moraes replied to André Ferreira de Moraes's tópico in ACBrNFe
Se vc transformar em base64(Encode64) terá 56 caracteres. -
Veja Obs: Enquanto vc não conseguir acessar pelo browser não irá funcionar pelo componente.
-
Qual windows e versão do IE que vc usa?
-
Imprimir Danfe, Contagem De Páginas Em Loop Infinito
André Ferreira de Moraes replied to Emerson_Azevedo's tópico in ACBrNFe
Veja se existe uma impressora padrão cadastrada configurada com papel tamanho A4. Caso já tenha a impressora cadastrada, teste com a versão RaveCB. -
Erro Ao Assinar Arquivo Xml ( Digest Não Confere )
André Ferreira de Moraes replied to rommaraujo's tópico in ACBrNFe
Usei a seguinte função e assinou normalmente(não comparei com a sua pra ver as diferenças): function AssinarMSXML(XML : AnsiString; Certificado : ICertificate2; out XMLAssinado : AnsiString): Boolean; var I, J, PosIni, PosFim : Integer; URI : String ; Tipo : Integer; xmlHeaderAntes, xmlHeaderDepois : AnsiString ; xmldoc : IXMLDOMDocument3; xmldsig : IXMLDigitalSignature; dsigKey : IXMLDSigKey; signedKey : IXMLDSigKey; begin if Pos('<Signature',XML) <= 0 then begin I := DFeUtil.PosEx('Id=',XML,6) ; if I = 0 then raise EACBrNFeException.Create('Não encontrei inicio do URI: Id=') ; I := DFeUtil.PosEx('"',XML,I+2) ; if I = 0 then raise EACBrNFeException.Create('Não encontrei inicio do URI: aspas inicial') ; J := DFeUtil.PosEx('"',XML,I+1) ; if J = 0 then raise EACBrNFeException.Create('Não encontrei inicio do URI: aspas final') ; URI := copy(XML,I+1,J-I-1) ; XML := copy(XML,1,pos('</DIe>',XML)-1); XML := XML + '<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />'; XML := XML + '<Reference URI="#'+URI+'">'; XML := XML + '<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="http://www.w3.org/2000/09/xmldsig#sha1" />'; XML := XML + '<DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo></KeyInfo></Signature>'; XML := XML + '</DIe>'; end; // Lendo Header antes de assinar // xmlHeaderAntes := '' ; I := pos('?>',XML) ; if I > 0 then xmlHeaderAntes := copy(XML,1,I+1) ; xmldoc := CoDOMDocument50.Create; xmldoc.async := False; xmldoc.validateOnParse := False; xmldoc.preserveWhiteSpace := True; xmldsig := CoMXDigitalSignature50.Create; if (not xmldoc.loadXML(XML) ) then raise EACBrNFeException.Create('Não foi possível carregar o arquivo: '+XML); xmldoc.setProperty('SelectionNamespaces', DSIGNS); xmldsig.signature := xmldoc.selectSingleNode('.//ds:Signature'); if (xmldsig.signature = nil) then raise EACBrNFeException.Create('É preciso carregar o template antes de assinar.'); if NumCertCarregado <> Certificado.SerialNumber then CertStoreMem := nil; if CertStoreMem = nil then begin CertStore := CoStore.Create; CertStore.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); CertStoreMem := CoStore.Create; CertStoreMem.Open(CAPICOM_MEMORY_STORE, 'Memoria', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); Certs := CertStore.Certificates as ICertificates2; for i:= 1 to Certs.Count do begin Cert := IInterface(Certs.Item[i]) as ICertificate2; if Cert.SerialNumber = Certificado.SerialNumber then begin CertStoreMem.Add(Cert); NumCertCarregado := Certificado.SerialNumber; end; end; end; OleCheck(IDispatch(Certificado.PrivateKey).QueryInterface(IPrivateKey,PrivateKey)); xmldsig.store := CertStoreMem; dsigKey := xmldsig.createKeyFromCSP(PrivateKey.ProviderType, PrivateKey.ProviderName, PrivateKey.ContainerName, 0); if (dsigKey = nil) then raise EACBrNFeException.Create('Erro ao criar a chave do CSP.'); signedKey := xmldsig.sign(dsigKey, $00000002); if (signedKey <> nil) then begin XMLAssinado := xmldoc.xml; XMLAssinado := StringReplace( XMLAssinado, #10, '', [rfReplaceAll] ) ; XMLAssinado := StringReplace( XMLAssinado, #13, '', [rfReplaceAll] ) ; PosIni := Pos('<SignatureValue>',XMLAssinado)+length('<SignatureValue>'); XMLAssinado := copy(XMLAssinado,1,PosIni-1)+StringReplace( copy(XMLAssinado,PosIni,length(XMLAssinado)), ' ', '', [rfReplaceAll] ) ; PosIni := Pos('<X509Certificate>',XMLAssinado)-1; PosFim := DFeUtil.PosLast('<X509Certificate>',XMLAssinado); XMLAssinado := copy(XMLAssinado,1,PosIni)+copy(XMLAssinado,PosFim,length(XMLAssinado)); end else raise EACBrNFeException.Create('Assinatura Falhou.'); if xmlHeaderAntes <> '' then begin I := pos('?>',XMLAssinado) ; if I > 0 then begin xmlHeaderDepois := copy(XMLAssinado,1,I+1) ; if xmlHeaderAntes <> xmlHeaderDepois then XMLAssinado := StuffString(XMLAssinado,1,length(xmlHeaderDepois),xmlHeaderAntes) ; end else XMLAssinado := xmlHeaderAntes + XMLAssinado ; end ; dsigKey := nil; signedKey := nil; xmldoc := nil; xmldsig := nil; Result := True; end; Para carregar o arquivo: var vAssinada : AnsiString; FMsg : AnsiString; ArquivoFormatoXML : TStringList; begin OpenDialog1.Title := 'Selecione a NFE'; OpenDialog1.DefaultExt := '*-nfe.XML'; OpenDialog1.Filter := 'Arquivos NFE (*-nfe.XML)|*-nfe.XML|Arquivos XML (*.XML)|*.XML|Todos os Arquivos (*.*)|*.*'; OpenDialog1.InitialDir := ACBrNFe1.Configuracoes.Geral.PathSalvar; if OpenDialog1.Execute then begin ArquivoFormatoXML := TStringList.Create; try ArquivoFormatoXML.LoadFromFile(OpenDialog1.FileName); ArquivoFormatoXML.Text := StringReplace( ArquivoFormatoXML.Text, #10, '', [rfReplaceAll] ) ; ArquivoFormatoXML.Text := StringReplace( ArquivoFormatoXML.Text, #13, '', [rfReplaceAll] ) ; ArquivoFormatoXML.Text := StringReplace( ArquivoFormatoXML.Text, #$D#$A, '', [rfReplaceAll] ) ; if not(NotaUtil.Assinar(ArquivoFormatoXML.Text, ACBrNFe1.Configuracoes.Certificados.GetCertificado , vAssinada, FMsg)) then raise EACBrNFeException.Create('Falha ao assinar'); MemoAssinado.Clear; MemoAssinado.Lines.Add(vAssinada); finally ArquivoFormatoXML.Free; end; end; end; O arquivo a ser assinado deve começar a partir da chave <DIe... até o </DIe>, ou seja, depois de assinar que vc deverá completar o arquivo com as informações de envio, o arquivo anexo está assinado e foi validado com sucesso no site https://www.receita.fazenda.gov.br/Aplicacoes/SSL/ATBHE/assinadoc/ValidadorAssinaturas.app/valida.aspx teste_die.xml -
Valor do Produto difere do produto Valor Unitário (Estranho)
André Ferreira de Moraes replied to elixandre's tópico in ACBrNFe
O campo vUnCom permite até 10 casas decimais. Use mais casas e a diferença será bem menor ou não existira com algum pequeno ajuste no preço. -
Compartilhar Certificado A3 Em Rede
André Ferreira de Moraes replied to rrodrigoffernandes's tópico in ACBrNFe
Sim. Basta trabalhar de uma forma que o ACBrNFeMonitor compreenda os comandos. Abre a unit DoACBrNFeUnit da pasta Projetos\ACBrNFeMonitor\Delphi e estude a melhor forma de adaptar seu sistema. -
Compartilhar Certificado A3 Em Rede
André Ferreira de Moraes replied to rrodrigoffernandes's tópico in ACBrNFe
O ACBrNFeMonitor roda localmente, então vc deve passar o path para um arquivo que exista na máquina. Ex: NFE.ASSINARNFE("c:\ACBrNFeMonitor\Arquivos\Tempo\35140603997115000190550010000121641435364663-NFe.xml") -
Acbrnfemonitor Tcp/ip - Xharbour
André Ferreira de Moraes replied to jorge andrade's tópico in ACBrNFe
Veja -
Acbrnfemonitor Tcp/ip - Xharbour
André Ferreira de Moraes replied to jorge andrade's tópico in ACBrNFe
Todo comando que vou enviar verifico se obtive sucesso ou não. InetSetTimeout( sSOCKET, 3000 ) // Timeout de Envio 3 seg // if inetsendall( sSocket, CMD +'.'+ CR+LF) <= 0 RET_IMP := 'ERRO: Nao foi possivel transmitir dados para o ACBrNFeMonitor|'+; '('+AllTrim(Str(InetErrorCode( sSOCKET )))+') '+; InetErrorDesc( sSOCKET ) + ETX endif E fico aguardando a resposta com a opção do usuário cancelar a espera(alguns comandos podem demorar mais do que outros) //////// Lendo a resposta //////// InetSetTimeout( sSOCKET, 500 ) TINI := Seconds() do while (right(RET_IMP,1) <> ETX) MSG('Aguardando a resposta do ACBrNFeMonitor. Pressione <ESC> para cancelar.') do while ! CANCELOU .and. (right(RET_IMP,1) <> ETX) CANCELOU := ! VER_ESC() BLOCO := space(64) BYTES := inetrecv(sSOCKET, @BLOCO, 64) RET_IMP += left(BLOCO,BYTES) enddo if CANCELOU RET_IMP := 'ERRO: O ACBrNFeMonitor nao esta respondendo.' + ETX endif enddo -
ACBrNFe1.WebServices.EnvEvento.EventoRetorno.TpAmbACBrNFe1.WebServices.EnvEvento.EventoRetorno.verAplic ACBrNFe1.WebServices.EnvEvento.EventoRetorno.cStat ACBrNFe1.WebServices.EnvEvento.EventoRetorno.xMotivo ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.chNFe ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt
-
Erro Ao Assinar Arquivo Xml ( Digest Não Confere )
André Ferreira de Moraes replied to rommaraujo's tópico in ACBrNFe
1-Teste com a versão anterior e veja se o mesmo xml é assinado corretamente. 2-Teste com um XML menor para verificar se com todos acontecem o mesmo problema. 3-Remova quebras de linha. 4-Remova caracteres especiais. 5-Compare um arquivo assinado na versão anterior com a atual. -
Nfc-E - Nota Fiscal Do Consumidor Eletrônica
André Ferreira de Moraes replied to André Ferreira de Moraes's tópico in ACBrNFe
Vc deve usar a versão 3.10 e não 3.0 -
Download De Nfe
André Ferreira de Moraes replied to Thiago FD's tópico in NFe/NFCe - Nota Fiscal Eletrônica
Pelo demo vc consegue reproduzir o erro?- 1 reply
-
- time out
- donwload nfe
- (e 5 mais)
-
Entre em contato com o SEFAZ, provavelmente é um problema na rotina de validação deles, pois o arquivo é validado normalmente no site https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx
-
Acbrnfemonitor Tcp/ip - Xharbour
André Ferreira de Moraes replied to jorge andrade's tópico in ACBrNFe
Mas depois vc chama INetClose e acaba fechando a conexão. Então a cada comando vc abre novamente e dae pode receber alguma resposta q ficou perdida. Eu tenho basicamente 3 funções: NFE_INIT - Postei acima e abre uma conexão TCP e chamo apenas qdo inicializo o sistema. NFE_COMANDO - Uso para enviar os comandos e ler as respostas do ACBrNFeMonitor. NFE_END - Fecha a conexão qdo vou sair do sistema. -
Ainda Sobre O Envio De E-Mail
André Ferreira de Moraes replied to Dércio Luis Zanatta's tópico in ACBrNFe
Eu uso o envio de PDF e funciona normalmente. Teste com o demo e verifique se ocorre o mesmo problema. -
Testei agora e está funcionando.
-
Acbrnfemonitor Tcp/ip - Xharbour
André Ferreira de Moraes replied to jorge andrade's tópico in ACBrNFe
Não sei se entendi direito seu código, mas aparentemente vc abre a conexão para cada comando e ae está o problema.