Controla
Membros Pro-
Total de ítens
23 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Tudo que Controla postou
-
Juliomar, desculpe ter demorado tanto para responder, estou fazendo as alterações para a versão 4.0 e nem abri mais o fórum. Estou enviando os arquivos que alterei, as partes alteradas estão identificadas com "/// inicio alteracao" Estou a disposição para mais detalhes se for necessário Obrigado ACBrMDFeDAEventoRL.pas ACBrMDFeDAMDFeRL.pas
-
Componente TACBrMDFeDAMDFeRL propriedade MostarStatus
um tópico no fórum postou Controla DFe - Documentos Fiscais Eletrônicos
Boa tarde a todos Estou com um projeto que tem que gerar os PDFs de forma automática sem intervenção do usuário, mas quando o sistema vai rodar ele fica mostrando o progresso da geração do PDF mesmo a propriedade MostrarStatus estando setada para False. No componente TACBrMDFeDAMDFeRL a propriedade MostrarStatus não está tendo efeito nenhum, dei uma olhada nos fontes e percebi que a mesma nem é repassada nem ao componente RLReport e nem ao RLFilter, isso tanto na impressão do MDF-e quanto na impressão dos eventos. Fiz uma "pog" aqui pra resolver temporariamente, mas fica a dica pra quem tem mais conhecimento de onde mexer nos fontes para ficar uma alteração consistente. Modifiquei os seguintes arquivos ACBrMDFeDAMDFeRL.pas TfrlDAMDFeRL.Imprimir TfrlDAMDFeRL.SavePDF ACBrMDFeDAEventoRL.pas TfrmMDFeDAEventorl.Imprimir TfrmMDFeDAEventorl.SavePDF -
Boa tarde pessoal Nos testes que fiz em ambiente de homologação foi tudo OK. Em produção só tinha conseguido fazer teste de verificação do status do serviço, e depois que foi corrigidos os endereços dos webservices ficou ok. No entanto hoje quando fui fazer um teste de emissão em produção recebi a rejeição "Endereco do site da UF da consulta via QR-Code diverge do previsto" Dei uma olhada no ACBrNFeSevicos.ini e parece que está ok. Alguém mais passando por isso? Ambiente de Produção - SP
-
Olá Van, se o seu caso for igual ao meu, NFC-e em produção em SP O problema é que no ACBrNFeServicos.ini da pasta ...\Fontes\ACBrDFe\ACBrNFe não contém os endereços dos webservices de produção para a NFC-e de SP, de outros estados não sei te dizer porque não conferi, mas até pode ser o caso. Esses endereços eu peguei no site da Sefaz de SP no meu caso eu adicionei as linhas NfeAutorizacao_4.00=https://nfce.fazenda.sp.gov.br/ws/NFeAutorizacao4.asmx NfeRetAutorizacao_4.00=https://nfce.fazenda.sp.gov.br/ws/NFeRetAutorizacao4.asmx NfeInutilizacao_4.00=https://nfce.fazenda.sp.gov.br/ws/NFeInutilizacao4.asmx NfeConsultaProtocolo_4.00=https://nfce.fazenda.sp.gov.br/ws/NFeConsultaProtocolo4.asmx NfeRecepcaoEvento_4.00=https://nfce.fazenda.sp.gov.br/ws/NFeRecepcaoEvento4.asmx NfeStatusServico_4.00=https://nfce.fazenda.sp.gov.br/ws/NFeStatusServico4.asmx Na chave [NFCe_SP_P] e no teste de verificação de serviço parou o problema, não fiz ainda emissão em produção pois meus clientes que usam ainda não consegui testar neles por causa do movimento, mas acredito que vai dar certo. Não posso afirmar que essa é a solução mais correta pois não sou especialista em ACBr mas "fuçando" aqui acho que o caminho é por ai.
-
bom dia Felipe, obrigado por responder Aqui nos testes eu coloquei os endereços e funcionou, minha dúvida é : porque não foram inseridos no repositório oficial, tem algum motivo específico? Até porque vi várias pessoas com o problema do erro HTTP 500 que é resolvido se os endereços estiverem informados. E quando baixamos e atualizamos o componente está vindo sem os endereços. Será que isso não deveria estar no repositório oficial ?
-
Endereços de Webservices para NFC-e 4.0 em produção SP
um tópico no fórum postou Controla NFC-e - Nota Fiscal do Consumidor Eletrônica
Boa tarde pessoal, me perdoem se o tópico já existe, mas eu não encontrei. Os endereços para NFC-e da chave [NFCe_SP_P] do arquivo ACBrNFeServicos.ini para a versão 4.0 não estão informados, a informação está faltando por algum motivo específico ou esquecimento mesmo ? -
Daniel, você sabe me dizer se tem um fórum específico para o Fortes? O problema não é no ACBr, não vou atrapalhar o andamento do fórum. Agradeço desde já a atenção dispensada.
-
Bom dia Daniel, sim eu uso o extrato SAT do ACBr com o Fortes, mas como eu percebi que o problema não é do ACBr e sim do Fortes, decidi que é melhor atacar o problema na raiz. E posso te afirmar com quase certeza que o o problema não é na borda, mas sim o texto que extrapola o limite que deveria obedecer. No mini projeto para demonstrar o problema eu adicionei um RLDraw1 com a mesma largura do RLMemo e como você poderá observar a borda do RLMemo obedece exatamente o mesmo tamanho do RLDraw, ou seja, a largura do RLMemo está correta. Segue a imagem do projeto na IDE e o resultado da impressão. O problema é relacionado ao código que calcula que o texto deve continuar na linha de baixo já que não irá "caber" dentro da área do componente. erro_report.zip
-
Olá Daniel segue o mini projeto No preview na tela está "quase" correto, mas se imprimir você verá que o texto extrapola a borda, quando deveria ter criado outra linha e jogado para baixo. Se precisar de mais alguma coisa pra testar me avisa. Valeu erro_report.zip
-
Boa tarde amigos, venho expor um problema que tem afetado a impressão do extrato SAT no fortes. Já vi algumas reclamações no fórum, mas nada que tenha uma solução definitiva. Para simular o problema é só colocar um RLReport em um form e depois colocar um RLMemo vou colocar aqui o código do form exemplo, basta copiar e colar em um form object RLReport1: TRLReport Left = 767 Top = 175 Width = 280 Height = 378 Margins.LeftMargin = 2.000000000000000000 Margins.TopMargin = 2.000000000000000000 Margins.RightMargin = 2.000000000000000000 Margins.BottomMargin = 9.000000000000000000 Font.Charset = DEFAULT_CHARSET Font.Color = clBlack Font.Height = -13 Font.Name = 'Arial' Font.Style = [] PageSetup.PaperSize = fpCustom PageSetup.PaperWidth = 74.000000000000000000 PageSetup.PaperHeight = 100.000000000000000000 PrintDialog = False ShowProgress = False object RLMemo1: TRLMemo Left = 26 Top = 51 Width = 227 Height = 34 Behavior = [beSiteExpander] Borders.Sides = sdCustom Borders.DrawLeft = True Borders.DrawTop = True Borders.DrawRight = True Borders.DrawBottom = True Font.Charset = ANSI_CHARSET Font.Color = clBlack Font.Height = -12 Font.Name = 'Arial' Font.Style = [fsBold] Lines.Strings = ( 'R DOUTOR JOSE NEUBERT DE OLIVEIRA 9999 - B RECREIO SAO JUDAS TAD' + 'EU') ParentFont = False end end Nas imagens vocês podem ver o problema da impressão, já tentei achar uma solução olhando os fontes do fortes, mas o máximo que consegui foi chegar na conclusão que o problema está na hora de fazer o cálculo de limite disponível para a linha para fazer o wordwrap, eu acho que esta relacionado com a função CanvasTextWidth do arquivo RLReport.pas. Não sei se tem algo relacionado a diferença de pixels por polegada video x impressora. Pessoal, confesso que já fiquei tonto de tanto olhar este código, mas não consegui evoluir. Peço a ajuda de vocês para que juntos possamos resolver este bug do fortes, pois ele afeta tudo que utilizar o RLMemo e fizer o wordwrap. Só lembrando que nem sempre o problema é observado, isso depende do texto que deve ser impresso, por isso já coloquei um caso em que o problema ocorre. Muito obrigado pessoal, espero que tenha conseguido expor com clareza a situação. Abraço a todos Fabricio
-
Daniel, só pra constar, pode ajudar alguém. Descobri que o erro ocorre quando o ACBrNFe1.SSL.SSLType := LT_all alterei para LT_TLSv1_2 ai funciona tudo OK.
-
Acho que vou fazer um RTA "Recurso Tecnológico Alternativo" até termos uma solução definitiva. Vou deixar o código assim: procedure SetCertContextPassword(ACertContext: PCCERT_CONTEXT; APass: AnsiString); var dwKeySpec: DWORD; pfCallerFreeProv: LongBool; Ret: Longint; ProviderOrKeyHandle: HCRYPTPROV_OR_NCRYPT_KEY_HANDLE; procedure CheckPINError(WinErro: DWORD = 0); begin if WinErro = 0 then WinErro := GetLastError; if (WinErro = 0) or (WinErro = ERROR_NO_TOKEN) then Exit; if WinErro = SCARD_W_WRONG_CHV then raise EACBrDFeWrongPINException.Create('O cartão não pode ser acessado porque o PIN errado foi apresentado.') else if WinErro = SCARD_W_CHV_BLOCKED then raise EACBrDFeWrongPINException.Create('O cartão não pode ser acessado porque o número máximo de tentativas de entrada de PIN foi atingido') else raise EACBrDFeException.Create('Falha ao Definir PIN do Certificado. Erro: '+GetLastErrorAsHexaStr(WinErro)); end; begin ProviderOrKeyHandle := 0; dwKeySpec := 0; pfCallerFreeProv := False; // Obtendo o Contexto do Provedor de Criptografia do Certificado // if not CryptAcquireCertificatePrivateKey( ACertContext, CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG, Nil, ProviderOrKeyHandle, dwKeySpec, pfCallerFreeProv) then raise EACBrDFeException.Create( MsgErroGetCryptProvider ); try if dwKeySpec = CERT_NCRYPT_KEY_SPEC then begin if not GetCNGProviderIsHardware(ProviderOrKeyHandle) then Exit; Ret := NCryptSetProperty( ProviderOrKeyHandle, // Não testado... NCRYPT_PIN_PROPERTY, PBYTE(APass), Length(APass)+1, 0); CheckPINError(Ret); end else begin if not GetCSPProviderIsHardware(ProviderOrKeyHandle) then Exit; if CryptSetProvParam(ProviderOrKeyHandle, PP_KEYEXCHANGE_PIN, PBYTE(APass), 0) then CheckPINError(); CryptSetProvParam(ProviderOrKeyHandle, PP_SIGNATURE_PIN, PBYTE(APass), 0); // <- DEIXEI A LINHA DESTE JEITO SEM TESTES DE ERRO // if not CryptSetProvParam(ProviderOrKeyHandle, PP_SIGNATURE_PIN, PBYTE(APass), 0) then // <- ANTES ERA ASSIM // CheckPINError(); end; finally if pfCallerFreeProv then CryptReleaseContext(ProviderOrKeyHandle, 0); end; end; Desta forma o comportamento obtido está sendo o seguinte: Se o certificado não for encontrado mostra a mensagem: Certificado "xxxxxx" não encontrado! Se o PIN informado estiver incorreto ele abre a tela de digitação do PIN, lembrando que já foi utilizada uma tentativa. Sei que desta forma estou ignorando erros que possam ocorer, mas nos teste aqui dá pra funcionar legal. Este comportamento acontece com o certificado que usa o Oberthur, já com o certificado que usa o SafeSing o problema não acontece. Não gosto de remendos no código, mas por hora acho que será o jeito. O que vocês acham ?
-
Daniel é exatamente esta, segue print da tela do erro. Att Fabricio
-
a exception dispara esta linha raise EACBrDFeException.Create('Falha ao Definir PIN do Certificado. Erro: '+GetLastErrorAsHexaStr(WinErro));
-
Daniel boa tarde eu também estou passando pelo mesmo problema como você sugeriu verificar onde ocorre o erro eu debuguei aqui e o erro é chamado nesta linha if not CryptSetProvParam(ProviderOrKeyHandle, PP_SIGNATURE_PIN, PBYTE(APass), 0) then CheckPINError(); da mesma maneira como disse o BILLI579 o erro acontece uma vez, se chamar o código novamente funciona normal.
-
Novo Pacote De Impressão Para Acbrsat, Usando Fortesreport
Controla replied to Daniel Simoes's tópico in ACBrSAT
Daniel, a impressão do extrato com mais de 80 itens corta por volta do item número 74. Realizei o teste com uma Epson TM-T20 e também com uma Daruma DR700, e obtive o mesmo resultado nas duas. Existe algum macete para imprimir cupons com muitos itens, como é no caso de mercados? Obrigado. Fabricio