Painel de líderes
Conteúdo popular
Showing content with the highest reputation on 09-05-2024 em todas as áreas
-
No debug não havia nenhuma mensagem, apenas o retorno -1 do método de inicialização. Resolvi o problema limpando todo meu repositório e baixando novamente todos os arquivos. As configurações se mantiveram as mesmas. Não encontrei nenhum problema específico, talvez alguma dll estivesse entrando em conflito.2 pontos
-
Boa tarde ! ideal é vc utilizar a sua linguagem que mais tem domínio. Nós do ACBr não dominamos todas as linguagens. Algumas contribuições são dos próprios usuários da comunidade que utilizam ACBrLib, mas em GoLang não temos exemplos. Você chegou a abrir os exemplos de c# e compilar para realizar testes? Este vídeo mostra como utilizar o tortoise para download dos exemplos e como usar acbrlibBoleto. https://acbr.nutror.com/curso/e4f38b5c7398e4ccca8731c2d305952d389ac693/aula/6362386 Este vídeo mostra exemplo basico api. https://acbr.nutror.com/curso/e4f38b5c7398e4ccca8731c2d305952d389ac693/aula/45418872 pontos
-
O sistema está procurando em: ..\Web\ACBrLib\x64 Você salvou em: ..\Web\Bin\ACBrLib\x642 pontos
-
complicou, se não está documentado pelo banco, não tem uma "formula" vamos ter que analisar o que podemos fazer para não quebrar o componente em produção2 pontos
-
Boa tarde! Após a correção de vocês conseguimos gerar o evento. Obrigado pelo apoio.2 pontos
-
Desafio: executar a lib ACBrBoleto diretamente em um APP SERVICE LINUX no Azure, sem uso do Docker Backend em C#/.NET 6 Os comandos são executas via SSH em Development Tools/SSH A execução do start do app service pode ser acompanhada em Log Stream Comandos úteis: Verifica se o arquivo existe e em qual pasta está. No caso eu fiz o deploy para a pasta raiz da aplicação (usando Azure Devops). find / -name libacbrboleto64.so 2>/dev/null Lista as dependências da biblioteca e confirma se a lib pode ser "lida" ldd libacbrboleto64.so O arquivo de inicialização padrão /startup.sh deverá ser copiado para a pasta /home a fim de ser personalizado Copia o arquivo de inicialização do app service para a pasta /home. Qualquer arquivo fora de /home é apagado quando o serviço é reiniciado. cp /opt/startup/startup.sh /home Uma vez copiado o arquivo deverá ser editado (usar o VIM) e antes da execução da aplicação acrescer as linhas abaixo: echo *** Atualiza a lista de pacotes apt-get update echo *** Instala as dependências faltantes da lib ACBrBoleto (listadas no comando ldd libacbrboleto64.so) apt-get install -y libgdk-pixbuf2.0-0 libgtk2.0-0 libpango1.0-0 libatk1.0-0 libcairo2 libpangocairo-1.0-0 echo *** Instala emulador de interface gráfica. A lib precisa pra funcionar. apt-get install -y xvfb echo *** Remove lista de pacotes (opcional) rm -rf /var/lib/apt/lists/* echo *** Cria uma screen virtual identificada pelo nº 1 Xvfb :1 -screen 0 1024x768x24 & No app service em Settings/Enviroments variables inserir name e value: DISPLAY :1 Por último, em Settings/Configuration/Startup Command inserir /home/startup.sh Alguma coisa deu errado? basta remover o comando no Startup Command que será usado o arquivo de inicialização padrão (/opt/startup/startup.sh) Depois de alguns dias de dor de cabeça tudo testado e funcionando !!!!!!!!!!1 ponto
-
ola, estou tendo problema depois da ultima atualizacao este mes para emitir nota fiscal de servico no provedor IPM cidade palmeira das missoes/RS a nota esta autorizando tudo normal, porem não retorna para mim os dados da nota e da a mensagem XML declaration allowed only at the start of the document ao tentar ler o retorno do provedor, falando com o Diego pelo discord é possivel que tenha alguma anomalia no retorno ao fazer o parse nao consegue.. segue me anexo os arqivos envolvidos deposi de varias tentativas claro! 3847-lista-nfse-ger.xml 3847-lista-nfse-ger-soap.xml 3847-ger-nfse.xml 3847-ger-nfse-soap.txt1 ponto
-
@simons, Vou lhe pedir um favor, substitua a unit por esta que esta em anexo. Reinstale o ACBr e faça novos testes. Caso esteja tudo OK, enviarei ela para o SVN. ACBrNFSeXWebserviceBase.pas1 ponto
-
sh é um arquivo de script shell do linux. seu start.sh esta assim: xvfb :99 -screen 0 1280x1024x24 -ac +extension GLX +render dotnet NFEsAPI.dll qdo start.sh ele é executado é a mesma coisa que vc digitasse os comandos no terminal: xvfb :99 -screen 0 1280x1024x24 -ac +extension GLX +render dotnet NFEsAPI.dll Entao para que vc nao fique escrevendo , vc pode criar um script, exemplo: -Script backup mariadb: backup.sh mysqldump -uroot -p1234 -P3306 minhabase > /home/backupmariadb/meubackup.sql entao para nao ter q ficar dando este comando enorme, eu executo o backup.sh Quando sua API está em pé, vc exibe algum comando como no meu exemplo... api em execução ou aguardando comandos? se não, vc pode colar isso, assim vai saber se esta rodando. Ele chegou a criar um arquivo acbrlib.ini ? se criou, configure o log para uma pasta, nivel 4 Pois com o log na mao é mais facil identificar problemas1 ponto
-
esse é o retorno da contaulta nfseporrps: <retorno> <mensagem> <codigo/> <Mensagem> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <fieldset style='' color:red;font-size:13px;font-family:arial''> <legend>+ INFORMAÇÕES DA CONSULTA< legend><BR><li style='' padding:5px;color:#000000''> <b>Série RPS:< b>1< li><li style='' padding:5px;color:#000000''> <b>Número RPS:< b>2293< li> <li style='' padding:5px;color:#000000''> <b>Situação:< b>Convertido em Nota Fiscal Eletrônica< li><li style='' padding:5px;color:#000000''> <b>Cadastro Econômico:< b>920203< li> <li style='' padding:5px;color:#000000''><b>Prestador:< b>16.918.053 0001-26 - CLAUDINEI WALTER SIMONS - ME< li> <li style='' padding:5px;color:#000000''><b>Tomador:< b>568.271.560-87 - EDELTRAUT ERICA STROBEL< li><li style='' padding:5px;color:#000000''><b>Data Hora Conversão:< b>09 05 2024 11:04:52< li> <li style='' padding:5px;color:#000000''><b>Série NFS-e:< b>1< li><li style='' padding:5px;color:#000000''><b>Número NFS-e:< b>2293< li><li style='' padding:5px;color:#000000''><b>Cód. Autenticidade NFS-e:< b>0187770021207341< li> <li style='' padding:5px;color:#000000''><b>Valor da NFS-e:< b>50.00< li> < fieldset> < Mensagem> <Correcao> < Correcao> < mensagem> < retorno> pelo que vi o componente esta sempre tentado converter o resultado em xml e nestes dois casos nao é um xml valido e ai que pode estar o problema!1 ponto
-
este é o retorno que nao esta sendo feito o parse esta dando erro: <retorno> <mensagem> <codigo/> <Mensagem><?xml version=''1.0'' encoding=''iso-8859-1''?> <retorno> <mensagem> <codigo>00209 - J� consta uma NFSe para o referido prestador de servi�o com o mesmo IDENTIFICADOR de arquivo</codigo> </mensagem> <identificador>nfse</identificador> <numero_nfse>2293</numero_nfse> <serie_nfse>1</serie_nfse> <data_nfse>09/05/2024</data_nfse> <hora_nfse>11:04:52</hora_nfse> <arquivo_gerador_nfse>3851-ger-nfse.xml</arquivo_gerador_nfse> <nome_arquivo_gerado_eletron>3851-ger-nfse.xml</nome_arquivo_gerado_eletron> <link_nfse>http://sync-rs.nfs-e.net/datacenter/include/nfw/nfw_imp_notas.php?codauten=0187770021207341</link_nfse> <cod_verificador_autenticidade>0187770021207341</cod_verificador_autenticidade> </retorno> </Mensagem> <Correcao/> </mensagem> </retorno> nesta parte: function xmlParseDoc(const cur: xmlCharPtr): xmlDocPtr; begin if InitLibXml2Interface and Assigned(_xmlParseDoc) then Result := _xmlParseDoc(cur) else Result := nil; end; do ACBRLibXml2.pas1 ponto
-
Vou realizar os testes em C# e terminar de ler a documentação, queria mais uma orientação sobre isso, pois a inexperiência com projetos tão complexos podem desacelerar bastante meu desempenho, aí queria otimizar esse lado. Mas provavelmente vou pender para o C# pois já tem os exemplos da ACBr irei testá-los. Obrigado1 ponto
-
Conferindo no Log gerado pela Lib consta alguma informação? Se você tentar debugar, mostra no debug mensagem de erro?1 ponto
-
Atualizei novamente e reinstalei, com os ajustes que foram feito resolveu o problema.1 ponto
-
Na pagina de download no final dela tem o botão "Visualizar log de alterações" nesse botão vc consegue ter acesso ate a versão 240 em diante.1 ponto
-
ao tentar depois do envio que não houve retorno tente fazer a consulta por rps e ai o retorno foi a seguinte mensagem: Erro de Conexão: EndTag: '</' not found 3849-lista-nfse-ger-soap.xml22931-comp-nfse-soap.xml1 ponto
-
@Diego Foliene também estou com o mesmo problema na versão ACBrMonitorPLUS Ver. 1.4.0.254 - x64. Retornei para a versão ACBrMonitorPLUS Ver. 1.4.0.253 - x64 para voltar a fazer o envio das NFCe. Sei que o amigo ai q abriu o topico já lhe passou as informações, mas estou só complementando para lhe informar que o problema é geral com essa versão. Meu caso é emissão de NFCe sem identificação do consumidor. Atualiza a versão dá o erro ERRO: Nome do Município deve ser informado, volta versão sem alterar nada no sistema e faz o envio normalmente. [Identificacao] natOp=Venda de Mercadoria indPag=0 mod=65 serie=500 nNF=000000001 dEmi=09/05/2024 11:58:11 tpNF=1 Finalidade=1 idDest=1 indFinal=1 indPres=1 tpimp=4 tpAmb=1 [Emitente] CRT=1 CNPJ=OCULTADO_POR_SEGURANCA IE=OCULTADO_POR_SEGURANCA Razao=OCULTADO_POR_SEGURANCA Fantasia=OCULTADO_POR_SEGURANCA Fone=OCULTADO_POR_SEGURANCA CEP=38408-666 Logradouro=Rua Saldanha Marinho Numero=OCULTADO_POR_SEGURANCA Complemento= Bairro=Pampulha CidadeCod=3170206 Cidade=Uberlândia UF=MG [Destinatario] indIEDest=9 CNPJ= IE= NomeRazao= Fone= CEP= Logradouro= Numero= Complemento= Bairro= CidadeCod= Cidade= UF=1 ponto
-
Bom dia Juliomar, Não havia anexado os fontes pois como eu comentei não obtive sucesso em fazer funcionar, mas devia tê-los anexado assim mesmo, segue aqui, se puder dar um auxílio de como eu posso obter nessa unuit os valores das propriedades DataEmissao e Competencia seria muito útil. Deixei os código que inclui (mas não são eficazes) comentados. Obrigado. AssessorPublico.Provider.pas1 ponto
-
Talvez o problema seja pelo mesmo motivo1 ponto
-
Responsavel emissao, deixe Cliente Emite; FACBrBoleto.Cedente.ResponEmissao := tbCliEmite1 ponto
-
Cara esse tipo de erro geralmente é que a informação que vc passou no xml difere demais dos arquivos do schemas, lembrando que as vezes vc pode ter atualizado já os schemas porém, está tentando transmitir um cte criado anteriormente nos schemas errados1 ponto
-
1 ponto
-
Bom dia ! Show, sinal que já evoluímos com isso ! Vou mostrar em meu ambiente server ubuntu. Vou executar minha aplicação NodeJS, vai dar o mesmo erro que vc reportou. Então vou executar o comando para ativar a virtualização X e depois executar o meu programa exemplo novamente. Xvfb :1 -screen 0 1280x1024x16 & export DISPLAY=:1 Agora ele esta aguardando o comando na porta 3333 desta API de Exemplo Node. Esta funcionando.1 ponto
-
Bom dia meu amigo! Sim, atualizei ontem e reinstalei tudo novamente! Vou tentar testar com o programa de exemplo.1 ponto
-
Será que não está relacionado a interrupção da distribuição dos CTes e NFes das Sefaz cuja emissão era feita no RS para o ambiente nacional? https://www.projetoacbr.com.br/forum/topic/77618-avisos-sobre-a-situação-dos-dfes-devido-aos-problemas-enfrentados-pelo-rio-grande-do-sul/?do=findComment&comment=501322&_rid=1247951 ponto
-
Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.1 ponto
-
Obrigado, @Italo Giurizzato Junior. Vou observar a documentação novamente e atualizar a aplicação.1 ponto
-
Bom dia, atualizei e voltou a funcionar normalmente. Muito obrigada pelo retorno!1 ponto
-
Bom dia @Próton Sistemas, Ao enviar um evento seja qual for, o campo verAplic se refere a versão do seu aplicativo e não o da SEFAZ. Nos retornos da SEFAZ o campo verAplic se refere a versão do aplicativo da SEFAZ que recepcionou o documento ou evento. No que se refere ao XML documento ou do evento a ser enviado para a SEFAZ o campo verAplic se refere a versão do aplicativo do contribuinte.1 ponto
-
sim utilizo acbrmonitor atualizado, utilizo impressão Fortes estou revendo pois pode ser um projeto externo q esta modificando o meu xml antes de ser processado agradeço a ajuda ate aqui1 ponto
-
Bom dia @jmc, Você poderia anexar o XML de retorno do DistribuicaoDFe para que possamos analisar?1 ponto
-
Bom dia @WesleySantos, Conforme consta na página 22 do Manual CTe Anexo II DACTE versão 4.00 que trata sobre o layout do DACTE - Documento Auxiliar do Conhecimento de Transporte Eletrônico, o Peso Bruto, Peso Base Cálculo e Peso Aferido devem ser impresso em Kg. Segue imagem do manual com essa informação: Por conta dessa orientação constante no manual tanto quanto o componente ACBrCTe, quanto a Lib ACBrLibCTe e o ACBrMonitor imprimem essas informações em Kg. Você tem que deixar bem claro para o seu cliente que a impressão segue a orientação definida em um documento emitido pelo ENCAT em agosto/2022.1 ponto
-
Chama-se cancelamento extemporâneo. Precisa solicitar na SEFAZ Estadual a liberação daquele documento o seu cancelamento, geralmente há um valor a ser pago, geralmente 1,5% do valor do documento fiscal (depende da SEFAZ), o fluxo do cancelamento depois que a sefaz autoriza o cancelamento é igual, só o código de retorno que é diferente (Cancelamento Fora do Prazo).1 ponto
-
Boa tarde @Quality Automação, Infelizmente a NFC-e não tem o modo de contingência online como é o SVC, somente offline.1 ponto
-
1 ponto
-
veja que é erro de schema. então vem a pergunta pegou os schemas do svn e trocou todo na sua pasta?1 ponto
-
Faz update no ACBr e reinstala vi que foi modificado algo em alguns componentes incluindo o NFE1 ponto
-
Tu tem que inutilizar essa faixa de numeração conforme manual1 ponto
-
1 ponto
-
Correção usar esse aqui, segue como vc tem que configurar o equipamento. ps: foi a melhor a config que encontrei para esse equipamento.1 ponto
-
A solução ACBrBoleto já tem suporte a cobrança API com PIX no Banco INTER. Recebemos a contribuição inicial do amigo @ActioSistemas, (a partir da qual fizemos as devidas adequações para a implementação da unit para integrar as soluções ACBr) Para utilizar endpoint pix, basta marcar a propriedade IndicadorPix como true igual aos outros bancos. Inter tem 2 API's: - boletos normais - boletos com QrCode PIX O que vai definir em qual incluir, baixar ou consultar é a propriedade IndicadorPIX: Quando falso, ele utiliza API Boleto Normais Quando true, ele utiliza API Boleto com QrCodePIx * Uma não devolve boleto registrado na outra! Atenção: Uma das informações que deve ser armazenada do retorno da inclusão é a propriedade “NossoNumeroCorrespondente” pois toda operação de alteração, baixa e consulta você vai precisar informar esta propriedade. (é um código UUID de identificação do boleto) Somente a API Cobrança com PIX retorna UUID. Quando API Pix não está devolvendo NossoNumero: Existem relatos que após a inclusão , a API não está devolvendo o campo nossoNumero, neste cado se olhar o log, o banco esta devolvendo: "situacao": "EM_PROCESSAMENTO"; Então deve aguardar alguns minutinhos e realizar a consulta detalhe utilizando a propriedade NossoNumeroCorrepondente Como utilizar: Após inclusão guardar o GUUID devolvido na propriedade NossoNumeroCorrepondente; Para ConsultarDetalhe, ALTERAR e BAIXAR, informar o GUUID (retornado na inclusão) na propriedade NossoNumeroCorrespondente; (carregar o titulo) Como passar esta informação via componente (Delphi/lazarus): Titulo.NossoNumeroCorrespondente := '4cac8ea0-a960-4ac4-af55-c6b05728f3x0'; Como passar esta informação via INI do titulo (ACBrLibBoleto, ACBrMonitorPlus): [Titulo1] .. NossoNumeroCorrespondente=24d5fdcd-608d-40b9-ad42-52e4af8eb7f1 Consulta Lista: Vamos ter agora as situacao isbAberto isbBaixado isbCancelado Baixado e cancelado, filtro dataMovimento isbAberto: filtro dataVencimento ele tbm vai usar a opcao Filtro.boletoVencido ibvSim/ibvNao (ele procura por data de vencimento boletos a receber ou vencidos) isbAberto: filtro dataRegistro ele consulta por data emissao os boletos em aberto Como o banco Inter não tem ambiente de homologação, cuidado com seus testes, após executar, baixar o boleto para ele não ficar pendente no sistema do banco de cobrança. Quer saber como funciona nos bastidores ?: Para quem leu a documentação da cobrança pix do Inter, sabe que é diferente a forma que é realizada a inclusão, tanto a resposta como o endpoint de cobrança PIX. Após a inclusão do boleto, recebemos um codigoSolicitacao (UUID) caso tenha registrado o boleto com sucesso (HttpResultCode 200); Este código UUID é devolvido pela solução ACBrBoleto na propriedade “NossoNumeroCorrespondente”. Ele não nos devolve as informações do boleto como no endpoint convencional. Sendo assim, após inclusão é realizada uma consulta passando este UUID para que seja retornado os dados do boleto e qrcode na propriedade EMV como nos outros bancos. Lembrando que esta consulta ocorre de forma transparente, ou seja, a solução acbr abstrai isso para você, ou seja, realizando a inclusão no TpInclui com o indicadorPix como true, a solução realiza uma consulta da UUID logo após a inclusão e devolve todas as informações do boleto. Agradecimento também para @Antonio Gomes, @Gabriel Mororó por terem efetuados alguns testes e ao @ralty por ter cedido credenciais.1 ponto
-
Olá pessoal! Foi publicado no dia 26/04/2024 comunicado pelo ENCAT informando sobre a Entrada em vigor em 08/04/2024 do novo Evento "Registro de Passagem Automático Originado no MDF-e". Segue conteúdo do mesmo na íntegra: Fonte: https://www.nfe.fazenda.gov.br/portal/informe.aspx?ehCTG=false&Informe=V1q2al1iwg4= Um agradecimento ao membro de nossa comunidade @Felipe Marianopor compartilhar a informação em nosso Discord.1 ponto
-
Olá Pessoal, Muitos DF-e (Documentos Fiscais Eletrônicos) foram implementados para o seu envio ser em Lotes contendo de 1 até 50 documentos. Esse modo de envio em lote funciona no modo assíncrono. Outros DF-e já foram implementados com o modo de envio unitário, ou seja, só podemos enviar um documento por vez, consequentemente esse modo de envio funciona no modo síncrono. A primeira diferença que podemos notar é: No envio assíncrono podemos enviar um lote contendo de 1 até 50 documentos, já no envio síncrono podemos enviar somente um documento por vez. A segunda diferença diz respeito ao retorno: No envio assíncrono temos como retorno do webservice um numero chamado de Recibo que atesta que o webservice recebeu o lote enviado, por outro lado no envio síncrono não temos o numero do Recibo como retorno. A terceira diferença se refere ao resultado do processamento: No envio assíncrono devemos realizar uma consulta se utilizando do numero do Recibo. É o retorno dessa consulta que nos vai dizer se o(s) documento(s) enviado(s) para o webservice foi ou foram processado(s) com sucesso. Já no envio síncrono não temos no retorno o numero do Recibo, logo não temos como realizar a consulta pelo numero do Recibo, alias não se faz necessário uma vez que no retorno do envio síncrono o que temos de retorno já é o resultado do processamento, portanto já temos na resposta se o documento foi processado com sucesso ou não. DF-e que já nasceram com o modo de envio Síncrono: BP-e = Bilhete de Passagem Eletrônico BP-e TM = Bilhete de Passagem Eletrônico Transporte Metropolitano GTV-e = Guia de Transporte de Valores Eletrônico DC-e = Declaração de Conteúdo Eletrônica NFCom = Nota Fiscal de Comunicação Eletrônica DF-e que nasceram com o modo de envio Assíncrono e que mudaram ou vão mudar para Síncrono: CT-e = Conhecimento de Transporte Eletrônico (desde 06/2023 só funciona o modo Síncrono) CT-e OS = Conhecimento de Transporte Eletrônico Outros Serviços (desde 06/2023 só funciona o modo Síncrono) MDF-e = Manifesto de Documentos Fiscais Eletrônicos (Modo Assíncrono será desativado em 30/06/2024) NFC-e = Nota Fiscal ao Consumidor Eletrônica (desde 04/09/2023 só funciona o modo Síncrono) DF-e que possui os dois modos de envio Assíncrono e Síncrono: NF3-e = Nota Fiscal de Energia Elétrica Eletrônica Observação: Notem que nas listas acima não aparece a NF-e = Nota Fiscal Eletrônica, o motivo é que a NF-e nasceu somente com o modo Assíncrono de envio, depois passou a ter o modo de envio Síncrono, mas este modo não se encontra disponível na SEFAZ de São Paulo e Bahia. O Fisco já sinalizou que pretende acabar com o modo de envio Assíncrono da NF-e, deixando somente o modo Síncrono. A motivação para essa mudança é que por volta de 90% dos lotes recepcionados por todas as SEFAZ de todas as UF possuem somente um documento. Sendo assim não faz muito sentido consumir dois serviços (Recepção e Consulta) para apenas um documento, lembrando que no modo Assíncrono se faz necessário a Consulta pelo numero do Recibo para obter o resultado do processamento. Já que 90% dos contribuintes enviam as suas notas de forma unitária, ou seja, uma nota por vez, tanto a SEFAZ quanto o desenvolvedor do Software sairiam ganhando com essa mudança, pois a SEFAZ eliminaria o serviço de Consulta pelo numero do Recibo e o Software ficaria mais rápido pois não precisaria executar essa consulta. Quando vai ocorrer essa mudança não sei, o Fisco não disse quando, mas vai ocorrer. Codificação para quem utiliza os componentes: A titulo de exemplo será utilizado o componente ACBrMDFe, mas podemos replicar para os demais. O método Enviar possui 3 parâmetros: function Enviar(const ALote: String; Imprimir: Boolean = True; ASincrono: Boolean = False): Boolean; overload; ALote = Numero do Lote que contem os documentos a serem enviados para o webservice da SEFAZ. Imprimir = Se True (valor padrão) diz que o Documento Auxiliar vai ser impresso no final do processo, se False diz que não vai ser impresso. ASincrono = Se False (valor padrão) diz que o modo de envio é Assíncrono, se True diz que o modo de envio é Síncrono. Exemplo de Envio no modo Assíncrono (só deve ser utilizado pelos DF-e que ainda possuem esse modo de envio): ACBrMDFe1.Enviar(NumLote); ou ACBrMDFe1.Enviar(NumLote, False); Exemplo de leitura do retorno do envio no modo Assíncrono: with MemoDados do begin Lines.Add(''); Lines.Add('Envio MDFe'); Lines.Add('tpAmb: ' + TpAmbToStr(ACBrMDFe1.WebServices.Retorno.tpAmb)); Lines.Add('verAplic: ' + ACBrMDFe1.WebServices.Retorno.verAplic); Lines.Add('cStat: ' + IntToStr(ACBrMDFe1.WebServices.Retorno.cStat)); Lines.Add('xMotivo: ' + ACBrMDFe1.WebServices.Retorno.xMotivo); Lines.Add('cUF: ' + IntToStr(ACBrMDFe1.WebServices.Retorno.cUF)); Lines.Add('xMsg: ' + ACBrMDFe1.WebServices.Retorno.Msg); Lines.Add('Recibo: ' + ACBrMDFe1.WebServices.Retorno.Recibo); Lines.Add('Protocolo: ' + ACBrMDFe1.WebServices.Retorno.Protocolo); end; Exemplo de Envio no modo Síncrono (utilizado pelos DF-e que só possuem ou também tem este modo de envio): ACBrMDFe1.Enviar(NumLote, True, True); ou ACBrMDFe1.Enviar(NumLote, False, True); Exemplo de leitura do retorno do envio no modo Síncrono: with MemoDados do begin Lines.Add(''); Lines.Add('Envio MDFe'); Lines.Add('Chave: ' + ACBrMDFe1.Manifestos[0].MDFe.procMDFe.chMDFe); Lines.Add(''); Lines.Add('tpAmb: ' + TpAmbToStr(ACBrMDFe1.WebServices.Enviar.tpAmb)); Lines.Add('verAplic: ' + ACBrMDFe1.WebServices.Enviar.verAplic); Lines.Add('cStat: ' + IntToStr(ACBrMDFe1.WebServices.Enviar.cStat)); Lines.Add('xMotivo: ' + ACBrMDFe1.WebServices.Enviar.xMotivo); Lines.Add('cUF: ' + IntToStr(ACBrMDFe1.WebServices.Enviar.cUF)); Lines.Add('xMsg: ' + ACBrMDFe1.WebServices.Enviar.Msg); Lines.Add('Recibo: ' + ACBrMDFe1.WebServices.Enviar.Recibo); end; E para quem usa ACBrLib ou ACBrMonitorPLUS? Os diferentes modos de envio também são considerados e estão disponíveis em ambas as soluções. No que diz respeito ao envio, os comandos também possuem um parâmetro que define se o envio será síncrono ou assíncrono. Vamos ver o exemplo do MDFe: Para a ACBrLib: MDFE_Enviar(ALote, AImprimir, ASincrono, sResposta, esTamanho); ALote: Número do Lote a ser enviado. AImprimir: Se True, imprime DAMFDe caso o MDFe seja autorizado. ASincrono: Se True envia o MDFe em modo sincrono. sResposta: Usado pelo retorno, contem as informações retornadas pela consulta. esTamanho: Usado pelo retorno, contem o tamanho da string (sResposta). Então o comando ficaria: MDFe_Enviar(ALote, AImprimir, False, sResposta, esTamanho) ou MDFe_Enviar(ALote, AImprimir, True, sResposta, esTamanho) Para o ACBrMonitorPLUS: MDFE.ENVIARMDFe(nXMLMDFe, [nLote], [nAssinar],[nImprimi],[nImpressora], [bAssincrono], [bEncerrado] ) nXMLMDFe: Caminho do XML do MDF-e nLote: Número do Lote (opcional) nAssinar: Assinar o XML (opcional - informe 0 para não assinar) nImprimi: Imprimir MDF-e (opcional - informe 1 para imprimir) nImpressora: Nome da Impressora (opcional) bAssincrono: Por padrão o envio é Assíncrono, informa "False" para envio Sincrono bEncerrado: Imprimir Mensagem de "MDFe Encerrado", (opcional - informe 1 para imprimir) Ficando: MDFe.EnviarMDFe(nXMLMDFe, nLote, nAssinar, nImprimi, nImpressora, True, bEncerrado) ou MDFe.EnviarMDFe(nXMLMDFe, nLote, nAssinar, nImprimi, nImpressora, False, bEncerrado) A hora de ler a resposta também muda um pouco. No envio assíncrono, temos uma seção [Envio], [Retorno] e [MDFe + Numero do Documento]. Já no envio síncrono, não existe mais a seção [Retorno] e a seção MDFe é concatenada com a chave de acesso. Resposta Assíncrona: [Envio] CStat= CUF= DhRecbto= Msg= NProt= NRec= TMed= TpAmb= VerAplic= Versao= XMotivo= Xml= [Retorno] CStat= CUF= ChaveDFe= DhRecbto= Msg= Protocolo= VerAplic= Versao= XMotivo= cMsg= nRec= tpAmb= xMsg= [MDFe1] Id= XML= cStat= chDFe= dhRecbto= digVal= nProt= tpAmb= verAplic= xMotivo= Resposta Síncrona: [Envio] CStat= CUF= DhRecbto= Msg= NProt= NRec= TMed= TpAmb= VerAplic= Versao= XMotivo= Xml= [MDFe12345678901234567890123456789012345678901234] Id= XML= cStat= chDFe= dhRecbto= digVal= nProt= tpAmb= verAplic= xMotivo=1 ponto
-
Olá pessoal! O colega @Integrasys compartilhou conosco uma dica para aqueles que estejam tendo problemas ao gerar um preview de impressão, com o mesmo ficando com um grande espaço em branco no lado direito do impresso. Mesmo após alterar as propriedades AlterarEscalaPadrao e Nova Escala com o problema persistindo, ele conseguiu solucionar realizando o seguinte procedimento: Clique com o botão direito em cima do .EXE, selecione Propriedades. Na janela que abrir, navegue até a aba Compatibilidade. Clique no botão Alterar configurações de DPI alto. Selecione Sistema na seção substituição de escala de DPI Alta1 ponto
-
Banco Safra Solicitar credenciais de autenticação no servidor oAuth 2.0 junto a Central de Suporte Pessoa Jurídica conforme manual. FACBrBoleto.Cedente.CedenteWS.ClientID:= deve ser enviado o client id recebido do Banco Safra FACBrBoleto.Cedente.CedenteWS.ClientSecret:= deve ser enviado o usuário recebido do Banco Safra. FACBrBoleto.Cedente.CedenteWS.Scope:= Deixar em Branco FACBrBoleto.Cedente.CedenteWS.KeyUser:= deve ser enviada a senha recebida do Banco Safra.1 ponto
-
Instruções fornecidas pelo nosso amigo @Victor H. Gonzales - Panda. Erro: 12175 - Um ou mais erros foram encontrados no certificado Secure Sockets Layer (SSL) enviado pelo servidor O processo será abortado! Este erro acontece devido a falhas de comunicação entre a aplicação e a Sefaz. Principais causas: Configurações do Windows ou falta de atualizações; Configurações da rede (Protocolos de segurança, DNS, Proxy, etc); Certificado ou Cadeias de Certificado Digital; Como resolver: Siga atentamente cada passo listado abaixo. Ao final de cada passo teste novamente sua aplicação. Passo 1 Vá até o Painel de Controle do Windows. Escolha a Opção "Opções da Internet"; Vá até a aba “Avançadas”; no bloco “Configurações”, vá até as últimas opções e deixe configurado como na imagem abaixo: Marque: Não salvar páginas criptografadas em disco; Desmarque: Usar SSL 2.0; Marque: Usar SSL 3.0; Desmarque: Usar TLS 1.0; Desmarque: Usar TLS 1.1; Marque: Usar TLS 1.2; Passo 2 1º Encerre as aplicações, ou sua aplicação que utiliza nossos componentes. Se você está utilizando certificado A3, remova ele da porta USB. 2° Vá em executar, digite, certlm.msc, para abrir a interface de certificados, caso esse comando não funcione, utilize o certmgr.msc. 3° Remova todos os certificados de "Autoridade de Certificação de Raiz Confiáveis". 4º Ainda na listagem de certificados, aperte F5 para atualizar a página, e remova qualquer novo certificado que aparecer, repita esse processo algumas vezes, até que retorne sempre vazio. 5° Faça o download desse arquivo. 6° Execute como Administrador o InstaladorCadeias_1.0.2.0.exe. 7º Clique em Instalar, e aguarde até que o processo seja finalizado. 8° Teste novamente a comunicação com a SEFAZ. Salve, reinicie a máquina, e teste novamente. O problema ainda persiste? Algumas versões do Windows não dão suporte ao .NET Framework 4.6.2 ou superior com protocolo TLS 1.2. Veja a lista de versões do windows que NÃO FUNCIONAM. Windows Server 2003 Windows 7 - Sem SP1 Windows 8 Windows Vista Windows XP Para esses casos, a solução é instalar uma outra versão de sistema operacional. Você ainda pode ter problemas com outras versões do Windows, pois nem todos vem nativamente habilitados para o uso desse protocolo, portanto, será necessário executar o windows update para que as atualizações necessárias sejam instalados, e o protocolo seja habilitado. Após instalar algumas das atualizações será necessário reiniciar o Windows, lembre-se de sempre que iniciar novamente, abrir o Windows Update novamente e conferir se não apareceram novas atualizações, se houverem, inicie novamente o processo de instalação. Casos de atualizações específicas necessárias: Windows 7 : Instalar o SP1 + Se for 64 bits: Atualização do Windows 7 para sistemas com base em x64 (KB3140245) Atualização de segurança do Windows 7 para sistemas com base em x64 (KB2992611) Se for 32 bits: Atualização do Windows 7 (KB3140245) Atualização de segurança do Windows 7 (KB2992611) Windows 8.1: Se for 64 bits: Atualização de segurança do Windows 8.1 para sistemas com base em x64 (KB2992611) Se for 32 bits: Atualização de segurança do Windows 8.1 (KB2992611) Windows 10 não funciona? Baixe e execute o arquivo em anexo (FixCrypto_TLS1_2_Windows.reg) de registros, reinicie a máquina e teste novamente. Como verifico as atualizações disponíveis para o Windows? Clicar em Iniciar e digitar na caixa de pesquisa "Windows Update"; Clicar em "Verificar se há atualizações" ou "Windows Update"; Clicar na opção para procurar atualizações; Alternativa ao Passo 2 (Remoção dos certificados Raiz) Caso não seja possível remover os certificados Raiz do computador, uma solução alternativa seria: Acessar a listagem de certificados raiz, através do do painel certlm.msc (descrito no passo 2); Selecionar o certificado Autoridade Certificadora Raiz Brasileira V5; Modificar a opção Finalidades do certificado, selecionando então a opção "Ativar todas as finalidades desse certificado" Observações : Alguns antivírus podem impedir a comunicação com os webservices da SEFAZ. Um exemplo é o Avast e o KasperSky, que se faz necessário adicionar os links do Web Service da Sefaz na lista de exceções do antivírus para conseguir emitir a NFe 4.00. Alguns aplicativos de bancos, para acesso ao internet banking (como o chamado WarSaw), podem alterar as configurações de TLS e SSL quando são executados. Cadeias de Certificado Autoridade Certificadora Raiz Brasileira desmarcando propriedades automaticamente! Problema: Alguns servidores estão apresentando problemas na comunicação com a SEFAZ recebendo o retorno "A conexão subjacente estava fechada: Não foi possível estabelecer relação de confiança para o canal seguro de SSL/TLS". Como solução temos que acessar o Certmgr.msc e alterar em propriedades da Autoridade Certificadora Raiz Brasileira v5 para utilizar a opção "Autenticação do Servidor" ou simplesmente marcar a opção "Ativar todas as finalidades deste certificado". O problema volta a ocorrer após alguns dias, onde temos que reconfigurar as propriedades do Raiz Brasileira v5 novamente. Solução: Para que a configuração da cadeia de certificado Autoridade Certificadora Raiz Brasileira v5 não volte as configurações, é necessário efetuar o procedimento abaixo: Usando o Editor de Política de Grupo Local (gpedit.msc), alterar a seguinte propriedade: - Política Computador Local > Configuração do Computador > Modelos Administrativos > Sistema > Gerenciamento de Comunicação da Internet > Configurações de Comunicação da Internet > Desativar Atualização Automática de Certificados Raiz. - Definir esta regra como "Habilitado". - Em seguida no prompt de comando como administrador, executar o seguinte comando: gpupdate /force FixCrypto_TLS1_2_Windows.reg1 ponto
-
Olá pessoal! Aqueles que fazem uso dos componentes do ACBr se deparam rotineiramente com duas propriedades que a princípio parecem ser redundantes. Estou falando de: //Configuração no componente ACBrDFe.Configuracoes.Geral.VersaoDF //Preenchimento do DFe no componente ListaDFes.Items[Indice].MeuDFe.InfDFe.Versao No entanto, apesar de parecerem se tratar da mesma informação, cada uma das propriedades tem funções diferentes. ACBrDFe.Configuracoes.Geral.VersaoDF: está configuração no componente, define para qual web service será encaminhado o XML. Ela também afeta algumas configurações do arquivo de envelope da requisição, que é o arquivo XML acrescido de mais informações para ser enviado a Sefaz. ListaDFes.Items[Indice].MeuDFe.InfDFe.Versao: está propriedade define qual é a versão do XML. Está é uma informação importante, necessária e obrigatória nos layouts dos DFes. Mas então você pode perguntar: Ou se você já abriu os fontes do ACBr para analisar: O ACBr faz isso como uma tentativa de ajudar os desenvolvedores, mas isso não deve ser confundido. Atualmente, a versão do XML deve coincidir com a versão do web service. Imagine uma situação em que é carregado/preenchido um NF-e com a versão 4.00, mas a versão DF configurada no componente é a 3.00? Vai ocorrer erro. Por isso o ACBr faz essa distinção para ajudar. Não. Como já foi dito, as propriedades tem funções distintas, uma é a versão do web service e a outra é a versão do XML. Imagine uma possibilidade no futuro de que a Sefaz crie uma nova versão do web service que permita receber XMLs de diferentes versões? Se uníssemos essas propriedades agora, não seria possível enviar versões diferentes usando componente.1 ponto