Ir para conteúdo
  • Cadastre-se

Pesquisar na Comunidade

Showing results for tags 'ACBRPAF'.

  • Search By Tags

    Digite tags separadas por vírgulas
  • Search By Author

Tipo de Conteúdo


Fóruns

  • Fórum Aberto - ACBr
    • Notícias do ACBr
    • Equipamentos testados
    • Base de Conhecimento
    • Dúvidas Gerais sobre o ACBr
    • ACBrSerial
    • ACBrSAT
    • ACBrNFe
    • ACBrDFe
    • Dúvidas sobre TEF
    • Dúvidas sobre PIX
    • ACBrMonitor PLUS
    • ACBrTXT
    • ACBrBoleto
    • ACBrDiversos
    • ACBrTCP
    • ACBrFramework
    • ACBrLIB
  • ACBr Pro
    • Dúvidas gerais
    • Duvidas Privadas
    • ACBrMonitorPLUS
    • NFe/NFCe - Nota Fiscal Eletrônica
    • DFe - Documentos Fiscais Eletrônicos
    • SAT / MFE
    • TEF
    • Boleto
    • ACBrSPED
    • ACBrTXT
    • Paf-ECF
    • Requisitos Fiscais por UF
    • ACBrLIB
  • Outros Assuntos
    • Boteco do ACBr
    • Legislação Fiscal e Tributária
    • Object Pascal - Delphi & Lazarus
    • Banco de Dados
    • Classificados
    • Dúvidas não relacionadas ao ACBr

Categorias

  • ACBr Pro
    • ACBrLib - PRO
    • ACBrMonitorPLUS - PRO
    • Utilitários - PRO
    • Dia do ACBr 1a edição
    • Dia do ACBr 2a edição
    • ACBrLib Android - Pro
  • Download Livre
    • ACBrLib - DEMO
    • ACBrMonitorPLUS - DEMO
    • Demos / Testes / Utilitários
    • Apresentações - Palestras
    • ACBrLib Android - Demo

Calendários

  • Eventos - Palestras - Webinars
  • Prazos SEFAZ
  • Calendário da Comunidade
  • ACBr Papo Pro
  • Feriados Nacionais

Find results in...

Find results that contain...


Data de Criação

  • Início

    End


Data de Atualização

  • Início

    End


Filter by number of...

Data de Registro

  • Início

    End


Grupo


Website URL

Encontrado 10 registros

  1. Pessoal, estou precisando de uma ajuda de vocês, Assistindo o vídeo do nosso ilustre @Régys Silveira (https://regys.com.br/video-como-transformar-seu-aplicativo-paf-ecf-em-sat-ou-nfc-e-com-alguns-cliques/) tentei sem sucesso converter meu PAF-ECF para o SAT. Peguei várias informações pelo DEMO SAT Teste, e funciona com o emulador. Quando vou aplica ao meu projeto a situação explicada no vídeo do Régys o componente acho que ainda "pensa" que deve usar a porta serial, pois fica dando erro de "error 5: Acesso Negado". O esquema no meu DATAMODULE está como a imagem em anexo. Na inicialização do meu PDV, vou tentar mostrar o que é feito em sequencia. //INICIALIZAÇÃO try ConfiguraACBr; if FDataModule.Configuracao.ModeloFiscal='SAT' then begin ConfigurarSATACBR; end; PrepararImpressoraESCPOS; FDataModule.ACBrECF.Ativar; except on E:Exception do begin MensagemDialogo('ERRO AO CONFIGURAR COMPONENTE FISCAL'+#13+#10+e.ToString, tmsgErro); Close; end; end; procedure TfrmPDV.ConfiguraACBr; var i: Integer; begin try try if FDataModule.Configuracao.ModeloFiscal<>'' then begin TConstantes.SystemECFativada:=true; if FDataModule.Configuracao.ModeloFiscal='NAOFISCAL' then FDataModule.ACBrECF.ECFVirtual := FDataModule.acbrVirNaoFiscSystem; if FDataModule.Configuracao.ModeloFiscal = 'NFCE' then FDataModule.ACBrECF.ECFVirtual := FDataModule.acbrVNFCEsystem; if FDataModule.Configuracao.ModeloFiscal = 'SAT' then FDataModule.ACBrECF.ECFVirtual := FDataModule.acbrVSATsystem; if FDataModule.Configuracao.ModeloFiscal = 'MFE' then FDataModule.ACBrECF.ECFVirtual := FDataModule.acbrVSATmfe; FDataModule.ACBrECF.Modelo := ecfECFVirtual; end; except on e:exception do begin Exception.RaiseOuterException( Exception.Create('[TFCaixa.ConfiguraACBr]')); end; end; finally end; end; procedure TfrmPDV.ConfigurarSATACBR; Var ArqINI : String ; INI : TIniFile ; begin ArqINI := Constantes.TConstantes.gsAppPath + ChangeFileExt( ExtractFileName( Application.ExeName ),'') ; ArqINI := ArqINI + '.SAT.config.ini'; try try if not FileExists(ArqINI) then raise Exception.Create('Arquivo de configuração SAT não existe!'); INI := TIniFile.Create(ArqINI); with FDataModule.acbrSATsystem do begin Modelo := TACBrSATModelo( INI.ReadInteger('SAT','Modelo',0) ); ArqLOG := INI.ReadString('SAT','ArqLog','ACBrSAT.log'); NomeDLL := INI.ReadString('SAT','NomeDLL','C:\SAT\SAT.DLL'); Config.ide_numeroCaixa := FDataModule.Configuracao.CaixaVO.CODIGO_CAIXA; Config.ide_tpAmb := TpcnTipoAmbiente(INI.ReadInteger('SAT','Ambiente',1)); Config.ide_CNPJ := INI.ReadString('SwH','CNPJ','11111111111111'); Config.emit_CNPJ := FDataModule.Licenciado.Cnpj; Config.emit_IE := FDataModule.Licenciado.InscricaoEstadual; Config.emit_IM := FDataModule.Licenciado.InscricaoMunicipal; Config.emit_cRegTrib := TpcnRegTrib( strtoint( FDataModule.Licenciado.TipoRegime) ) ; Config.emit_cRegTribISSQN := TpcnRegTribISSQN( FDataModule.Licenciado.TIPO_REGIME_SSQN ) ; Config.emit_indRatISSQN := TpcnindRatISSQN( FDataModule.Licenciado.IND_RAT_ISSQN ) ; Config.PaginaDeCodigo := INI.ReadInteger('SAT','PaginaDeCodigo',0);; Config.EhUTF8 := INI.ReadBool('SAT','UTF8', False); Config.infCFe_versaoDadosEnt := INI.ReadFloat('SAT','versaoDadosEnt', cversaoDadosEnt); ConfigArquivos.SalvarCFe := INI.ReadBool('SAT','SalvarCFe', True); ConfigArquivos.SalvarCFeCanc := INI.ReadBool('SAT','SalvarCFeCanc', True); ConfigArquivos.SalvarEnvio := INI.ReadBool('SAT','SalvarEnvio', True); ConfigArquivos.SepararPorCNPJ := INI.ReadBool('SAT','SepararPorCNPJ', True); ConfigArquivos.SepararPorMes := INI.ReadBool('SAT','SepararPorMES', True); end except on e:exception do Exception.RaiseOuterException( Exception.Create('[Erro Configurando SAT]')); end; finally INI.Free ; end; end ; procedure TfrmPDV.PrepararImpressoraESCPOS; Var ArqINI : String ; INI : TIniFile ; begin try try ArqINI := Constantes.TConstantes.gsAppPath + ChangeFileExt( ExtractFileName( Application.ExeName ),'') ; ArqINI := ArqINI + '.SAT.config.ini'; INI := TIniFile.Create(ArqINI); with FDataModule.acbrPOSPsystem do begin Desativar; Modelo := TACBrPosPrinterModelo( INI.ReadInteger('PosPrinter', 'Modelo', -1)); PaginaDeCodigo := TACBrPosPaginaCodigo( INI.ReadInteger('PosPrinter','PaginaDeCodigo', 0) ); Porta := INI.ReadString('PosPrinter','Porta', ''); ColunasFonteNormal := INI.ReadInteger('PosPrinter','Colunas', 48); LinhasEntreCupons := INI.ReadInteger('PosPrinter','LinhasEntreCupons', 10); EspacoEntreLinhas := INI.ReadInteger('PosPrinter','EspacoLinhas', 0); end; if FDataModule.Configuracao.ModeloFiscal='SAT' then if FDataModule.acbrSATsystem.Extrato = FDataModule.acbrSATescPosSAT then begin FDataModule.acbrSATescPosSAT.ImprimeQRCode := True; FDataModule.acbrSATescPosSAT.ImprimeEmUmaLinha := INI.ReadBool('EscPos','ImprimirItemUmaLinha', False); end except on e:exception do Exception.RaiseOuterException( Exception.Create('[Erro preparando impressora virtual]')); end; finally end; end;
  2. Bom dia a todos. Estou homologando meu PAF-ECF. Quem já fez esse processo, sabe onde encontro o certificado da NTK (PayGo), pois apenas tenho o meu certificado de homologação do TEF com eles, mas não é esse o que precisa ser apresentado NA HOMOLOGAÇÃO, conforme imagem. Segundo a homologadora eu preciso do certificado da desenvolvedora da solução TEF (com as operadoras de cartão, creio eu). Não recebi outro documento além do meu. Eu enviei email a empresa que estou homologando, mas não me responderam ainda e tenho medo de não responderem em tempo hábil. Que certificado é esse? Varri a internet e não encontrei nada! Alguém tem esse documento? OBS: para registro no estado eu tenho que apresentar o meu certificado de homologação TEF, não tenho dúvidas quanto a isso, a questão apenas é no processo de homologação Se alguém souber de algo, pois estou confuso. Desde já, obrigado a todos
  3. Gr@c@

    ACBrPAF.Path

    Estou tentando gerar o arquivo PAF. Conteudo da propriedade path ACBrPaf.Path := Caminho do Executavel (CAIXA\) + Pasta MenuFiscal (MenuFiscal\)+ Pasta Serial (BE070871200000006448\) + Pasta PAFECF (PAFECF\) o que equivale a : CAIXA\MenuFiscal\BE070871200000006448\PAFECF\ -> após atribuir no debug fica exatamente assim Porem quando usao ACBrPAF.GetNamePath ele me retorna somente ACBrPAF Os registros estão sendo montados, porém o arquivo não salva. Fiz conforme o demo. Estou usando o Trunk1.
  4. É possível usar o ACBrPAF sem o ACBrECF ? Meu aplicativo foi desenvolvimento de acordo com a Bemafi32.dll. Tentei usar o Bematool e o WinMFD2 para gerar os arquivos automaticamente, mas eles não localizam o ECF na USB. Preciso gerar os arquivos PAF, mas não entendi se as informações são capturadas diretamente do ECF via funções ou se é das informações do meu banco de dados. Estudei o exemplo, mas a forma de gerar o arquivo parece ser semelhante ao SPED. Alguém poderia me explicar como funciona?
  5. Bom dia, Como gerar o arquivo tabela índice técnico de produção? Em alguns exemplos que encontrei utilizavam ou referenciavam esse método abaixo: int PAF_SaveFileTXT_P(int pafHandle, ACBrPAFInterop.RegistroHD1Rec RegistroP1, ACBrPAFInterop.RegistroP2Rec RegistroP2[], int CountP2, String Arquivo); Este método está na classe AcbrPafInterop.java Porém, como consigo utiliza-lo ? Tem outra forma? Como passar os parâmetros que ele pede ? Não encontrei nada na documentação do AcbrMonitor. Encontrei o PAF_P.txt no projeto, entretanto não consigo gerar ele.
  6. Boa Tarde, Eu estou com o processo de homologação na polimig em andamento, e um dos testes que ainda faltam é o bloco VII, minha rotina de registros do paf está todo correta até o momento, fiz seguindo o demo do ACBrPaf porém com relação a validação dos registros, a tal exibição das interrogações eu ainda não consegui entender pelo demo... Eu notei que no registro U1 está operação já é executada automaticamente portanto eu imagino que o acbr já possui algum método para fazer a exibição dessas interrogações. Para simplificar eu já tenho um campo tem todas as tabelas relacionadas ao arquivo onde eu assino os registros com o md5, após constatar que o meu hash não bate com o que está no banco qual propriedade do acbr deve ser acionada para exibir as interrogações? Desde já obrigado.
  7. Bom Dia a todos! Estou implementando o registro H2 do ACBRPAF, e pude verificar que não está preenchendo com ? o campo modelo quando o registro é marcado como invalido. Estudando o fonte, ví que falta o tratamento do RegistroValido. Então atualizei o fonte e o mesmo persistiu, então segue: arquivo: ACBrPAF_H_Class.pas método: function TPAF_H.WriteRegistroH2: string; linha: 178 conteúdo antigo:RFill(MODELO_ECF, 20) + novo conteúdo: RFill(MODELO_ECF, 20, ifThen(RegistroValido, ' ', '?')) + Espero poder estar ajudando esse grandioso projeto!
  8. luan.lary

    Como Gerar O Arquivo Mf?

    Eu li o tópico: após a leitura eu pesquisei bastante e ainda não encontrei um exemplo de como gerar o arquivo MF, neste post eu vi que existe uma função chamada "PafMF_Binario()" no ACBrECF porém após varias tentativas ainda não consegui a geração do aruiquivo, quando executo a função o delphi me retorna um erro. estou usando a função assim: FDataModule.ACBrECF.PafMF_Binario('daruma.mf'); obs. o erro retornado é o que esta na imagem
  9. Prezados, Estou tendo um erro no procedimento "ACBrPAF.SaveFileTXT_N('lista_autenticados.txt')", quando chego nesta linha se eu tenho o arquivo no diretório ele da a exception "Arquivo: Auxiliar.txt inválido" e se eu não tenho ele da a exception "Arquivo: Auxiliar.txt Não encontrado". Gostaria de uma ajuda de como configurar o AcbrAAC e o AcbrEAD corretamente. O componente acbrECF está ligado ao componente acbrACC, no acbrACC está setada a propriedade NomeArquivoAux -> Auxiliar.txt e o arquivo Auxiliar.txt está na pasta setada no caminho. Não encontrei muitas informações no demo do acbrACC e nenhuma referencia no acbrECF. Configurei o acbrACC conforme o exemplo do demo , (troquei apenas o valor da chave mas mantive com 4 digitos), O que pode estar ocorrendo ? Se possível também confirmar se obrigatóriamente no Arquivo Auxiliar Criptografado devo colocar o Número de Série da Impressora e o GT, e como fazer isso (de forma criptografada). Abaixo código que estou usando : Para o acbrEAD: procedure TFDMPafEcf.ACBrEAD1GetChavePrivada(var Chave: String); begin Chave := 'MIICXgIBAAKBgQDawShBJxM0rFLadxR8GSD5DaKVvxtlQ+OnuOZX/vOEP2pQXCiG'; Chave := Chave + 'NpQfNMDm73dWpTaqFLhuFvU+MSF+ys9u6bI2IqOmWUfEaE16cK4nKTbIm69fLDB8'; Chave := Chave + 'SnaocjMfO6LnbdJmG+dSxbLmrHE8BYX17/d7Vbuxcr1BoSDojGpubqP7OQIDAQAB'; Chave := Chave + 'AoGBAK0+F+ExTvaCGsPFVsXJKOHUuJQbW1jhYSPtPQ8nbDep+UpXEgjopHnqT3MU'; Chave := Chave + '5tAJ27bq3fzh1atBQaOmfoz6KxVZHEptcLPlpR+jSrBXyhG/mlvD54ZMKKZQb3qD'; Chave := Chave + 'b1UvHAO2CYRH7f7Y9PEGAvqXCloUVkbKl9rS7MEfaukj3xq5AkEA+Qqi8c1j47Db'; Chave := Chave + 'NyezJULfskNwK1wnxcLaFQBKfzpWD2dD0GS/dzWaB5T6d1zmxfXa8ZYv6WQULvqd'; Chave := Chave + '/BGCs+FMcwJBAODd4aDvQf6py4FocklojYbDhpp040NGUyhsVnj702Gq/oj2HBgI'; Chave := Chave + '4bce/b2H5+HwkyEsSZHMm5d/5HuNY35Y+qMCQQDoWCMTgvLZn8u1loVNkymOb9p7'; Chave := Chave + 'qZu1poe+JiparrtR3Z7oEsaK2mhdAIH40KTBNhHRaLREg8lM1yaD4HZXii+/AkA2'; Chave := Chave + 'L0EfNogAhYm0NSbU6Yyw3Iyiy2e33kpLg0+S95uH/Vw4RJWgdQNuzNj3wrftibrq'; Chave := Chave + 'U3Gm4FbdusOjwf4ng+lhAkEApd6RF3AqJXtmgtZpXrO6P8riEpE1qZXBQwdfeRBX'; Chave := Chave + 'Q22LlhcCq5vxgG78jKWeydtan9ue2ebXav/oUT+37LfHYA=='; end; procedure TFDMPafEcf.ACBrEAD1GetChavePublica(var Chave: String); begin Chave := 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDawShBJxM0rFLadxR8GSD5DaKV'; Chave := Chave + 'vxtlQ+OnuOZX/vOEP2pQXCiGNpQfNMDm73dWpTaqFLhuFvU+MSF+ys9u6bI2IqOm'; Chave := Chave + 'WUfEaE16cK4nKTbIm69fLDB8SnaocjMfO6LnbdJmG+dSxbLmrHE8BYX17/d7Vbux'; Chave := Chave + 'cr1BoSDojGpubqP7OQIDAQAB'; end; Para o ACBRAcc : procedure TFDMPafEcf.ACBrAAC1GetChave(var Chave: String); begin Chave := '7777'; end; procedure TFDMPafEcf.ACBrAAC1VerificarRecomporNumSerie( const NumSerie: String; const ValorGT: Double; var CRO, CNI: Integer); var OK: Boolean; NumCRZ, NumCRO: Integer; VendaBruta: Double; begin // ler os dados da ultima Z no ECF FDMPAFECF.ACBrECF1.DadosUltimaReducaoZ; NumCRO := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRO; NumCRZ := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRZ; VendaBruta := FDMPAFECF.ACBrECF1.DadosReducaoZClass.ValorVendaBruta; // comparar os dados obtidos com os dados da ultima redução Z gravada no Banco de dados //OK := Comparar com dados do BD; Aqui deixei sempre como true, para teste. OK:= TRUE; // setar os parametros se os valores (CRZ, CRO e Venda Bruta) forem iguais if OK then begin CRO := NumCRO; CNI := 010101; // codigo nacional de identificação do ECF conforme tabela end; end; procedure TFDMPafEcf.ACBrAAC1VerificarRecomporValorGT( const NumSerie: String; var ValorGT: Double); var OK: Boolean; NumCRZ, NumCRO: Integer; VendaBruta: Double; begin // ler os dados da ultima Z no ECF FDMPAFECF.ACBrECF1.DadosUltimaReducaoZ; NumCRO := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRO; NumCRZ := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRZ; VendaBruta := FDMPAFECF.ACBrECF1.DadosReducaoZClass.ValorVendaBruta; // comparar os dados obtidos com os dados da ultima redução Z gravada no Banco de dados //OK := Comparar com dados do BD; Aqui deixei sempre como true, para teste. OK:= TRUE; // setar o parametro se os valores (CRZ, CRO e Venda Bruta) forem iguais if OK then ValorGT := FDMPAFECF.ACBrECF1.GrandeTotal; end; if FileExists(ExtractFilePath(Application.ExeName) + 'Auxiliar.txt') then DeleteFile(ExtractFilePath(Application.ExeName) + 'Auxiliar.txt'); AssignFile(F, ExtractFilePath(Application.ExeName) + 'Auxiliar.txt'); Rewrite(F); closefile(F); // setar o diretório onde vai ser salvo o arquivo FdmPafEcf.ACBrPAF1.Path := ExtractFilePath(Application.ExeName) + 'PAF-ECF\'; // registro dos dados do desenvolvedor //Self.PreencherHeaderArquivo(FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1); // registro dos dados do aplicativo FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.RAZAOSOCIAL := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.RazaoSocial; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.UF := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.Uf; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.CNPJ := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.CNPJ; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.IE := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.IE; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.IM := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.IM; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.NOME := FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Nome; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.VERSAO := FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Versao; FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.LAUDO := FdmPafEcf.ACBrAAC1.IdentPAF.NumeroLaudo; // lista dos arquivo executaveis e seus respectivos MD5 with FdmPafEcf.ACBrAAC1.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe) begin Nome := 'EmpPafEcf.exe'; end; with FdmPafEcf.ACBrAAC1.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe) begin Nome := 'BemaFI32.dll'; end; // Salvar o arquivo de autenticados FdmPafEcf.ACBrPAF1.SaveFileTXT_N('lista_autenticados.txt'); // Carregar o MD5 do arquivo de autenticados FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.Nome := 'lista_autenticados.txt'; FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5 := FdmPafEcf.ACBrEAD1.MD5FromFile(ExtractFilePath(Application.ExeName) + 'PAF-ECF\' + 'lista_autenticados.txt'); FdmPafEcf.ACBrAAC1.SalvarArquivo; // setar o MD5 do arquivo de autenticados que deve aparecer no rodapé do cupom // se a impressora for MFD então fazer a programação para que apareça nas informações complementares // se não for MFD setar a propriedade InfoRodapeCupom.MD5 do FdmPafEcf.ACBrECF if FdmPafEcf.ACBrECF1.MFD then begin FdmPafEcf.ACBrECF1.InfoRodapeCupom.MD5 := EmptyStr; if FdmPafEcf.ACBrECF1.Estado = estLivre then begin FdmPafEcf.ACBrECF1.IdentificaPAF( FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Nome + ' v' + FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Versao, 'MD-5: ' + FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5 ); end; end else begin FdmPafEcf.ACBrECF1.InfoRodapeCupom.MD5 := FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5; end; Grato se alguem responder.
  10. Após atualiza o componente ao compilar minha aplicação deu erro na rotina de gerar os registros R. Na unit ACBrPAF_R tinha algumas propriedades em comentario. Removi os comentarios e funcionou. Especificamente nas propriedades RegistroR02,RegistroR04 e RegistroR06.
×
×
  • 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.

The popup will be closed in 10 segundos...