MarcosRWeimer Postado 3 Setembro Postado 3 Setembro Ola! - Criado componente acbr e setado a quebra de linha: FACBrNFe1.Configuracoes.WebServices.QuebradeLinha := sLineBreak; ou (o resultado é o mesmo) FACBrNFe1.Configuracoes.WebServices.QuebradeLinha := '\r\n'; E vou tentar emitir a CCe (Carta de Correção de NFe), sempre substitui a quebra de linha por ';' Debugando cheguei em alguns lugares. procedure TNFeEnvEvento.DefinirDadosMsg; (unit ACBrNFeWebServices.pas) Executa a linha EventoNFe := TEventoNFe.Create; No create chama o CreateOptions (herdado de TACBrXmlWriter), que por usa vez chama o TACBrXmlWriterOptions.Create que faz o seguinte: constructor TACBrXmlWriterOptions.Create; begin inherited; FIdentarXML := False; FFormatoAlerta := 'TAG:%TAGNIVEL% ID:%ID%/%TAG%(%DESCRICAO%) - %MSG%.'; // Vide comentário em wAlerta FRetirarEspacos := True; FRetirarAcentos := True; FSuprimirDecimais := False; FSomenteValidar := False; FDecimalChar := '.'; FQuebraLinha := ';'; end; Ou seja, no Create ele substitui a quebra de linha, ignorando a quebra de linha previamente configurada. Atualizei o componente hoje pela manhã (rev. 35098) na esperança de resolver o problema mas sem sucesso. Existe alguma forma de contornar isto? esqueci alguma configuração? -=Ma®©oS=-
Consultores Diego Foliene Postado 3 Setembro Consultores Postado 3 Setembro Boa tarde! Estou verificando esta questão. Fornecerei um parecer neste tópico na medida que for descobrindo mais informações. #TK-5866-2 Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Consultores Diego Foliene Postado 4 Setembro Consultores Postado 4 Setembro 1 hour ago, MarcosRWeimer said: Bom Dia! Conseguiu simular? Bom dia! Sim, foi possível reproduzir o problema. Estou atuando em uma correção para o mesmo. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Consultores Solution Diego Foliene Postado 4 Setembro Consultores Solution Postado 4 Setembro Enviei ao SVN nas revisions 35102 e 35103 ajustes visando corrigir o problema. Por favor, queira atualizar seus fontes, reinstalar o ACBr para realizar novos testes e reportar qualquer problema. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 4 Setembro Autor Postado 4 Setembro (editado) Boa Tarde! Será que faltou fazer o commit de alguma coisa? Cleaning ok Compiling package C:\componentes\ACBr\Pacotes\Delphi\ACBrDFe\ACBrNFe\ACBr_NFe.dpk "C:\Program Files (x86)\Embarcadero\Studio\22.0\bin\dcc32.exe" "C:\componentes\ACBr\Pacotes\Delphi\ACBrDFe\ACBrNFe\ACBr_NFe.dpk" Embarcadero Delphi for Win32 compiler version 35.0 Copyright (c) 1983,2022 Embarcadero Technologies, Inc. C:\componentes\ACBr\Fontes\ACBrDFe\ACBrNFe\ACBrNFeNotasFiscais.pas(3830) Error: E2003 Undeclared identifier: 'QuebraLinha' C:\componentes\ACBr\Fontes\ACBrDFe\ACBrNFe\ACBrNFeWebServices.pas(2498) Fatal: F2063 Could not compile used unit 'ACBrNFeNotasFiscais.pas' Compilation failure Erro ao compilar o pacote "ACBr_NFe.dpk". Abortando... Ocorreram erros na compilação dos pacotes. Editado 4 Setembro por MarcosRWeimer -=Ma®©oS=-
MarcosRWeimer Postado 4 Setembro Autor Postado 4 Setembro Marquei para remover antigos antes de instalar, erro persiste. -=Ma®©oS=-
NovoRJ Postado 4 Setembro Postado 4 Setembro Prezados boa tarde. Estou tentando instalar a revisão 35103 mas não está instalando. Apaguei a pasta e fiz o update de toda de todas as units novas. Apresenta os erros abaixo no log: C:\Componentes\XE\ACBR\Fontes\ACBrComum\ACBrUtil.FilesIO.pas(586) Warning: W1000 Symbol 'FileAge' is deprecated C:\Componentes\XE\ACBR\Fontes\ACBrDFe\ACBrNFe\ACBrNFeNotasFiscais.pas(3830) Error: E2003 Undeclared identifier: 'QuebraLinha' C:\Componentes\XE\ACBR\Fontes\ACBrDFe\ACBrNFe\ACBrNFeWebServices.pas(2498) Fatal: F2063 Could not compile used unit 'ACBrNFeNotasFiscais.pas' Compilation failure Erro ao compilar o pacote "ACBr_NFe.dpk".
Consultores Diego Foliene Postado 4 Setembro Consultores Postado 4 Setembro Boa tarde @MarcosRWeimer e @NovoRJ. Por favor, atualizem seus fontes e façam um novo teste. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 4 Setembro Autor Postado 4 Setembro Sem sucesso. Instalou corretamente. Setei a quebra de linha com sLineBreak (\r\n) Ao enviar o evento rejeita por causa da quebra de linha no xCorrecao, se faço a substituição do sLineBreak por ';' (replace na string mesmo, mantendo a configuração da quebra de linha no componente) autoriza a CCe porem na impressão não quebra a linha. -=Ma®©oS=-
NovoRJ Postado 4 Setembro Postado 4 Setembro Resolvido. Instalou. Está aparecendo erro na pcnEnvEventoNFe para compilar. Vi que mudou. Tem algum roteiro para mudar nos sistemas? Tem que atualizar os schemas para adequar às últimas alterações?
Consultores Diego Foliene Postado 4 Setembro Consultores Postado 4 Setembro 8 minutes ago, NovoRJ said: Resolvido. Instalou. Está aparecendo erro na pcnEnvEventoNFe para compilar. Vi que mudou. Tem algum roteiro para mudar nos sistemas? Tem que atualizar os schemas para adequar às últimas alterações? @NovoRJ, por favor, veja este tópico: Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 4 Setembro Autor Postado 4 Setembro (editado) Algumas considerações: 1 - Se seto a quebra de linha como \r\n ou sLineBreak ao enviar para o sefaz rejeita a CCe 2 - Se faço um replace no xCorrecao para trocar a quebra de linha por ; autoriza, porem a impressão sai tudo na mesma linha 3 - Se não altero a quebra de linha, no XML envia | no lugar da quebra de linha e na impressão ocorre tudo corretamente Editado 4 Setembro por MarcosRWeimer -=Ma®©oS=-
MarcosRWeimer Postado 4 Setembro Autor Postado 4 Setembro Conforme a postagem acima, de minha parte, considero que o problema está solucionado -=Ma®©oS=-
Consultores Diego Foliene Postado 4 Setembro Consultores Postado 4 Setembro 1 hour ago, MarcosRWeimer said: Conforme a postagem acima, de minha parte, considero que o problema está solucionado Mas a config de quebra de linha foi respeitada? Apenas para garantir que estamos falando do mesmo caso. Quando você mencionou seu problema, eu fiz um teste de emissão de uma carta de correção, onde na propriedade xCorrecao eu alimentei desta foram: xCondUso := 'Teste do envio de carta de correcao com'+sLineBreak+'quebra'+sLineBreak+'de'+sLineBreak+'linha'; e vi que independente do valor que colocava em TWebServicesConf.QuebraDeLinha, ele sempre gerava meu XML com: <xCorrecao>Teste do envio de carta de correcao com ;quebra ;de ; linha</xCorrecao> Depois de aplicada a correção mencionada nas revisions, ele passou a substituir o sLineBreak pelo caractere de quebra de linha que eu defini. Isso não está ocorrendo para você? Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 5 Setembro Autor Postado 5 Setembro Ola! xCondUso := 'Teste do envio de carta de correcao com'+sLineBreak+'quebra'+sLineBreak+'de'+sLineBreak+'linha'; com o parâmetro de quebra de linha: FACBrNFe1.Configuracoes.WebServices.QuebradeLinha := sLineBreak; Desta maneira não funciona, se deixo padrão a quebra de linha com | ou com ; funciona -=Ma®©oS=-
Consultores Diego Foliene Postado 5 Setembro Consultores Postado 5 Setembro Bom dia! 1 hour ago, MarcosRWeimer said: Ola! xCondUso := 'Teste do envio de carta de correcao com'+sLineBreak+'quebra'+sLineBreak+'de'+sLineBreak+'linha'; com o parâmetro de quebra de linha: FACBrNFe1.Configuracoes.WebServices.QuebradeLinha := sLineBreak; Desta maneira não funciona, se deixo padrão a quebra de linha com | ou com ; funciona Entendi. Mas para este caso, o comportamento me parece estar correto. Veja como é a rotina que faz a substituição: function ChangeLineBreak(const AText: String; const NewLineBreak: String = ';'): String; begin Result := AText; if Trim(Result) <> '' then begin // Troca todos CR+LF para apenas LF Result := StringReplace(Result, CRLF, LF, [rfReplaceAll]); // Se existe apenas CR, também troca os mesmos para LF Result := StringReplace(Result, CR, LF, [rfReplaceAll]); { Agora temos todas quebras como LF... Se a Quebra de linha final for diferente de LF, aplique a substituição } if NewLineBreak <> LF then Result := StringReplace(Result, LF, NewLineBreak, [rfReplaceAll]); end end; Fazendo um teste aqui em meu ambiente com o valor sLineBreak definido na configuração de quebra de linha, quando a string entra na rotina e também quando sai ela tem o valor: 'Teste do envio de carta de correcao com '#$D#$A'quebra '#$D#$A'de '#$D#$A' linha' E eu recebo a seguinte validação de: Quote Project ACBrNFe_Exemplo.exe raised exception class EACBrNFeException with message 'Falha na validação dos dados do Evento: --> 1839 - Element '{http://www.portalfiscal.inf.br/nfe}xCorrecao': [facet 'pattern'] The value 'Teste do envio de carta de correcao com quebra de linha' is not accepted by the pattern '[!-ÿ]{1}[ -ÿ]{0,}[!-ÿ]{1}|[!-ÿ]{1}'. Mesma coisa se utilizo o #13 e utilizando o #10 o NewLineBreak tem o mesmo valor de LF. Portanto, você precisa definir um caractere específico para que seja feita a substituição mesmo. Ai pode ser o ; o | \r\n ou qualquer outro caractere ou sequência de caracteres que julgar fazer mais sentido. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 5 Setembro Autor Postado 5 Setembro Exato, o sefaz rejeita se enviar com quebra de linha. 1 -=Ma®©oS=-
MarcosRWeimer Postado 5 Setembro Autor Postado 5 Setembro Tem outro problema nesta questão das opções da CCe. FACBrNFe.Configuracoes.Geral.RetirarAcentos := False; No momento de gerar a CCe: -=Ma®©oS=-
Consultores Diego Foliene Postado 5 Setembro Consultores Postado 5 Setembro 3 hours ago, MarcosRWeimer said: Tem outro problema nesta questão das opções da CCe. FACBrNFe.Configuracoes.Geral.RetirarAcentos := False; No momento de gerar a CCe: Boa tarde. Vamos verificar. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
Consultores Diego Foliene Postado 5 Setembro Consultores Postado 5 Setembro Fiz alguns testes, mas não enfrentei o mesmo comportamento. No momento em que cai na linha do FiltrarTextoXML o RetirarAcentos está respeitando o que eu defini. Por favor, verifique em sua rotina se essa configuração não é alterada em nenhum momento posteriormente a está definição e antes de entrar nas rotinas internas do componente para gerar o XML. Debugue a rotina a partir do break-point indicado no print usando o step-into e veja se o valor passado coincide com o que definiu: Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 5 Setembro Autor Postado 5 Setembro No ponto indicado está ok: step into até aqui, onde é o momento que é alterado para FALSE (observe a watch list) -=Ma®©oS=-
Consultores Diego Foliene Postado 5 Setembro Consultores Postado 5 Setembro Você definiu false para a propriedade? Se sim, entendo que o comportamento está correto. Acompanhe o valor da propriedade de veja como ele fica posteriormente. Diego FolieniAjude o Projeto ACBr crescer - Assine o SAC (15) 2105-0750 (15)99790-2976. Discord Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!
MarcosRWeimer Postado 6 Setembro Autor Postado 6 Setembro Bom dia! Veja que ali está marcando para retirar os acentos, sobrescrevendo a configuração. Depois dependendo do evento seta FALSE, mais uma vez ignorando a configuração. Se os 2 eventos em questão não aceitam ok, mas qual o sentido de setar para retirar os acentos ignorando a configuração? -=Ma®©oS=-
Recommended Posts
Crie uma conta ou entre para comentar
Você precisar ser um membro para fazer um comentário
Criar uma conta
Crie uma nova conta em nossa comunidade. É fácil!
Crie uma nova contaEntrar
Já tem uma conta? Faça o login.
Entrar Agora