Ir para conteúdo
  • Cadastre-se

karlusheidrich

Membros
  • Total de ítens

    75
  • Registro em

  • Última visita

Tudo que karlusheidrich postou

  1. Olá. Estou tentando mandar e-mail com o componente ACBr mas ocorre um erro quando vou envia-lo: First chance exception at $76D6FBAE. Exception class EAccessViolation with message 'Access violation at address 614D6567. Write of address 614D6567'. Process xxxxxxxxxx.exe (3608) Em anexo segue o print no Delphi. Acredito que o erro ocorre por que o Create do StreamNFE está sendo passado em branco(Circulei em vermelho) Creio que ali deva ser passado alguma coisa. O sistema para na linha 289 "SaveToStream(StreamNFE);" Desde ja agradeço a ajuda...
  2. Resolvi o problema. Basta reiniciar o PC que tudo volta ao normal.
  3. Olá. Desenvolvi um sistema que gera as remessas de cobrança para Banco do Brasil, que enclusive já foi homologado pelo banco. No meu servidor funciona perfeito, porem quando ponho nas máquinas do meu cliente o sistema não gera o arquivo e não da mensagem de erro. Isso já aconteceu pra alguém? O que fizeram pra consertar? Estou usando Windows 7 (32/64 bits) nas máquinas e Firebird 2.1.3. Desenvolvi o sistema em Delphi 2010. Desde já agradeço a ajuda.
  4. Olá Descobri que meu problema com a remessa do Banco do Brasil CNAB240 aconteceu devido a diversos bugs no arquivo ACBrBancoBrasil.pas. A grande maioria deles eu consegui contornar alterando o fonte. Mas tem alguns que fogem ao meu alcance. Vou listar abaixo os problemas que encontrei para uma nova atualização do componente. Linha 354: Alterei ela e deixei desse jeito: IntToStrZero(2 * (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo)+ 1) - 1, 5) + //9 a 13 - Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q) Linha 403: Deixei ela desse jeito: IntToStrZero(2 * (ACBrBoleto.ListadeBoletos.IndexOf(ACBrTitulo) + 1), 5) + //Número seqüencial do registro no lote - Cada título tem 2 registros (P e Q) Linha 120: Nosso número na carteira 11 possui 20 caracteres que devem ser prenchidos com zeros('00000000000000000000') ANossoNumero := padR(ANossoNumero, 20, '0'); //ANossoNumero := padR(AConvenio, 7, '0')+ padR(ANossoNumero, 11, '0'); Linha 221 e 259: Erro grave! Esta sendo atribuido o Código do Cedente no campo que deveria receber o Convênio padR(CodigoCedente, 9, '0') + '0014' + //33 a 45 - Código do convênio no banco [ Alterado conforme instruções da CSO Brasília ] 27-07-09 Linha 364: O erro que me fez gritar "NÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃOOOOOOOOOO!!!!!!!!!!!!!!!!!" quando percebi o que estava de errado com o tipo de cobrança: Ele está fixo no fonte! '1' + //58 - Cobrança Simples Tenho um cliente que precisa alterar esse campo. As vezes ele usa '1' para Cobrança Simples e as vezes precisa usar '4' para Cobrança Descontada. Se o ACBrBoleto possuir essa propriedade facilitaria bastante. Do jeito que está hoje, precisaria fazer uma gambi pra resolver o problema. Outro problema que me chamou a atenção é que tem varios "campos" do layout fixos no fonte. Gostaria de poder ajudar os colegas desenvolvedores do ACBr a melhorar esse poderoso componente. Se essas altereção que mencionei forem inseridas no fonte de uma nova versão, gostaria de ser comunicado para poder atualizar os fontes do meu componente. Gostaria de saber como faço pra ajudar a desenvolver os componentes? Desde já agradeço a ajuda.
  5. Olá! Estou tentando homologar a remessa para o Banco do Brasil e não estou conseguindo. Estou tendo dificuldades na configuração do componente ACBRBoleto. Segue abaixo o fonte que uso pra gerar a remessa: procedure TGerArquivosBanco.btnGerarClick(Sender: TObject); var Titulo: TACBrTitulo; begin case TfrmMsg.Msg('Confirmação', 'Tem certeza que deseja gerar o arquivo de remessa?', imPergunta, [mbSim, mbNao]) of 1: Abort; end; try cdsContasReceber2.Filtered := True; btnGerar.Enabled := False; ACBrBoleto.ListadeBoletos.Clear; ConfiguraBanco; while not cdsContasReceber2.Eof do begin Titulo := ACBrBoleto.CriarTituloNaLista; with Titulo do begin //LocalPagamento := 'Pagar preferêncialmente nas agências do Bradesco'; //MEnsagem exigida pelo bradesco Vencimento := cdsContasReceber2DATA_VENCIMENTO.AsDateTime; DataDocumento := cdsContasReceber2DATA_EMISSAO.AsDateTime; NumeroDocumento := cdsContasReceber2DOCUMENTO.AsString; EspecieDoc := '02'; if cbAceite.EditValue = 'atSim' then Aceite := atSim else Aceite := atNao; DataProcessamento := Now; NossoNumero := '0000000000'; Carteira := '11/019'; ValorDocumento := cdsContasReceber2VALOR_ABERTO.AsCurrency; Sacado.NomeSacado := cdsContasReceber2SACADO_NOME.AsString; Sacado.CNPJCPF := cdsContasReceber2SACADO_CNPJCPF.AsString; Sacado.Logradouro := cdsContasReceber2SACADO_LOGRADOURO.AsString; Sacado.Numero := cdsContasReceber2SACADO_NUMERO.AsString; Sacado.Bairro := cdsContasReceber2SACADO_BAIRRO.AsString; Sacado.Cidade := cdsContasReceber2SACADO_NOME_MUNICIPIO.AsString; Sacado.UF := cdsContasReceber2SACADO_UF.AsString; Sacado.CEP := cdsContasReceber2SACADO_CEP.AsString; //ValorAbatimento := 10; //DataAbatimento := Vencimento-5; Instrucao1 := '00'; Instrucao2 := '00'; ACBrBoleto.AdicionarMensagensPadroes(Titulo, Mensagem); end; cdsContasReceber2.Next; end; ACBrBoleto.GerarRemessa(1); TfrmMsg.Msg('Concluido!', 'Arquivo gerado com sucesso!', imInformacao, [mbOk]); finally cdsContasReceber2.Filtered := False; btnGerar.Enabled := True; end; Abaixo segue a função ConfiguraBanco da listagem acima: procedure TGerArquivosBanco.ConfiguraBanco; begin if UpperCase(cdsBancosNOME_FANTASIA.AsString) = 'BANCO DO BRASIL' then ACBrBoleto.Banco.TipoCobranca := cobBancoDoBrasil else if UpperCase(cdsBancosNOME_FANTASIA.AsString) = 'BANRISUL' then ACBrBoleto.Banco.TipoCobranca := cobBanrisul; ACBrBoleto.Cedente.Nome := cdsContasReceber2NOME_FANTASIA.AsString; ACBrBoleto.Cedente.Conta := cdsBancosCONTA.AsString; ACBrBoleto.Cedente.ContaDigito := cdsBancosCONTA_DIGITO.AsString; ACBrBoleto.Cedente.Agencia := cdsBancosAGENCIA.AsString; ACBrBoleto.Cedente.AgenciaDigito := cdsBancosAGENCIA_DIGITO.AsString; ACBrBoleto.Cedente.CodigoCedente := cdsBancosNRO_CEDENTE.AsString; //ACBrBoleto.Cedente.Convenio := cdsBancosCONVENIO.AsString; ACBrBoleto.Cedente.CNPJCPF := 'xxxxxxxxxxxxxx'; ACBrBoleto.Cedente.Nome := 'XXXXXXXXXXXXXXXXXXXXXX'; ACBrBoleto.Cedente.TipoInscricao := pJuridica; ACBrBoleto.DataArquivo := Date; end; No componente apenas alterei apenas as propriedades ACBRBoleto.LayoutRemessa, ACBRBoleto.Cedente.TipoInscricao, ACBRBoleto.Cedente.ResponEmissao e ACBRBoleto.Banco.TipoCobranca. Por favor me ajudem. Ja mandei 5 arquivos pra homologar e todos voltaram com os mesmos erros. Desde já, agradeço a atenção.
  6. Olá! Fiz a minha nota eletrônica usando o ACBR e funciona perfeitamente. Porem, depois de transmitir umas 3, 4 notas o sistema simplesmente para de transmitir e retorna mensagem de retorno em branco. Ai preciso fechar meu sistema e abri-lo novamente para continuar emitindo as notas. Acredito que deva estar faltando algum comando no fonte que evite esse problema Estou usando Delphi 2010, ACBR, Firebird 2.1.3, e certificado A3. Segue o código abaixo procedure TLanNotasSaida.btnTransmitirClick(Sender: TObject); begin try case TfrmMsg.Msg('Confirmacao', 'Tem certeza que deseja transmitir essa nota?', imPergunta, [mbNao, mbSim]) of 1: Abort; end; cxProgressBar.Visible := True; Application.ProcessMessages; if cdsNotasSaidaDATA_EMISSAO.AsDateTime <> Date then begin cdsNotasSaida.Edit; cdsNotasSaidaDATA_EMISSAO.AsDateTime := Date; cdsNotasSaida.Post; end; if ((cdsNotasSaidaDATA_SAIDA_ENTRADA.AsDateTime > 0) and (cdsNotasSaidaDATA_SAIDA_ENTRADA.AsDateTime < Date)) then begin cdsNotasSaida.Edit; cdsNotasSaidaDATA_SAIDA_ENTRADA.AsDateTime := Date; cdsNotasSaida.Post; end; case TfrmMsg.Msg('Confirmação', 'Deseja imprimir a hora de saída na nota?', imPergunta, [mbNao, mbSim]) of 2: begin if cdsNotasSaidaHORA_SAIDA_ENTRADA.IsNull then begin cdsNotasSaida.Edit; cdsNotasSaidaHORA_SAIDA_ENTRADA.AsDateTime := TimeOf(Now); cdsNotasSaida.Post; end; end; 1: begin if not(cdsNotasSaidaHORA_SAIDA_ENTRADA.IsNull) then begin cdsNotasSaida.Edit; cdsNotasSaidaHORA_SAIDA_ENTRADA.Clear; cdsNotasSaida.Post; end; end; end; ConfiguraACBR_NFE; AlimentaACBR_NFE; try ACBrNFe.Enviar(1, False); except on E: Exception do begin if Pos('Certificado Digital não encontrado!', E.Message) > 0 then begin TfrmMsg.Msg('Erro no envio', 'Certificado digital não encontrado.', imErro, [mbOk]); Abort; end; ACBrNFe.WebServices.Retorno.Executar; TfrmMsg.Msg('Erro no envio', E.Message, imErro, [mbOk]); TfrmMsg.Msg('Erro no envio', Copy(ACBrNFe.WebServices.Retorno.RetWS, Pos('', ACBrNFe.WebServices.Retorno.RetWS) + 17, Length(ACBrNFe.WebServices.Retorno.RetWS) - 1), imErro, [mbOk]); Abort; end; end; TfrmMsg.Msg('Retorno do envio', ACBrNFe.WebServices.Retorno.Msg, imInformacao, [mbOk]); if ACBrNFe.WebServices.Retorno.Protocolo > '' then begin cdsNotasSaida.Edit; cdsNotasSaidaNUMERO_PROTOCOLO.AsString := ACBrNFe.WebServices.Retorno.Protocolo; cdsNotasSaidaDATA_AUTORIZACAO.AsDateTime := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].dhRecbto; cdsNotasSaida.Post; ACBrNFe.NotasFiscais.Imprimir; ACBrNFe.NotasFiscais.ImprimirPDF; EnviarEmailXML; end; finally cxProgressBar.Visible := False; end; end; Desde já agradeço a ajuda.
  7. karlusheidrich

    Atualização ACBr

    Olá. Uma dúvida simples e rápida de responder: Depois de atualizar o ACBr, é preciso recompilar todos os componentes do ACBr? O que exatamente preciso fazer depois de atualizar o ACBr?
  8. Olá, estou tentando instalar o componente do DANFE para Fortes Report(ACBrNFeDanfeRLpkg.dproj) e não estou conseguindo. Ocorre o seguinte erro: Checking project dependencies... Compiling ACBrNFeDanfeRLpkg.dproj (Debug configuration) [DCC Error] pcnCCeNFe.pas(169): E2003 Undeclared identifier: 'tlCCeNFe' [DCC Fatal Error] ACBrNFe.pas(51): F2063 Could not compile used unit 'pcnCCeNFe.pas' Failed Elapsed time: 00:00:00.5 Estou usando Delphi 2010, e a versão do ACBr é 2547. O Fortes Report que instalei é o 3.70B VCL. Estou usando Windows Server 2008 Datacenter SP2 Atualmente estou usando o DANFE em Quick Report, mas descobri que com o Quick Report não consigo imprimir a descrição complementar dos produtos na nota, e me falaram que com o Fortes Report é possível imprimir essa informação. O que posso estar fazendo de errado?
  9. Colegas!!!! Acabo de descobrir o problema do A3!!!!!! \o/\o/\o/ :D Basta você não passar a SENHA do certificado para o componente!!!!!!!!!!!!!!!!!!!!!! :ugeek: Deixem a senha em branco no componente ACBrNFe, apenas passe o número serial do certificado. Quando você for usar pela primeira vez, o programa instalado junto com o certificado vai te pedir a senha apenas uma vez e já era.
  10. Colegas!!!! Acabo de descobrir o problema do A3!!!!!! \o/\o/\o/ Basta você não passar a SENHA do certificado para o componente!!!!!!!!!!!!!!!!!!!!!! Deixem a senha em branco no componente ACBrNFe, apenas passe o número serial do certificado. Quando você for usar pela primeira vez, o programa instalado junto com o certificado vai te pedir a senha apenas uma vez e já era.
  11. Estou com o mesmo problema do amigo CunhaJr. Tem sistema instalado em Windows 7 32 e em 64bits, com Firebird 2.1.3 e Delphi 2010. Com certificado A1 funciona que é uma beleza, mas com A3 dá erro e a menssagem de erro vem em branco. Já fiz esses passos que os colegas falaram e nada feito. Já to desesperado e quase mandando o cliente comprar um A1. Por favor, ajudem... Desde já agradeço.
  12. Essa é a mensagem que o Debug do Delphi me retorna quando tento transmitir a NFe: Debugger Exception Notification --------------------------- raised exception class EACBrNFeException with message ''. --------------------------- Bem intuitiva, não?! function TWebServices.Envia(ALote: String): Boolean; begin //retirado por recomendação do documento disponível em http://www.nfe.fazenda.gov.br/PORTAL/docs/Consumo_Indevido_Aplicacao_Cliente_v1.00.pdf { if not(Self.StatusServico.Executar) then begin if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then TACBrNFe( FACBrNFe ).OnGerarLog(Self.StatusServico.Msg); raise EACBrNFeException.Create(Self.StatusServico.Msg); end; } self.Enviar.FLote := ALote; if not(Self.Enviar.Executar) then begin if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then TACBrNFe( FACBrNFe ).OnGerarLog(Self.Enviar.Msg); raise EACBrNFeException.Create(Self.Enviar.Msg); end; 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); ///// É AQUI QUE O SISTEMA PARA end; Result := true; end; Tem diferença no uso do componente entre certificado A1 e A3???? Com um certificado A1 de um cliente funciona perfeito, mas com certificado A3 de OUTRO CLIENTE não funciona. O que pode estar errado? É como se ele enviasse para a receita e não conseguisse pegar o retorno. Por favor me ajudem. Ainda sou usuário "mané" nos componentes ACBr
  13. Coloquei todas junto com o EXE (capicom.dll, msxml5.dll, msxml5r.dll, ssleay32.dll, libeay32.dll), e executei o Instala.bat do Capicom.
  14. Cara, segui sua dica e continua não funcionando. Transmitir não consigo. Consultar só consigo 1 vez, depois a mensagem de retorno da consulta vem em branco, ai é preciso fechar e abrir novamente o sistema. ConfiguraACBR_NFE; //Configuro o ACBRNfe AlimentaACBR_NFE; //Jogo os dados da nota no componente try ACBrNFe.Enviar(1, False); except on E: Exception do begin if Pos('Certificado Digital não encontrado!', E.Message) > 0 then begin TfrmMsg.Msg('Erro no envio', 'Certificado digital não encontrado.', imErro, [mbOk]); Abort; end; TfrmMsg.Msg('Erro no envio', E.Message, imErro, [mbOk]); Abort; end; end; Mesmo com o código acima, o erro não aparece pra mim. Onde é que estou errando?
  15. Olá! Estou com um grande problema com o componente ACBRNFe Desenvolvi o sistema de emissão de notas, que funciona perfeitamente no servidor de desenvolvimento, mas na hora de largar para o meu cliente usar, o sistema não transmite a nota. O componente retorna um erro e a mensagem de retorno vem em branco. Outro detalhe é que ele permite consultar uma chave no SEFAZ, e mostra o retorno certinho, mas quando é pra transmitir não vai. Algumas perguntas que vem a mente são: 1- Preciso instalar mais alguma coisa, além do certificado? 2- Preciso de alguma DLL junto com o sistema? 3- O número de série do certificado deve estar UPPERCASE, lowercase ou NoRmAl? 4- Tem diferença(para o componente) entre certificados A1 e A3? Tipo, é preciso fazer alguma alteração nas propriedades do componente? 5- Qual a manezise que estou fazendo pra funcionar num PC e em outro não? Desde já agradeço a atenção de todos
  16. Amigo, eu gero a chave dentro do banco de dados mesmo. Criei uma stored procedure onde passo os campos necessários para formar a chave e ela me retorna a chave incluindo o digito verificador. Chamo essa stored procedure dentro de um trigger de before insert or update da tabela "cabeçalho da nota". Nunca tive problemas. Eu uso Firebird 2.1 de banco. Segue abaixo a Stored Procedure e a Trigger se você quizer usa-las. CREATE PROCEDURE SP_GERA_CHAVE_NFE ( COD_UF INTEGER NOT NULL, EMISSAO DATE NOT NULL, CNPJ CHAR(18) NOT NULL COLLATE PT_BR, SERIE INTEGER NOT NULL, NUMERO INTEGER NOT NULL, CODIGO INTEGER NOT NULL, MODELO INTEGER NOT NULL, FORMAEMISSAO INTEGER NOT NULL) RETURNS ( CHAVE VARCHAR(44) COLLATE PT_BR) AS DECLARE VARIABLE XUF CHAR(2) COLLATE PT_BR; DECLARE VARIABLE XDATAEMISSAO CHAR(4) COLLATE PT_BR; DECLARE VARIABLE XMODELO CHAR(2) COLLATE PT_BR; DECLARE VARIABLE XSERIE CHAR(3) COLLATE PT_BR; DECLARE VARIABLE XNUMERO CHAR(9) COLLATE PT_BR; DECLARE VARIABLE XCODIGO CHAR(9) COLLATE PT_BR; DECLARE VARIABLE XCNPJ VARCHAR(18) COLLATE PT_BR; DECLARE VARIABLE XFORMAEMISSAO CHAR(1) COLLATE PT_BR; DECLARE VARIABLE SOMA INTEGER; DECLARE VARIABLE K INTEGER; DECLARE VARIABLE CONTADOR INTEGER; DECLARE VARIABLE VALOR INTEGER; BEGIN XUF = LPAD(COD_UF, 2, '0'); XDATAEMISSAO = SUBSTRING(EXTRACT(YEAR FROM EMISSAO) FROM 3 FOR 2) || LPAD(EXTRACT(MONTH FROM EMISSAO),2,'0'); -- LIMPA O CNPJ XCNPJ = REPLACE(CNPJ,'.',''); XCNPJ = REPLACE(XCNPJ,'/',''); XCNPJ = LPAD(REPLACE(XCNPJ,'-',''),14,'0'); XMODELO = LPAD(MODELO, 2, '0'); XSERIE = LPAD(SERIE, 3, '0'); XNUMERO = LPAD(NUMERO, 9, '0'); XFORMAEMISSAO = LPAD(FORMAEMISSAO, 1, '0'); XCODIGO = LPAD(CODIGO, 8, '0'); CHAVE = TRIM(XUF || XDATAEMISSAO || XCNPJ || XMODELO || XSERIE || XNUMERO || XFORMAEMISSAO || XCODIGO); -- MODULO 11 K = 2; SOMA = 0; CONTADOR = 43; WHILE (CONTADOR <> 0) DO BEGIN IF (K > 9) THEN K = 2; VALOR = SUBSTRING(CHAVE FROM CONTADOR FOR 1); SOMA = SOMA + (VALOR * K); CONTADOR = CONTADOR - 1; K = K + 1; END SOMA = MOD(SOMA, 11); SOMA = (11 - SOMA); IF (SOMA > 9) THEN SOMA = 0; CHAVE = CHAVE || SOMA; END CREATE OR ALTER TRIGGER NOTAS_SAIDA_BIU0 FOR NOTAS_SAIDA ACTIVE BEFORE INSERT OR UPDATE POSITION 0 AS BEGIN EXECUTE PROCEDURE SP_GERA_CHAVE_NFE(NEW.COD_UF_EMITENTE, NEW.DATA_EMISSAO, NEW.CNPJ_CPF_EMITENTE, NEW.SERIE_DOC_FISCAL, NEW.NUMERO_NOTA, NEW.COD_NUMERICO_CHAVE_ACESSO, NEW.COD_MODELO_DOC_FISCAL, NEW.TIPO_EMISSAO_NFE) RETURNING_VALUES NEW.CHAVE_NFE; NEW.DIGITO_VERIFICADOR_CHAVE = SUBSTRING(NEW.CHAVE_NFE FROM 44 FOR 1); END
  17. Obrigado pelas dicas. Estou tentando instalar o ACBRDanfeFRpkg.dpk mas não estou conseguindo. O Fortes Report eu já instalei, falta o componente da ACBR. Está dando o segunte erro: [DCC Fatal Error] ACBr_NFe2.dpk(88): F2039 Could not create output file 'C:\Users\Public\Documents\RAD Studio\7.0\Bpl\PCN2.bpl'. Já verifiquei e essa bpl existe no local mencionado. Estou usando Delphi 2010. Grato pela atenção.
  18. Olá! Existe algum outro componente que eu possa utilizar que possua essa opção? Se possível, teria como me postar o link pra download? Grato pela atenção.
  19. Olá! Quando mando visualizar a DANFE antes de protocolar a nota ou até mesmo depois, a mesma não exibe o campo descrição complementar dos produtos(infAdProd). Acredito que seja apenas a falta de um "TRUE/FALSE" em alguma propriedade do ACBRNFE ou DANFE, mas não encontrei a mesma. Se alguém já teve esse problema por favor me ajude. Grato pela ajuda.
  20. Bah cara!!!! Valeu mesmo!!!! Essa sua dica resolveu meu problema. Só não tá exibindo a opção pra exportar pra PDF como você disse, mas isso é o de menos. Valeu mesmo!
  21. Não alterei nada nos fontes do componente. Apenas instalei.
  22. Olá! Estou com um problema na exibição do DANFE. Quando chamo o preview da nota pelo componente ACBRNfe, o mesmo aparece com um tamanho reduzido, não aparece a tela cheia com a nota. Gostaria de poder ver o preview em tela cheia sem precisar precionar o "quadradinho" de maximizar. Existe algum comando pra isso? Seguem abaixo anexos exemplificando o que acontece e o que quero fazer. Estou usando Delphi 2010, QuickReport e ACBRNfe2. procedure TLanNotasSaida.btnImprimirClick(Sender: TObject); begin ConfiguraACBR_NFE; AlimentaACBR_NFE; ACBrNFe.NotasFiscais.Imprimir; end;
×
×
  • 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.