Ir para conteúdo
  • Cadastre-se

Painel de líderes

Conteúdo popular

Showing content with the highest reputation on 11-10-2019 em Posts

  1. Olá pessoal, Uma dica de como definir onde os PDF dos Documentos Auxiliares tais como: DANFE, DACTE, etc devem ser salvos. No componente referente ao Documento Auxiliar temos a propriedade PathPDF que deve ter o caminho onde o PDF será salvo e a propriedade NomeDocumento que se for informada assume esse nome como o nome do PDF, exemplos: Exemplo 1: PathPDF := 'C:\Erp\PDF\'; ou PathPDF := 'C:\Erp\PDF'; NomeDocumento := ''; Neste caso os PDF serão gerados com os nomes padrões e salvos na pasta indicada em PathPDF. Exemplo 2: PathPDF := 'C:\Erp\PDF\'; ou PathPDF := 'C:\Erp\PDF'; NomeDocumento := 'Teste'; ou NomeDocumento := 'Teste.pdf'; Neste caso o PDF será salvo com o nome Teste.pdf na pasta indicada em PathPDF. Exemplo 3: PathPDF := 'C:\Erp\PDF\Teste.pdf' ; NomeDocumento := ''; Neste caso o componente remove o nome do arquivo "Teste.pdf" da propriedade PathPDF e o transfere para a propriedade NomeDocumento, com isso o PDF gerado será salvo com o nome Teste.pdf na pasta definida em PathPDF. Exemplo 4: PathPDF := ''; NomeDocumento := 'C:\Erp\PDF\Teste.pdf' ; Neste caso o componente remove o Path "C:\Erp\PDF\" da propriedade NomeDocumento e o transfere para a propriedade PathPDF, com isso o PDF gerado será salvo com o nome Teste.pdf na pasta definida em PathPDF. Detalhe importante tanto a pasta Erp quando PDF (do exemplo acima) devem ser criadas previamente por garantia. Existem também uma propriedade chamada UsaSeparadorPathPDF que pode assumir os valores True ou False. Mas essa propriedade não funciona sozinha, ela trabalha em conjunto com a propriedade AdicionarLiteral (que se encontra no componente referente ao Documento Fiscal, por exemplo: ACBrNFe, ACBrCTE, etc) que também pode assumir os valores True ou False. Se ambas as propriedades receberem o valor True e supondo que o componente em uso seja ACBrNFe com a configuração do PathPDF acima exemplificado teremos o PDF do DANFE salvo na pasta: C:\Erp\PDF\NFe\ O que esta em negrito na cor preta é o que foi definido em PathPDF, já o que esta em vermelho é a pasta criada automaticamente pelo fato das propriedades UsaSeparadorPathPDF e AdicionarLitera estarem com o valor True. Para quem trabalha em ambiente de Rede, vamos imaginar que o Path Erp\PDF se encontra no servidor. A forma mais fácil é mapear esse Path como sendo uma unidade e por fim usar essa unidade no PathPDF. Exemplo: Mapear o Path Erp\PDF do servidor como sendo a unidade M:\ É interessante que todas as maquinas da rede se utilize do mesmo mapeamento. Path mapeado, chegou a vez de configurar os componentes. Componente do Documento Fiscal (por exemplo ACBrNFe): AdicionarLiteral := True; Componente de emissão do Documento Auxiliar: PathPDF := 'M:\'; UsaSeparadorPathPDF := True; Pronto ao gerar o PDF o mesmo será salvo na unidade M:\ na pasta NFe, como a unidade M: se refere ao path Erp\PDF no servidor, logo a pasta NFe será criada automaticamente dentro da pasta PDF no servidor. Espero ter ajudado a todos com essa dica.
    5 pontos
  2. Boa tarde pessoal. Se você é assinante do SAC Anual do ACBr, já vem aproveitando as vantagens do nosso chat exclusivo, caso não seja, clique aqui e saiba mais. Dado o sucesso do uso do Chat ACBr com um número cada vez mais crescente de usuários inscritos, notamos algumas situações: Assuntos pertinentes a desenvolvedores de um determinado segmento, os quais podem não ser do interesse de todos os inscritos. Conversas acabam se cruzando em alguns momentos, tornado um pouco mais difícil a leitura das mensagens. Para resolver as questões acima, agora nosso canal no Flock está organizado por assunto, de forma que cada participante decida em quais chats deseja permanecer. Veja a lista de chats a seguir. SAC ACBr - Varejo: Aqui serão tratados assuntos relacionados a NFe, NFCe, SAT, MFe e ECF SAC ACBr - Transportes: Aqui serão tratados assuntos relacionados a CTe, CTe-OS, MDFe e BPe SAC ACBr ACBrLIB e ACBrMonitorPlus: Aqui serão tratados assuntos relacionados as ferramentas ACBrLIB e ACBrMonitorPlus SAC ACBr - Dúvidas Gerais: Para tratar de dúvidas relacionadas aos demais componentes, assim como outros assuntos de nosso universo. Importante: O canal Assinantes SAC Anual teve seu nome alterado SAC ACBr - Dúvidas Gerais Como Sair de um Canal Todos os assinantes do SAC Anual ganham acesso a todos os chats citados acima, porém se desejar sair de algum deles, basta utilizar a opção Sair do Canal conforme imagem a seguir. Como Voltar para um Canal Se você saiu de um canal e depois decidiu que quer voltar a fazer parte, basta localizar o canal desejado usando a busca do Flock e em seguida clicar em Entrar (Ícone de Porta ai lado da descrição do canal), conforme a imagem a seguir. Caso ainda tenha dúvidas, procure nossa consultora @aline garcia. Fone/Whats: (15) 2105-0750 email: [email protected] Att.
    3 pontos
  3. Alteração já se encontra no SVN.
    3 pontos
  4. Havia respondido isso em outro tópico, mas resolvi remover de lá e trazer para o local correto caso alguém venha ter o mesmo problema na hora de baixar arquivos via https. Internamente o componente TACBrDownload utiliza as classes da Synapse para baixar arquivos e eu também tive problemas na hora de baixar arquivos usando HTTPS usando o Demo disponibilizado no repositório. Pesquisando na internet encontrei um exemplo funcional usando a classe THTTPSend da Synapse que é exatamente a mesma usada no TACBrDownload. Toda via usando o Demo não baixava o arquivo, o mais estranho é que ambos usavam o comando HTTP.HTTPMethod('GET', Url); Comecei a depurar em paralelo para tentar identificar em que momento ocorria a divergência, até que cheguei procedure TTCPBlockSocket.SSLDoConnect da unit blcksock. Quando executava a condição if not FSSL.Connect then o Demo do ACBrDownload ia para a classe TCustomSSL e o exemplo que encontrei na internet (aquele que funcionou) ia para a classe TSSLOpenSSL. Então fui buscar onde o objeto FSSL era criado e o caminho foi o seguinte: constructor THTTPSend.Create >> FSock := TTCPBlockSocket.Create; >> constructor TTCPBlockSocket.Create; >> CreateWithSSL(SSLImplementation); >> constructor TTCPBlockSocket.CreateWithSSL(SSLPlugin: TSSLClass); >> FSSL := SSLPlugin.Create(self); O responsável pelo tipo de objeto a ser criado no FSSL (TCustomSSL/TSSLOpenSSL) é o SSLImplementation que é uma variável global da unit blcksock que é setado inicialmente como TSSLNone. Fiz uma busca em todos os fontes e os únicos lugares aonde essa variável tem seu valor alterado é no initialization de algumas classes, sendo setado como TSSLOpenSSL no initialization da unit ssl_openssl. Verifiquei que no Demo do componente TACBrDownload não existia referencia a unit ssl_openssl, porém no outro exemplo lá estava ela. Ou seja, sempre que dar uses na unit ssl_openssl ou utilizar qualquer outra unit que tenha referenciada para a mesma , a variável SSLImplementation será setada para TSSLOpenSSL. Classes conhecidas que tem a unit ssl_openssl adicionada e sem restrição de diretivas de compilação: ACBrDFeHttpOpenSSL, ACBrMail e ACBrSocket. Em resumo: se for utilizar o componente TACBrDownload ou utilizar direto o THTTPSend para baixar arquivos via HTTPS tem que dar um uses na unit ssl_openssl.
    3 pontos
  5. Bom dia Qual configuração de NFe está se referindo? Só o fato de ter configurado a NFe não influencia em nada, desde que emita um para depois emitir o outro... No Log do Monitor não identifiquei demora na resposta após o comando SAT.EnviarCFe. Note que o tempo de resposta está entre 1 e 2 segundos. O Tempo que está aumentando no log é o tempo de envio do próximo comando (SAT.ImprimirExtratoVenda), mas este é enviado pela sua aplicação. Não se trata da resposta do Monitor...
    2 pontos
  6. vc está com todos os fontes do ACBr atualizados?
    2 pontos
  7. Perfeito... é isso mesmo... na Wiki da Synapse eles dão essa dica... http://www.ararat.cz/synapse/doku.php/public:howto:sslplugin
    2 pontos
  8. Tive o mesmo problema, coloquei o .fr3 que o colega gguimp enviou e funcionou corretamente.
    2 pontos
  9. eSocial simplificado entra em produção 11/11/2019 S-2200 - {indPriEmpr}: Validação - Preenchimento facultativo se {cadIni} = [N]. não informar se {cadIni} = [N] Alteração: Como o campo {indPriEmpr} é um type sempre traz um valor default, quando é um cadastro inicial o eSocial gera um erro pois não deveria ser preenchido. Com a nova versão esse campo passa a ser facultativo e deve existir a possibilidade de preencher ou não. S-2200 - Grupo{Documentos} - Facultativo e deve ser gerado apenas se informado. pcesS2200.paspcesGerador.paspcesCommon.pas
    1 ponto
  10. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  11. Boa tarde BigWings, Realmente o objeto já havia sido criado para atribuir o ambiente e sua dica funcionou com sucesso. Muito obrigado pelo rápido retorno e pela dica. Abraço, Agora o código ficou assim: ACBrCTe.EventoCTe.Evento.Clear; with ACBrCTe.EventoCTe.Evento.Add do begin infEvento.nSeqEvento := 1; // Para o Evento de Prestação do Serviço em Desacordo nSeqEvento sempre = 1 infEvento.chCTe := Copy(ACBrCTe.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44); //dtmNFEntradas.cdsManifestacao.FieldByName('NFE_CHAVE').AsString; // infEvento.CNPJ := dtmMail.cdsFilial.FieldByName('CNPJ').AsString; // CNPJ do Tomador infEvento.dhEvento := now; infEvento.tpEvento := tePrestDesacordo; infEvento.detEvento.xObs := trim(edtJustificativa.Text); // minimo 15, máximo 255 caracteres infEvento.versaoEvento := '3.00'; end; //iLote := 1; // Numero do Lote do Evento } ACBrCTe.EnviarEvento(1);
    1 ponto
  12. Com esse código você deveria ter um erro de index out of bounds aqui, já que não chamou o método Evento.Add ou Evento.New. A não ser que já tivesse chamado o Add ou New anteriormente, o que também explicaria o teu problema inicial. Na dúvida coloque um "ACBrCTe.EventoCTe.Evento.Clear" antes de chamar o Add ou New.
    1 ponto
  13. Provavelmente é um evento e não resumo de nota.
    1 ponto
  14. Boa tarde Amigo! Consegui resolver, atualizei o schemas, obrigado!
    1 ponto
  15. Boa tarde, acho que sim... veja o que diz na página 3 do Manual de Especificações da Contingência Offline para NFC-e. Att Ricardo
    1 ponto
  16. Bom dia. Você chegou a tentar ajustar o demo e fazer o mesmo teste? Att.
    1 ponto
  17. Resolvido. Foi problema de configuração de caracteres ao abrir alguns arquivos pelo VSCode.
    1 ponto
  18. Bom dia. Obrigada pela contribuição, adicionada para validação. Att.
    1 ponto
  19. Bom dia. Como assim exportação automática? de um exemplo desta situação. Att.
    1 ponto
  20. Bom dia Thiago, Após atualizar os fones, você reinstalou a suíte ACBr?
    1 ponto
  21. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  22. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  23. Bom dia Charles, A minha recomendação é que você procure sempre estar com os fontes atualizados, independente se esta funcionando 100% ou não. Pois pode esta funcionando 100% o envio da nota no modo normal, mas pode não esta em caso de envio para a SVC - SEFAZ-Virtual de Contingência. Foi o que ocorreu com o CT-e no inicio desse mês. Sei que com relação ao CT-e você vai usar apenas o evento de Prestação de Serviço em Desacordo, mas manter os fontes sempre atualizados é uma boa pratica. Me diz uma coisa, você esta atribuindo o valor tePrestDesacordo a propriedade tpEvento ao alimentar o componente com os dados referente ao evento? exemplo: infEvento.tpEvento := tePrestDesacordo;
    1 ponto
  24. Bom dia, Como você explica esse CT-e de MG que foi enviando no dia 30/09/2019 para a SVC-SP ambiente de homologação com a URL do QR-Code de SP e que foi autorizado? cte-SVC-SP_OK.xml Será que a SVC-SP mudou alguma regra de validação referente a URL do QR-Code nesse meio tempo?
    1 ponto
  25. Bom dia. Você consegue reproduzir esta situação no demo? Att.
    1 ponto
  26. Bom dia, CARLOS MAGNO BRIGHENTI DOS SANTOS. Se você leu todo o primeiro tópico, você vai encontrar que essa pratica não é a ideal, pois o correto é você realizar a consulta com o certificado.
    1 ponto
  27. 2.2 - Permaneça no assunto - Quando tiver uma dúvida diferente do assunto no tópico, poste em novo tópico. Não use algo equivalente a "aproveitando o gancho... [dúvida não relacionada com o tópico aqui]". Favor leia as regras do fórum.
    1 ponto
  28. Ok, mas no caso do CE o endereço do WebService é definido pelo Integrador, não é utilizado do arquivo ACBrNFeServicos.ini Valide seu XML no validador SEFAZ, note que existem diversas inconsistências: https://www.sefaz.rs.gov.br/nfe/nfe-val.aspx
    1 ponto
  29. Estranho Walter, tmb tenho cliente que usa AT&M e está indo normal, qual erro que te dá? pode anexar o xml? OBS: Não uso o acbr para enviar pro AT&M
    1 ponto
  30. bom dia. esta usando a unit que passei? Bom dia Juliana. para fazer as alterações que estão na unit do outro post, segui o manual que esta no repositório do acbr, estas alterações estão comentadas na unit, informei a pagina em cada mudança. att.
    1 ponto
  31. @BigWings, o pcnConversaoNFe estava em outra pasta sem fazer referência e com a atualização não estava acontecendo nada. Obrigado pela dica. É impressionante como, as vezes, a gente se preocupa com coisas grandes e o erro é insignificante. Resolvido! Obrigado e boa sorte a todos!
    1 ponto
  32. Boa tarde Seria interessante para a comunidade citar também como foi resolvido. Att.
    1 ponto
  33. Marcou a opção de apagar arquivos antigos? Verificou se não há fontes do ACBr em outro local que o Delphi possa estar enxergando em vez da pasta atualizada? A classe TpcnVersaoQrCode está declarada na unit pcnConversaoNFe.pas, que está no uses conforme dá pra ver na sua imagem. Se houver um arquivo pcnConversaoNFe.pas ou pcnConversaoNFe.dcu desatualizado em algum local apontado no library path do Delphi pode acontecer esse problema.
    1 ponto
  34. Veja as propriedades dentro do objeto TEFDial
    1 ponto
  35. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  36. Blz, funcionou depois que eu coloquei os schemas para a versão 3.00a. O post do Italo foi fundamental para eu perceber que era esse o problema. Obrigado pela ajuda.
    1 ponto
  37. Giovane, A primeira mensagem não sei qual foi o método que você executou, logo não sei dizer o que esta ocorrendo. Já o segundo a mensagem é clara, o numero do Lote tem que ser sequencial, esse provedor não aceita receber Lotes com números repetidos.
    1 ponto
  38. Charles, Não entendi, você baixou os fontes e não instalou os componentes para serem usados na sua aplicação? Primeiro atualize todos os fontes de todas as pastas. Segundo utilize o ACBrInstall_Trunk2 para instalar/reinstalar os componente, não esqueça de marcar a opção: Apagar arquivos antigos. Terceiro, inclua o componente desejado em um DataModule de preferencia. Em situações raríssimas devemos informar uma ou outra unit do componente em uses de algum form da sua aplicação.
    1 ponto
  39. Boa tarde Paulo, Se você abrir esse XSD vai notar que existe somente a definição do retorno do envio síncrono, por outro lado o Envio "-normal" temos a definição do envio e do retorno. Isso explica esse erro ao tentar enviar pelo método EnviarSincrono.
    1 ponto
  40. Boa tarde, Muito obrigado, fiz uma alteração no componente para que ele leia o conteúdo da tag <situacao_codigo_nfse> e atribua ao campo Situação. Ainda hoje estarei enviando para o repositório.
    1 ponto
  41. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
    1 ponto
  42. Boa tarde Mateus, No caso do método enviar consta a versão 2.03, se essa versão esta errada então temos que tentar com a 2.00, 2.01 e 2.02. Já ao enviar pelo método Gerar o problema é que foi informado que a empresa é Simples Nacional e no cadastro da prefeitura não esta como Simples Nacional. O terceiro XML que você anexou note que ele é o XML gerado pelo provedor. O que o componente gera e envia é o XML do RPS, se o processamento ocorrer sem nenhum problema o webservice do provedor gera e retorno o XML da NFS-e. Esses XML costumam ser diferentes.
    1 ponto
  43. Boa tarde Giovane, Até onde sei o SimplISSv2 será usado somente para a cidade de Blumenau. Logo as demais cidades que contratarem esse provedor vão usar o SimplISS. Você vai ter que alterar o arquivo Cidades.ini e o SimplISS.ini sendo que neste ultimo terá que informar as URLs de produção e de homologação. Altere, faça os testes e assim que obter resultados positivos, favor anexar esses dois arquivo no tópico especifico que eu criei.
    1 ponto
  44. Obrigado por responder @Italo Jurisato Junior. Eu atualizo sempre o ACBr. Fiz tudo isso que você mencionou. Vou desinstalar e reinstalar novamente pra ver se resolve.
    1 ponto
  45. Boa tarde, Desculpe pela demora, já enviei para o repositório.
    1 ponto
  46. Testei o anexo, funcionou perfeitamente, obrigado.
    1 ponto
  47. Oia eu mais uma vez Esquece tudo ACBrDownload Funciona perfeitamente, acho que foi apenas uma confusão no preenchimento das propriedades. Vou deixar claro aqui procedure TFormulario.acao_Baixar_SchemasExecute(Sender: TObject); Try With Baixar do begin Protocolo :=protHTTP; DownloadDest :='c:\pasta_para_destino_do_arquivo_que será_baixado'; DownloadNomeArq :='nome_do_arquivo_no_site.rar'; DownloadUrl :='https://www.dominio.com.br/pasta/subpasta/nome_do_arquivo_no_site.rar'; StartDownload; end; Except on E:Exception do Begin Showmessage('Erro '+e.Message); Exit; End; end; Controle de Progresso (BytesDownloaded deve ser uma variavel Integer Global) procedure TFormulario.BaixarHookMonitor(Sender: TObject; const BytesToDownload, BytesDownloaded: Integer; const AverageSpeed: Double; const Hour, Min, Sec: Word); var sConnectionInfo: string; begin pb.Position := BytesDownloaded; sConnectionInfo := sConnectionInfo + ' - ' + Format('%.2d:%.2d:%.2d', [Sec div 3600, (Sec div 60) mod 60, Sec mod 60]); sConnectionInfo := FormatFloat('0.00 KB/s' , AverageSpeed) + sConnectionInfo; sConnectionInfo := FormatFloat('###,###,##0', BytesDownloaded / 1024) + ' / ' + FormatFloat('###,###,##0', BytesToDownload / 1024) +' KB - ' + sConnectionInfo; lbStatus.Caption := sConnectionInfo; end; procedure TFormulario.BaixarHookStatus(Sender: TObject; Reason: THookSocketReason; const BytesToDownload, BytesDownloaded: Integer); begin case Reason of HR_Connect : begin Pb.Position := 0; end; HR_ReadCount : begin Pb.Max := BytesToDownload; Pb.Position := BytesDownloaded; end; HR_SocketClose : begin case Baixar.DownloadStatus of stStop : begin Pb.Position := 0; lbStatus.Caption := 'Download Encerrado...'; end; stPause : lbStatus.Caption := 'Download Pausado...'; stDownload : Begin lbStatus.Caption := 'Download Finalizado com Sucesso'; Pb.Position := 0; Pb.Max :=0; end; end; end; end; end; A realidade é que a descrição das propriedades não trazem a informação adequada, em DownloadURL eu estava entendendo que deveria ser informado apenas a URL, afinal o nome do arquivo de origem já existe na propriedade DownloadNomeArq Portanto Caso encerrado. Peço desculpas por não ter compreendido o funcionamento, uma vez que já havia usado o ACBrDonwload apenas como protFTP. abraço, boa a noite todos e por hoje chega. ufa Graças a Deus. menos um problema na minha vida.
    1 ponto
×
×
  • 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...