Ir para conteúdo
  • Cadastre-se

EMBarbosa

Consultores
  • Total de ítens

    9.411
  • Registro em

  • Última visita

  • Days Won

    117

Tudo que EMBarbosa postou

  1. Por favor, reproduza aqui a linha inteira do registro C170 para que eu possa testar o problema.
  2. Olá Rafael, Tente com o DEMO.
  3. O driver da Bematech suporta Windows 7 com 64 bits?
  4. Existe o ACBrNFSe. Procure aqui no fórum sobre ele.
  5. Ahh que susto.
  6. Coma sugestão, configure o ACBrMonitor para procurar a porta do ECF e veja se ele consegue encontrar o ECF
  7. Jogue os valores do ST no campo de Outras Despesas Acessórias. Isso vai permitir fechar a nota. Daí nas informações complementares você adiciona uma nota sobre isso. Não tenho certeza, se é isso o seu problema mas achei algo parecido no link http://www.caneva.com.br/index.php?option=com_content&view=article&id=135:nf-e-devolucao-de-mercadorias-nt-2011004&catid=49:nf-e--ct-e&Itemid=68 EDIT: hmmm... talvez o que o Kiko mencionou faça mais sentido...
  8. Infelizmente eu nunca trabalhei com VSPague. Mas a primeira coisa que eu verificaria é se o arquivo de retorno está com os dados corretos (Se é que existe arquivo de retorno...)
  9. Tudo bem. Você tem razão, pode estar até numa string de 5 caracteres... Mas não acho que a função do componente deva ser "sanitizar" os dados que eu permito inserir no meu programa. Senão vamos ter que tratar muitos outros dados. Além do que, não vejo necessidade de inserir quebra de linhas nas descrições dos produtos, endereços, ou algo assim... Por isso eu sugiro que isso fique no programa e não no componente. Outros usuários podem discordar, e é por isso que temos o fórum.
  10. ahhh então está explicado né. Os valores que estão no DEMO são valores de exemplo. Você deve buscar esses valores do seu Banco de dados.
  11. Não André. Acho que você não entendeu que uma coisa não tem nada a ver com a outra. Em primeiro lugar, o ACBrSintegra não pega nada do ECF. Tudo é você quem insere. Pelo seu código, provém do seu Banco de dados. Isso é fácil de notar pois você usa Query e SQL fazendo um loop para criar um registro novo a cada linha de retorno da query. Então, se está faltando alguma coisa é no seu BD. O problema não é exatamente no código. É na falta do registro 60 M. Essa falta acontece nas duas procedures que mencionei antes. Você está criando pelo menos um registro 60A em um dia em que não foi criado um registro 60M. Você sabe o que cada registro desse significa?
  12. O seu problema está nessas duas procedures GerarRegistro60M; GerarRegistro60A;[/code] A última vez que isso me aconteceu foi que alguém esqueceu de lançar uma Redução Z, e daí meu software não gerou o registro 60M. Como havia cupons no dia, ele gerou o registro 60A do dia, e esse erro aconteceu. Se está caindo em uma exceção, a mensagem dela pode ajudar a descobrir em qual dia está faltando o dado.
  13. Também não entendi. Qual o objetivo de alterar o Path para C:\ ao invés da pasta do programa?
  14. Obrigado Régys!
  15. Olá Régys, Percebi que o comando FechaCupom faz um InfoRodapeCupom.Clear no seu final. Isso apaga os dados do MinasLegal. Duas perguntas: Porque isso é necessário? Qual seria a melhor hora então para "reabastecer" o InfoRodapeCupom com os dados?
  16. O melhor método é você limitar o tamanho dos campos antes de passar ao componente. Isso impede que ele utilize mais memória do que o necessário ao criar os registros e você não terá esse problema.
  17. Por favor tente reproduzir o problema usando o código do DEMO.
  18. Que bom que resolveu!
  19. Ebnezer, Não seria o contrário? RegistroValido:=true quando for 0: não alterado?
  20. Então, para o suprimento você deve usar o comando de Suprimento. Para Leitura X, LeituraX. Mas, até então, o ACBr não tem esse método de geração de Registros Tipo60 do Sintegra. Mesmo porque, esse tipo de método utilizando o ECF não é aceito pelo fisco para homologação PAF. Você deve ser capaz de gerar esses arquivos do seu banco de dados.
  21. Beleza então. Olhando por alto, não consegui detectar nenhum problema diretamente no seu código. Então, sugiro colocar um breakpoint na execução do seu código para verificar se não estão sendo criados duas vezes o mesmo registro. Coloque o breakpoint por exemplo na linha que cria o registro 0140 ou na próxima depois dela (COD_EST := IntToStr(int0140)). Quando parar ali você pode verificar o quantas vezes ele está gerando o registro.
  22. Sim, teria que fazer a procura por string, mas o uso de RTTI resolveria todo esse problema para você (ou pra mim...) Agora acho que você não entendeu o problema que eu citei. Vou tentar dar um exemplo: Hoje, o cst icms para Outros é 090. Se a legislação mudar por algum motivo obscuro para 099 todo o seu banco de dados vai estar errado. Não vai mais conseguir gerar os arquivos corretamente. Acha isso estranho? Eu também acho. Impossível? Não mesmo. Veja o caso do campo IND_PGTO do registro C100 no SPED Fiscal ou o campo IND_FRT no registro C100 do SPED PisCofins. Além disso, veja o caso desse tópico viewtopic.php?f=22&t=4448 Como mencionei antes, concordo que não é fácil alterar isso depois do projeto já em execução. Talvez pareça deselegante também. Eu mesmo admiti que não tenho feito assim. Mas parece ser o melhor método de resolver os problemas citados sem dores de cabeça futuras.
  23. Você pode usar o Delphi 7 ou superior. Ou o Lazarus.
  24. O que esse comando faz, você sabe?
  25. Se você usa só um estabelecimento você deve remover o for ... do que cria os registros 0140. Usar um loop para criar apenas um registro é anti-pattern. Verifique se isso resolve. Observe também se os dados não estão sendo duplicados na sua Query ou se não está sendo executada a função que cria os registros duas vezes.
×
×
  • 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.