Ir para conteúdo
  • Cadastre-se

magnosystem

Membros Pro
  • Total de ítens

    161
  • Registro em

  • Última visita

Posts postados por magnosystem

  1. Boa tarde pessoal.

    Estou trabalhando com nfc-e usando o componente acbrposprinter sem problemas. Para configurar a porta da impressora no acbrposprinter eu primeiramente compartilho a impressora no windows. Feito isto eu direciono a porta do acbrposprinter para o compartilhamento. Exemplo: Porta do acbrposprinter = \\Servidor\Epson. Fazendo isto está funcionando perfeitamente. Porém esta configuração está dando certo no computador onde está ligada a impressora. Em um cliente tive a necessidade de colocar dois pontos de venda de nfc-e imprimindo na mesma impressora através do acbrposprinter. Na máquina onde a impressora está ligada, funciona perfeitamente. Já na máquina que iria acessar a impressora pela rede deu um erro de "File Denied". Já desativei antivirus, firewall, etc... Ambos os sistemas usam windows 7. O erro ocorre ao ativar o acbrposprinter. Alguém aqui trabalha com acbrposprinter em rede ?

  2. Acabei de instalar o acbr em um computador novo que comprei. Minha configuração é Windows 10 64 bits, Delphi XE5. Após fechar o delphi e abrí-lo novamente deu erro em vários pacotes (parece que em pacotes ligados ao Acb_nfe). O erro está anexado. Vi em outro post um colega que resolveu copiando as dll's da pasta XMLSEC para os diretórios SYSTEM32 e SYSWOW64 do Windows. Fiz isto, mas não resolveu.

    erro.jpg

  3. Então Daniel, hoje eu instalei os componentes do trunk2 e a parte de NFE, ficou toda "atrapalhada". Por exemplo: Acbrnfe.Notasfiscais.items[0].Savetofile, não reconheceu o Savetofile. A função uftocoduf mudou a unit e quando coloque a unit no uses apareceu um monte de função que não era reconhecida. Tive várias funções não reconhecidas como por exemplo no Acbrnfce o token e idtoken. Enfim, muito problemas com dependências. Aí eu desisti e voltei o acbr do trunk.

    Os fontes estavam atualizados e eu instalei pelo instalador do trunk2.

  4. Estou desenvolvendo SAT e vi que diferentemente do nfce o componente ESC POS do sat não comtempla a impressora Daruma.

    Pude notar que no trunk2 tem este componente. Fiz inclusive um teste com o executável e funcionou muito bem na Daruma. Eu baixei o acbr do trunk2 mas me pareceu que ainda não é uma versão estável. Teve demos do próprio acbr que não abriu.
     

    Existe já alguma previsão de quando o componente TACBrEscPosPrinter vai ser disponibilizado no trunk "normal".

  5. Descobri o erro. O meu componente ACBRECF fica na DataModule. Há uns tempos atrás estava ocorrendo um erro com o AcbrNfeDanfeFR que eu consegui resolver tirando o componente AcbrNfeDanfeFR, AcbrNfe e o AcbrECFVirtualNFCe e colocando no form principal separado do Datamodule. Funcionou perfeitamente. Depois da atualização do ACBR notei que o AcbrECFVirtualNFCe não estava enxergando em tempo de programação o AcbrECF no Datamodule. Aí voltei o AcbrECFVirtualNFCe para o Datamodule e funcionou perfeitamente. Obrigado pela ajuda pessoal.

  6. Pessoal bom dia.

     

    Eu tinha começado a desenvolver nfce e já estava até imprimindo cupom usando o ecfvirtual. Parei uns tempos e voltei agora e para tal atualizei os fontes do acbr.

    Desde então está aparecendo a mensagem "Access Violation at Address 004099B6 in module MagnoPDV"

     

    O interessante é que seu eu não colocar nenhum código no evento QuandoVenderItem do AcbrVirtualNFCe o erro desaparece, todavia, fica faltando os parâmetros de ncm e alguns outros e o envio é recusado pelo webservice. Mas basicamente é isto. Basta eu colocar um comando no evento (teste colocando apenas Det.Prod.ncm) que já dá erro.

     

    Não achei nenhum exemplo no acbr, se tiver, me falem em qual pasta.

    O fonte que está dentro do evento é o abaixo:

    procedure TPDV.ECFVirtualNFCeQuandoVenderItem(Det: TDetCollectionItem);
    begin
    Det.nItem := Datacliente.TBAuxVendas.FieldByName('ITEM').AsInteger;
    With Det.Prod do
    Begin
    cProd := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString;
    if Datacliente.ValidaEAN(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString) then
    cEAN := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString
    else
    cEAN := '';
    xProd := Datacliente.TBAuxVendas.FieldByName('PRODUTO').AsString;
    With Datacliente.QEXEC do
    Begin
    sql.Clear;
    sql.Add('SELECT NCM FROM PRODUTOS WHERE CODIGO = ' + QuotedStr(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString));
    open;
    End;
    if Datacliente.QEXEC.FieldByName('NCM').AsTrimString = '' then
    NCM := '99999999'
    else
    NCM := Datacliente.QEXEC.FieldByName('NCM').AsTrimString;
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
    CFOP := '5403'
    else
    CFOP := '5102';
    qCom := Datacliente.TBAuxVendas.fieldbyname('QUANTIDADE').AsCurrency;
    if Trim(Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString) = '' then
    uCom := 'UN'
    else
    uCom := Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString;
    vUnCom := Datacliente.TBAuxVendas.fieldbyname('VALORUNITARIO').AsCurrency;
    vDesc := Datacliente.TBAuxVendas.fieldbyname('DESCONTO').AsCurrency;
    vProd := Datacliente.TBAuxVendas.fieldbyname('SUBTOTAL').AsCurrency;
    vOutro := 0;
    indRegra := irTruncamento;
    end;
    With Det.Imposto.ICMS do
    Begin
    if Datacliente.TBPadrao.FieldByName('SPEDREGIMETRIBUTARIO').AsString = 'SN' then
    Begin
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
    CSOSN := csosn500 else
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then
    CSOSN := csosn300 else
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then
    CSOSN := csosn400 else
    Begin
    CSOSN := csosn102;
    orig := oeNacional;
    pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency;
    vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency;
    End;
    End
    else
    Begin
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
    CST := cst60 else
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then
    CST := cst40 else
    if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then
    CST := cst41 else
    Begin
    CST := cst00;
    pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency;
    vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency;
    End;
    End;
    End;
    end;
  7. Pessoal bom dia.

     

    Eu tinha começado a desenvolver nfce e já estava até imprimindo cupom usando o ecfvirtual. Parei uns tempos e voltei agora e para tal atualizei os fontes do acbr.

    Desde então está aparecendo a mensagem "Acess Violation at Address 004099B6 in module MagnoPDV"

     

    O interessante é que seu eu não colocar nenhum código no evento QuandoVenderItem do AcbrVirtualNFCe o erro desaparece, todavia, fica faltando os parâmetros de ncm e alguns outros e o envio é recusado pelo webservice. Mas basicamente é isto. Basta eu colocar um comando no evento (teste colocando apenas Det.Prod.ncm) que já dá erro.

    O fonte que está dentro do evento é o abaixo:

    procedure TPDV.ECFVirtualNFCeQuandoVenderItem(Det: TDetCollectionItem);
    begin
    Det.nItem := Datacliente.TBAuxVendas.FieldByName('ITEM').AsInteger;
    With Det.Prod do
    Begin
       cProd := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString;
       if Datacliente.ValidaEAN(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString) then
          cEAN := Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString
       else
          cEAN := '';
       xProd := Datacliente.TBAuxVendas.FieldByName('PRODUTO').AsString;
       With Datacliente.QEXEC do
       Begin
          sql.Clear;
          sql.Add('SELECT NCM FROM PRODUTOS WHERE CODIGO = ' + QuotedStr(Datacliente.TBAuxVendas.FieldByName('CODIGOPRODUTO').AsString));
          open;
       End;
       if Datacliente.QEXEC.FieldByName('NCM').AsTrimString = '' then
          NCM := '99999999'
       else
          NCM := Datacliente.QEXEC.FieldByName('NCM').AsTrimString;
       if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
          CFOP := '5403'
       else
          CFOP := '5102';
       qCom     := Datacliente.TBAuxVendas.fieldbyname('QUANTIDADE').AsCurrency;
       if Trim(Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString) = '' then
          uCom  := 'UN'
       else
          uCom  := Datacliente.TBAuxVendas.fieldbyname('UNIDADE').AsString;
       vUnCom   := Datacliente.TBAuxVendas.fieldbyname('VALORUNITARIO').AsCurrency;
       vDesc    := Datacliente.TBAuxVendas.fieldbyname('DESCONTO').AsCurrency;
       vProd    := Datacliente.TBAuxVendas.fieldbyname('SUBTOTAL').AsCurrency;
       vOutro   := 0;
       indRegra := irTruncamento;
    end;
    With Det.Imposto.ICMS do
    Begin
       if Datacliente.TBPadrao.FieldByName('SPEDREGIMETRIBUTARIO').AsString = 'SN' then
       Begin
          if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
             CSOSN := csosn500 else
          if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then
             CSOSN := csosn300 else
          if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then
             CSOSN := csosn400 else
          Begin
             CSOSN := csosn102;
             orig := oeNacional;
             pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency;
             vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency;
          End;
       End
       else
       Begin
          if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Substituição Tributária' then
             CST := cst60 else
          if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Isenta' then
             CST := cst40 else
          if Datacliente.TBAuxVendas.FieldByName('TRIBUTACAO').AsString = 'Não Tributada' then
             CST := cst41 else
          Begin
             CST := cst00;
             pICMS := Datacliente.TBAuxVendas.FieldByName('ALIQUOTA').AsCurrency;
             vICMS := Datacliente.TBAuxVendas.FieldByName('VALORICMS').AsCurrency;
          End;
       End;
    End;
    end;
    
  8. Estranho. Eu tive o mesmo problema com o cliente. A impressora trava e tem que reiniciar o programa. O log é exatamente igual este. Impressora ELGIN. O estranho é que eu atualizei o acbr algum tempo atrás e fiz as modificações para homologação do PAF. Segundo o cliente, o erro começou quando eu atualizei a versão para o meu PAF atual. Resolvi então voltar a versão anterior do programa (antes de atualizar o acbr) e até agora o erro parou. Será que foi coincidência ou houve alguma mudança recente no acbr que possa estar causando este erro com a impressora elgin ???

  9. O remobjects tem conflito com o ACBR devido aos dois usarem o pacote SYNAPSE.

     

    Depois de quebrar um pouco a cabeça no final de semana, descobri uma maneira de contornar isto. Deixei este post aqui pois pode ser útil para outras pessoas.

     

    Para correta instalação tem que primeiro instalar o ACBR.

    Depois de instalar o ACBR instalar os 3 módulos do REMOBJECTS (no meu caso tenho o REMOBJECTS, HYDRA e DATA ABSTRACT).

    Abrir o pacote SYNAPSE do REMOBJECTS no DELPHI e excluir os arquivos .PAS da pasta SYNAPSE que ficam na parte CONTAINS do pacote.

    Adicionar o pacote SYNAPSE do ACBR na pasta REQUIRES do pacote do REMOBJECTS.

    Feito isto, os dois componentes funcionarão normalmente.

    • Curtir 4
  10. Fiz a atualização, mas o erro persiste. O ACBR gera a seguinte mensagem: "Erro ao apagar o arquivo C:\TEF_DIAL\REQ\INTPOS.001".

    Eu debuguei e vi que foi no ACBRTEFD.Inicializar quando ele apaga os arquivos das pastas.

     

    O estranho é que o arquivo fica preso ao Gerenciador TEF e não ao meu PDV. Ou seja, se eu fechar o TEF eu consigo apagar o arquivo. Sem fechar o TEF, mesmo entrando na pasta REQ o windows não deixa.

     

    Aí fiz o seguinte: fechei o TEF, apaguei o arquivo da pasta REQ e comentei a função WRITETOTXT e descomentei a antiga. Pronto funcionou.

     

    Estranho, mas parece que esta função está gerando o arquivo INTPOS de uma forma que o Gerenciador ao ler deixa ele preso e impossibilita de excluir.

  11. Oi Patrícia.

    No meu sistema, independente do cliente ter TEF ou não, sempre quando perde a conexão com a impressora, aparece esta pergunta: IMPRESSORA NÃO RESPONDE. TENTAR NOVAMENTE SIM OU NÃO. Quando o usuário responde NÃO, o sistema fecha. Pois veja, se é um sistema fiscal que só funciona com a impressora fiscal e o usuário opta por não tentar mais a conexão com a impressora não há porque o sistema continuar aberto.

    Sabendo disto vamos à lógica:

    Quando a conexão com a impressora cai, o sistema vai perguntar se quer tentar novamente. Enquanto o usuário responder SIM e a impressora não responder o sistema vai exibir a pergunta. Quando o usuário responder que não quer tentar novamente, o sistema enviará um NCN para a última transação não confirmada e como eu disse anteriormente, o sistema irá ser fechado.

    Após fechar o sistema, o usuário só vai conseguir reabri-lo após restabelecer a conexão com a impressora. E ao reestabelecer a conexão o sistema efetua o cancelamento pendente e imprime o comprovante.

    Espero ter sabido explicar. Qualquer dúvida posta aí.

  12. Em primeiro lugar, gostaria de agradecer ao projeto ACBR. Recentemente fiz minha homologação para TEF DISCADO usando o componente. A homologação foi sem problemas. Teve só dois fatos que gostaria de deixar registrado.

    1 - No meu computador o foco funcionou sem problemas, já no computador do homologador não funcionou. O que fiz para resolver foi colocar um componente TTIMER no form que exibe as mensagens do TEF com intervalo 200 e no evento ONTIMER coloquei o seguinte comando:

    Self.bringtofront;

    Self.setfocus;

    2 - O travamento de teclado do ACBRTEFD só funcionou perfeitamente com a propriedade TRAVARMOUSETECLADO do ACBRECF setado para false.

    No mais tudo OK.

    Muito obrigado aos desenvolvedores do ACBR.

  13. Bem após inúmeras pesquisas, formatações, reinstalações de windows sem conseguir resolver o erro, enfim, consegui achar o caminho das pedras.

    No meu caso, toda vez que eu fechava o delphi dava o erro da ntdll. Bastava eu abrir o delphi e já fechar que dava o erro. Eu nunca esquentei a cabeça até que comecei fazer testes com TEF usando o ACBRTEFD + o pin pad e o programa travava direto com erro da ntdll.

    Fica a dica aí para quem estiver passando por isso.

    Basta copiar as dll's da pasta OPENSSL que fica na pasta DLLS do projeto ACBR para a pasta WINDOWS\SYSTEM32.

    Valeu a todos pelas dicas.

  14. Estou passando por um problema no mínimo estranho. Quando executo o demo do ACBR ou meu programa pela IDE do DELPHI consigo fazer qualquer operação com NFE.

    Agora se compilo o programa e abro diretamente o executável qualquer operação com NFE me retorna o seguinte erro:

    An error ocurred in the secure channel support.

    Já testei no WEBSERVICE de MG e SP e o erro ocorre em ambos. O erro ocorre tanto com meu programa como com o DEMO DO ACBR.

    O certificado que estou utilizando é um token da SERPRO.

×
×
  • 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.