Ir para conteúdo
  • Cadastre-se

EMBarbosa

Consultores
  • Total de ítens

    9.338
  • Registro em

  • Última visita

  • Days Won

    117

Tudo que EMBarbosa postou

  1. Olá Obrigado pela análise. Realmente existe essa limitação na função. Na minha opinião, não seria interessante, porque vai incluir uma responsabilidade que não pertence a essa função. O certo seria tratar o nome do produto antes de enviar ao componente. Mas vamos aguardar outros desenvolvedores do ACBr pra ver se concordam com isso.
  2. É da SEFAZ de SC. O Bloco X só está ativo em SC. Então, entre em contato com a Sefaz de SC. Veja o que é disponibilizado no site deles. Como empresa, vocês devem tentar fazer parte do grupo que o Juliomar mencionou acima.
  3. Oi Gumercindo. O código é muito complexo pra eu conseguir analisar. Eu até tentei olhar aqui, mas não tem como fazer isso com pouco tempo e sem o restante do seu software. De qualquer maneira, eu sugiro você tentar outra abordagem. Ao invés de tentar comparar as duas. Veja onde a sua falha e tende descobrir a partir daí. No link que te passei, menciona que um motivo dessa mensagem é a tentativa de destruição de um handle que foi alocado por uma thread diferente. Então uma opção interessante seria você descobrir qual handle estava sendo destruído na hora que o erro foi levantado. A partir daí, você pode tentar encontrar onde ele está sendo criado. Outra opção é você tentar reduzir o código a um programa mínimo que reproduza o problema. Vá removendo código do programa até que consiga isolar o problema com o mínimo de código possível. É o mesmo princípio usado na Stack Overflow.
  4. Qual manual você está vendo? A documentação nacional do PAF-ECF? Se for, esse é o problema. O manual pro bloco X é esse do link que citei acima. Não tem esses campos que você menciona. Veja novamente.
  5. Agora que entendi o que você quis dizer. É isso mesmo. Só vai esse campo no arquivo. https://docs.google.com/document/d/1yez14gry9Mi4rTpwDRDf--bR-SLzijD81OPeJzh9FqE/edit
  6. Dei uma olhada por alto na sua thread e estou levando em conta que você já a utiliza há algum tempo sem nenhum ou maiores problemas. O código que você anexou é apenas parte da implementação, porque essa unit faz uso extenso de outras que não faço ideia de como estão implementadas. Não tem afirmar nada sem um código completo. Mas notei alguns pontos sensíveis que podem levar a um problema maior depois. Por exemplo: Você cria um componente de query na thread, mas todos os outros já estão criados num DataModule(DM.conGestor, DM.transGestor, etc..). Geralmente a thread deve ter sua própria conexão com o BD. Isso acontece porque os componentes da VCL de modo geral não são threadsafe. Você faz acesso direto a forms sem o controle do syncrhonize. Por exemplo na configuração do componente ACBrNFSe1 que está em um form fora da thread. Sem um mecanismo de lock, isso pode gerar problemas. Outro exemplo do acima é que o form que cria a thread é acessado pela thread de modo direto. Isso pode gerar problemas. Em via de regra, thread só pode acessar qualquer coisa que esteja na interface com o usuário via método syncrhonize.
  7. Só pra esclarecer: o código que você mostrou é apenas uma parte da geração do XML. Se deseja ver todo o código, precisa começar na unit ACBrBlocoX_ReducaoZ.pas, no método TACBrBlocoX_ReducaoZ.GerarXML que deve estar na linha 146.
  8. Isso pode ser algum equívoco no seu código, senão acredito que já teríamos recebido relatos de problemas sobre isso. Por favor, explique tente reproduzir esse problema utilizando o programa de exemplo. Caso consiga, nos dê um passo a passo para que possamos investigar.
  9. Não é um arquivo. Os dados que vem de resposta no socket ou porta é em formato de arquivo ini. Então sua leitura dos sockets não está implementada corretamente. Sugerimos você seguir a sugestão do Daniel acima: Nesse caso, você deve usar troca de arquivos e não socket. Daí vai ter arquivo de envio e retorno.
  10. Boa tarde. Sugerimos você verificar o programa de exemplo para iniciar o trabalho com esse componente. Ficará mais fácil você utilizar se estudar primeiro o programa exemplo em conjunto com a documentação e legislação do Bloco X disponibilizadas pela Sefaz. Você não vai chamar esse método. Ele é um método da classe do componente, para trabalhos internos dele. Para gerar o arquivo de estoque ou redução Z você vai seguir a forma que está no aplicativo de exemplo. Temos exemplos tanto pra Delphi como pra Lazarus na pasta trunk2\Exemplos\ACBrDFe\ACBrBlocoX do SVN
  11. Precisamos de um passo a passo pra poder reproduzir o problema. No entanto, não creio que seja um problema no componente. Até onde me lembro o componente não gera "handles" de janelas. E esse parece ser justamente o seu problema. Sua thread está criando handles, mas é a thread da VCL que está tentando destruir. Encontrei essa resposta no StackOverflow. Creio que entender o princípio por trás da resposta pode te ajudar. Em especial, essa parte:
  12. Bom dia sinval.gedolin. O Big Wings respondeu acima, que é pegando o retorno do comando de "Distribuição DFe" do ACBrMonitor. Veja: Se você está trabalhando com sockets, não vai ser diferente do modo de trabalho por arquivos. A mesma resposta gerada no arquivo de retorno é dada no socket. Então do lado da sua aplicação, você precisa garantir que o envio de comandos e o recebimento da resposta (escrita e a leitura no socket) sejam feitas corretamente. O que você vai encontrar no socket é um arquivo ini como esse que está nesse link da documentação acima. O vídeo indicado, é apenas um da série que explica sobre a distribuição. Veja os outros aqui: https://www.projetoacbr.com.br/forum/video/browse/37-aula-24-distribuicao-dfe/ Mais uma vez, a comunicação por socket ou arquivos é basicamente a mesma coisa. As respostas são as mesmas. Nesses outros vídeos aqui, há uma explicação sobre a comunicação socket TCP/IP.
  13. Não conheço esse aplicativo, mas dependendo do Banco de dados existem outras ferramentas.
  14. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
  15. Veja se esse artigo pode ajudar: https://support.embarcadero.com/article/44692
  16. Bom dia. Está sendo avaliado. É possível que seja implementado o campo ou removido a inscrição "Fone". Logo daremos uma resposta. Agradecemos sua compreensão.
  17. Verdade. É importante fazer um teste com cancelamentos e também descontos e acréscimos nos itens para garantir que o seu Subtotal está funcionando igual ao do ECF.
  18. Bom dia Barbosa, Acho que realmente não está implementado conforme está no manual aqui. Mas você poderia testar usando como "Telefone" ao invés de "Fone" por favor?
  19. Eu não tenho muito conhecimento do ACBrSMS, mas um motivo em que isso acontece é quando existe o aplicativo da operadora do chip baixando as mensagens. Geralmente esse aplicativo baixa e apaga as mensagens do modem.
  20. Boa tarde renemelo. Sempre que alguém reclama de lentidão minha recomendação primária é medir. É importante você saber exatamente onde está a lentidão. Use um profiler e descubra exatamente onde está a lentidão no seu processo. Depois de saber onde está a lentidão, resolver o problema se torna coisa muito mais fácil. Talvez até de segundos. Se você está enviando e-mails repetidos, não teria sentido carregar o HTML e anexos para cada e-mail. Mas mesmo que você não esteja enviando e-mails repetidos, talvez possa destruir e reconstruir o componente para cada lista de e-mails e não para cada e-mail. Não parece muita coisa, mas sem medir onde está a lentidão, não dá pra ter certeza onde você precisa otimizar.
  21. @simtechsistemas Também não me lembro de ter sido alterado nada relacionado a isso.
  22. Recomendo isolamento social do A3 Fora a brincadeira: obrigado por compartilhar.
  23. É impossível representar corretamente os valores ponto flutuante numa memória finita. Pense bem, existem infinitos números entre 0,5 e 0,6. Existem infinitos números entre 0,51 e 0,52. E assim por diante. Para que seja possível representar os números é feito uma aproximação. Então quando você vê o número, na verdade está vendo uma aproximação. Assim 0,5 na verdade é 0,49999999999789. Isso não é um problema do Delphi em si. Toda linguagem de programação tem essa limitação de uma forma ou de outra. Uma explicação mais detalhada está no artigo científico: "What Every Computer Scientist Should Know About Floating-Point Arithmetic" disponível nesse link abaixo https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
  24. EMBarbosa

    Quantidade de Vias

    Boa tarde Brajan. Essa opção vem desde o antigo TEF discado e uso do ECF. Algumas coisas eram um pouco diferentes na época. Esse termo "número de vias" tem um significado mais próximo a número de cópias. Mas a terminologia usada na época pelas certificadoras era vias e não cópias. Podemos entender que a descrição confunde um pouco atualmente. Mas isso é a herança do componente. Você pode explicar a ele que essa propriedade faz alguma coisa, mas não é pra esse objetivo. Explique que vai precisar avaliar com a certificadora em como proceder para limitar o número de vias (empresa e cliente) ou se possui alguma outra alternativa. Editado: Veja o post do Daniel abaixo.
  25. Bom dia Adonis. Poderia você ser um pouco mais específico? Que DLL? Você não disse que estava utilizando o Fortes? Você não está utilizando o ACBrNFe e o ACBrNFeDANFeRL? A propósito, na imagem que você anexou, não consegui verificar nenhum corte na impressão.
×
×
  • 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.