Otavio Benini
-
Total de ítens
131 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por Otavio Benini
-
-
esse assunto é importante !
tá aí uma sugestão pra futuras discussõesOtavio Benini
-
Em 30/11/2020 at 17:35, BigWings disse:
Será o mesmo caso deste tópico?
bom dia, BigWings
deletei .dproj e dproj.local: não resolveu, o AV persiste, no mesmo ponto fora da minha unit
-
isso Juliomar
meu fonte roda sem problemas com ACBr atualizado antes de 21/09/20por favor, leia o histórico inicial, tá tudo lá, a história toda
-
boas tardes, pessoal
alguma novidade sobre o problema que relatei ?
obrigado
Otavio Benini
-
3 horas atrás, Juliomar Marchetti disse:
Bom dia.
como ficou marcado as opções do instalador para copiar as dll para você usar?
ele copia para o diretorio do windows ou para a pasta do delphi?
bom dia, Italo
copia para pasta do Windows, neste caso SysWow64
3 horas atrás, Italo Giurizzato Junior disse:Bom dia Otavio,
Na primeira imagem que você anexou que ocorre erro de valor não declaro basta você incluir no Uses dessa Unit a unidade: ACBrDFeSSL.
eu declarei essa unit em Uses, mas o AV se repetiu...
uma diferença que, aparentemente, não tem efeito prático é como se constroe o xml
meu app foi baseado no exemplo existente em 2009 e de lá prá cá só fiz pequenos ajustes, a estrutura principal não mudou
nessa ocasião, consultei o exemplo e não me lembro dele ter a estrutura que tem hoje
prg exemplo:
// declara colletions
NotaF: NotaFiscal;
Produto: TDetCollectionItem;
Volume: TVolCollectionItem;
Duplicata: TDupCollectionItem;
ObsComplementar: TobsContCollectionItem;
ObsFisco: TobsFiscoCollectionItem;
...// usa collection
NotaF := ACBrNFe1.NotasFiscais.Add;
NotaF.NFe.Ide.natOp := 'VENDA PRODUCAO DO ESTAB.';Produto := NotaF.NFe.Det.New;
Produto.Prod.nItem := 1; // Número sequencial, para cada item deve ser incrementadoDuplicata := NotaF.NFe.Cobr.Dup.New;
Duplicata.nDup := '001';// finaliza
ACBrNFe1.NotasFiscais.GerarNFe;
meu app:
// monta o xml
with ACBrNFe1.NotasFiscais.Add.NFe do begin
with dtmLib do begin
Ide.cNF := Calc_cNF(dtmPed.cdsCabCODIGO.Value);
Ide.natOp := 'VENDA DE MERCADORIAS ADQUIRIDAS DE TERCEIROS';
Ide.indPag := ipPrazo;
Ide.modelo := strTOint(cdsEmpNFE_MODELO.Value);
Ide.serie := strTOint(cdsEmpNFE_SERIE.Value);
Ide.nNF := StrToInt(NumNFe);
Ide.dEmi := Now;
Ide.dSaiEnt := Now;
Ide.tpNF := tnSaida;
Ide.tpEmis := teNormal;// finaliza
ACbrNF1.Enviar(nNFe);
usei GerarNFe, como no exemplo, mas o AV se repete
-
continuando
anexo tela4 com dados das variáveis envolvidas na linha 635 antes de debuga-la
anexo xml gerado no exemplo
obrigado
Otavio Benini
-
boa tarde, Italo
reconstrui a VM, Win10Pro64, instalei Delphi 10.4 +patchs 1, 2 e 3, ACBr At revision: 20958antes do AV, 2 informações:
- anexo tela1 com erro na fixação dos atributos em ACBrNFe1.Configurações.Geral.SSLs, acusa valor não declarado; só fixando no componente;
- tentando usar OpenSSL, gera erro de cara, conf. tela2; as dll's carregadas em \Windows\SysWow64 foram da versão 1.1.1.4; substitui-as pelas da versão 1.1.1.7 mas o erro persistiu; eu uso OpenSSL desde a nfe-v4;
compilei minha app usando cryWinCrypt, httpWinHttp, libWinCrypt, xsLibXml2, que deu certo no exemplo antes;
executei consulta ao ambiente, consulta de nfe usando xml, consulta de nfe informando chave: tudo ok
emitindo uma nfe e debugando conf. sua instrução, parou na linha 635 da ACBrDFeXsLibXml2 (tela3) e daí não dá prá seguir;
gravei o xml sem assinatura da nfe que tentei emitir - anexo;
anexo tela 0 c/ AV rodando app direto;
vou usar o exemplo e te informo os resultados;
obrigado por seu empenho
Otavio Benini
-
3 horas atrás, Italo Giurizzato Junior disse:
Bom dia Otavio,
O Juliomar lhe mostrou como salvar o XML gerado sem a assinatura, uma vez que o AV ocorre ao tentar assinar.
Você poderia gerar e anexar o XML para que possamos analisar?
Outra coisa o AV ocorre na linha 282 da unit ACBrNFeNotasFiscais, correto?
Tentou durante o "debug" dar Trace into (F7) nessa linha?
Pois dessa forma saberemos a linha exata que ocorre o AV, uma vez que o método Assinar da linha 282 esta implementando na unit ACBrDFeSSL.
ok, Italo
assim que estiver no jeito te envio
estou às voltas com falta de energia e a VM onde estava o Delphi Berlin não está abrindo...
- 1
-
4 horas atrás, Italo Giurizzato Junior disse:
Boa tarde Otavio,
Eu salvaria o XML assinado, pois se você gerar o XML e tentar validar ele vai ocorrer erro de validação, uma vez que a validação exige que o XML esteja assinado.
E para ter o XML assinado salvo em disco basta executar o método Assinar.
Italo, boa noite
eu quero gerar o xml antes da assinatura para comparar com o xml gerado pelo exemplonão sei se vc teve oportunidade de ler o histórico que inicio este pedido de suporte
trata-se de um AV na chamada para assinar o xml, ocasionado depois de atualização do ACBr
em 21/09 quando o prbl começou, o Daniel pediu prá rodar o exemplo e se este rodasse então o prbl seria da minha aplicação
mas não é bem assim, como estou tentando demonstrar
nunca estive debruçado por tanto tempo em cima de um problema - no mato sem cachorro
obrigado por seu interesse
-
19 horas atrás, Otavio Benini disse:
é uma situação intrigante
dá uma lida no histórico que fiz inicialmente e nas tentativas
enquanto não surge a solução, pode me responder: como posso salvar o xml antes da assinatura ?
-
54 minutos atrás, Juliomar Marchetti disse:
Há tá o exemplo do svn não ocasiona erros? somente sua aplicação?
é uma situação intrigante
dá uma lida no histórico que fiz inicialmente e nas tentativas
-
29 minutos atrás, Juliomar Marchetti disse:
Para solução existem algumas coisas, por exemplo usar as versões mais nova do openssl que pode ser esse o caso.
eu rodo meu app sem nenhuma dll na pasta, tal qual roda o prg exemplo
então vale o que está na pasta windows\syswow64 e lá estão as dlls mais recentes, comparando com o que traz o ACBr; veja figura; -
4 minutos atrás, antonio.carlos disse:
Tópico movido para a área do SAC, para que o SLA de respostas seja considerado
como faço para postar diretamente na área do SAC ?
obrigado -
Boas tardes, pessoal
em 21/09 tive um problema no usando ACBrNFe, cuja tentativa de solução, apontou para outro; um AV muito cabeludo; esse problema ficou suspenso aqui enquanto eu trabalhava outras questões mais urgentes; agora, e antes que este se torne urgente, preciso resolve-lo
tenho, hoje, 5 clientes que emitem Nfe e neles, portanto, uso ACBr – o primeiro foi em Set/2009;
a unit que trata a Nfe é basicamente a mesma para todos eles, com mínimas variações; poderia até ser a mesma unit, mas eu mantenho um projeto para cada cliente;
o ambiente de desenvolvimento e testes, desde 2014, é uma VM Windows 7, c/ Delphi 2010, Firebird 2.5, tudo 32 bits; o host é um i7, 16 gb RAM e Windows 8 32 bits;
em 21/09/20 quando precisei "forçar" um servidor virtual para um cliente do Ceará, encontrei um problema e antes de qualquer outra providencia atualizei o ACBr; depois dessa atualização fiquei c/ 2 problemas; o principal, que motivou as ações, foi resolvido com um muito bom suporte do @Big Wings; ficou um AV (novíssimo !) exatamente na emissão da Nfe;
para resolver o AV então eu voltei um backup da VM, anterior a 21/09, e ficou tudo ok; a dedução óbvia dessa ocorrência é um "bug" no ACBrNFe, visto que nada além disso mudou;
voltei ao problema no final do mês passado e cá estou até agora;
se eu atualizar o ACBr o problema se repete; eu fiz isso; voltei um backup da VM mais antigo, compilei e emiti uma Nfe; depois atualizo o ACBr, compilo e lá vem a o AV na emissão da Nfe; com o mesmo código, sem alterações;
tentei também remover totalmente o ACBr e atualiza-lo do zero: não funcionou;
estou migrando todo ambiente de desenvolvimento, e havia começado por outro projeto, que não usa ACBr, mas parei tudo pra resolver esse AV;
por host estou usando um Dell i7, 16 gb RAM, Windows 10 Pro 64, Firebird 3; criei uma VM Windows 10 Pro 64, instalei Delphi 10.4 Sydnei e ACBr: AV igualzinho !
eu testei com 3 projetos diferentes; num deles recriei a unit onde uso o ACBr, do zero; nessa Unit não faço nada além de gerar e enviar o xml; os dados estão num data module;
eu uso, com base na publicação "Conheça a ACBrDFeSSL" por Daniel Simões de Almeida, desde a versão 4 da NFe, o seguinte set:
Geral.SSLCryptLib := cryOpenSSL; Geral.SSLHttpLib := httpOpenSSL; Geral.SSLLib := libOpenSSL; Geral.SSLXmlSignLib := xsLibXml2; WebServices.SSLType := LT_TLSv1_2;
ajustei os parametros do pgr exemplo para esse set, mas dá erro, não compila;
então eu ajustei minha app para ficar igual à que usei no exemplo e que foi aceita:
Geral.SSLCryptLib := cryWinCrypt; Geral.SSLHttpLib := httpWinHttp; Geral.SSLLib := libWinCrypt; Geral.SSLXmlSignLib := xsLibXml2; WebServices.SSLType := LT_TLSv1_2;
essas propriedades só puderam ser ajustadas diretamente no componente (no Delphi Sydnei, no 2010 não sei, uso no componente direto), dá erro e não compila se alterar na linha;
o programa exemplo com esse set compila, roda e emite a NFe;
minha app com um ou outro set compila e roda; com ACBr atualizado dá AV, com ACBr "defazado" compila, roda, emite NFe;
mas eu não encontro nada a alterar na minha unit, aliás eu não alterei nada nela, a única diferença é a atualização do ACBr a partir de 21/09;
debugando, o AV ocorre na chamada para assinar o xml: em ACBrNFeNotasFiscais, na procedure NotaFiscal.Assinar, linha 282 – anexo print da tela; a chamada é interna pelos metodos do ACBr, eu apenas chamo ACBrNFe1.Enviar
escrevi toda essa história na esperança que possam acender uma luz para a solução ; nunca antes precisei do suporte como agora;
antes, resta uma via ainda não explorada: como posso salvar o xml antes da assinatura ? no exemplo só encontro a gravação do xml depois da assinatura;
com o xml gerado pela minha app eu poderei comparar com o xml do exemplo, inclusive envia-lo pra vocês;
agradeço a atenção
Otavio Benini
-
boa tarde, Ítalo
não sei ainda, ao menos foram diretas
ele indicou usar as dll's de 2 pastas, ficou de fora a pasta XMLSec
no meu relato inicial apontei uma dll, que está na pasta XMLSec, e que não existia no Servidor do cliente (nem nas pastas do Windows - é um Win Server 2012) e que gerou erro na última atualização, apontando falta dessa dll
minha aplicação roda nesse servidor desde sempre e eu fui acrescendo ou substituindo dll à medida que algum erro ocorria - tem lá até openssl.exe
farei testes no cliente no próximo fim de semana, colocando primeiro as dll's indicadas, checando os resultados e acrescendo outra(s) se necessário - eram esses testes que eu queria evitar quando abri a questão
informarei vocês sobre alguma divergência da instrução recebida
obrigado
Otavio Benini
- 1
-
obrigado, José
-
bom dia,
vc viu as configurações que uso no componente ? comente-as por favor
e as outras dll's ? esquece ?
de qual pasta pego a dll ?
obrigado
-
boa tarde,
na pasta XMLSec: libxml2.dll de 14/08/18 c/ 964 k
na pasta LibXml2: libxml2.dll de 29/08/20 c/ 1,08 mb
qual das duas deve prevalecer ?
na pasta XMLSec: libxslt.dll de 14/08/18 c/ 163 k
na pasta LibXml2: libxslt.dll de 29/08/20 c/ 284 k
qual das duas deve prevalecer ?
-
boas tardes, pessoal
depois da atualização do ABCr em 29/08, testando a emissão da NFe, gerou um erro na carga da libxml2.dll
substitui por aquela existente em C:\ACBr\DLLs\LibXml2\x86 e passou
então, atualizei no cliente um novo .exe e essa libxml2.dllem 2 pc's isolados, remotos, rodou normal
no servidor (Win R12) que atende outros emissores deu erro reclamando a falta da libiconv.dll que, de fato, não existia e nunca existiu naquela máquina
copiei então prá esse servidor os 4 arquivos daquela pasta e "voltou ao normal"
nesse servidor tem uns 11 ou 12 arquivos dll
em outro cliente, também no servidor, tem só 9 - nele atualizei o .exe em 28/08 e não houve qq problema com dll
pergunta: quais DLL'S são efetivamente necessárias que estejam na pasta do .exe ?
ambos os clientes tem a mesma configuração no componente (anexo figura)
obrigado
Otavio Benini
-
boas tardes, pessoal
atualizei o ACBR em 29/08 pp e hoje um cliente reclamou da impressão do campo Informações Adicionais que antes, com o mesmo conteúdo (é uma nfe de importação cujos dizeres se repetem), cabia numa única página
verifiquei que a fonte antes era menor
pergunta: como, onde e como posso alterar a fonte desse campo ?obrigado
-
bons dias,
ontem me enchi de paciência, joguei fora o report e comecei de novo
no caso da banda Sumary como eram 13 campos iguais eu fiz e o primeiro e passou !daí eu fiz o segundo, testei, passou
fiz o terceiro, testei, passou
e aí fui fazendo um a um, testando e ao final fiz todos e ficou ok !
salvei e prá tira teima, joguei fora a banda Sumary e fiz como antes, tudo de uma vez, definindo o primeiro campo e copiando-o para os outros 12 e só alterando a DataFormula - não funcionou
ou seja, um por um funciona como deve funcionar e tudo de uma vez não vai, ou não foi
fica a experiência para outras eventuais anormalidades
obrigado pelo interesse de vocês
- 2
-
já está lá, mas não vai
se desse um erro, uma msg, alguma resposta...
mas não tem retorno, apenas não vai
é um relatório simples, 3 bandas, 1 só nível de totalização, não tem quebras
de "trabalhoso" só o ajuste do caption das colunas, que são móveis
antes de partir pro POG vou refazer o relatório, do zero, quem sabe ?
obrigado
-
boa tarde, José
só tem um nível de detalhe !
como eu disse, tenho outros relatórios do tipo que funcionam normal, mas com apenas 2 ou 3 colunas totalizáveis
deve ser um bug
vou utilizar POG prá resolver
obrigado
-
boas tardes !
num relatório simples, com 13 colunas uso uma banda Header, uma Detail e uma Sumary
na Sumary uso DBResult para cada coluna que deve ser totalizada
não funciona, não executa e não dá erro, chega no report pq monta o cabeçalho das colunas (são móveis) mas não exibe o relatório
se retiro a banda Sumary o resto acontece normalmenteanexo configurações do DBResult de um campo - são 13 ao todo, iguais, só muda o campo
usando Delphi 10.4, Firedac, Firebird
o Fortes foi instalado a partir do GetIt Package Manager do Delphi
tem funcionado em outros relatórios com 2 ou 3 colunas de totalização
obrigado
Evitar que codigo fonte seja copiado
em ACBrNFe
Postado
Não teria uma forma de, por exemplo, "esconder" o arquivo .pas e/ou outro(s) para que o código não ficasse exposto, mas tão somente a tela, quando houver
dessa forma a "inteligência" estaria preservada
teria de ser algo como uma dll
Otavio Benini