Página 2 de 11

Tutorial ACBRMonitorPlus

Enviado: 16 Mai 2016 21:24
por fladimir
Acho que a maioria dos programadores que vendem sistemas não tem direito legal (cnpj), nem recursos, pra adquirir um
certificado para realizar os testes, o que é entristecedor....
Com relação a maioria não ter CNPJ, acredito q possa ser assim, mas hj não esta complicado de tirar CNPJ, da pra tirar em menos de 10 minutos online sem pagar nada como MEI e depois paga uma taxa mensal entre 42,00 e 46,00.

Sabemos q é mais um custo, mas quem quer trabalhar com sistemas para área fiscal vai ter q investir.

Quanto ao certificado o valor é 165,00 a 190,00 o modelo A1, mas não é um valor absurdo e precisá se feito o investimento.

A realidade é essa, vejo q são barreiras a serem transpostas mas não é impossível.

Tutorial ACBRMonitorPlus

Enviado: 17 Mai 2016 07:23
por ANDRIL
fladimir escreveu:Sabemos q é mais um custo, mas quem quer trabalhar com sistemas para área fiscal vai ter q investir.
Lembrando em se tratando de S@T, não ADIANTA ter CNPJ como MEI se quer revender seus programas, precisa abrir uma empresa com CNAEs na classificação 62**.
Fique atento!

Tutorial ACBRMonitorPlus

Enviado: 17 Mai 2016 12:28
por lugab
Valeu as dicas, pessoal...

Mas eu me referi aos programadores pessoa física, avulsos, que nem contrato formal possuem na maioria dos casos....

Tutorial ACBRMonitorPlus

Enviado: 17 Mai 2016 16:47
por JoséQuintas
Quando a gente quer fazer, e precisa fazer, a gente faz.

Comecei com NFE em 2008, o primeiro ramo obrigatório.
Não existia nada do que existe hoje, ninguém pra pedir ajuda e nenhum material disponível pra ajuda.
Hoje em dia tá fácil.

Tutorial ACBRMonitorPlus

Enviado: 20 Mai 2016 12:02
por AutomoSistema
Boa tarde Fladimir, tenho uma pergunta, trabalha com a daruma?

Tutorial ACBRMonitorPlus

Enviado: 20 Mai 2016 15:55
por fladimir
Aqui no fórum se não me engano tem um exemplo, teria q procurar...

Mas basicamente é via troca de arquivos, vc no monitor configurar a pasta q vai ser monitorada e vai criando os arquivos TXT com os comandos e vai lendo os
arquivos q o ACBr vai criar apos ler os teus arquivos q no caso são os arquivos de retorno...

Exemplo

Vc cria um arquivo chamado ENT.TXT contendo:

Código: Selecionar todos

ECF.LeituraX
Ai o ACBr vai ver q tem o arquivo na pasta ler o arquivo ver q é o comando para Leitura X e fazer a emissão da leitura X e devolver um retorno chamado SAI.TXT contendo:

Código: Selecionar todos

OK: 
Ai vc le o arquivo de retorno e sabera q deu certo... se estiver lá dentro ERRO tera q tratar interpretando...

Basicamente é isso.. pra vender a mesma coisa mas com os devidos comandos dentro do arquivo.. tipo

Código: Selecionar todos

ECF.AbreCupom
ECF.VendeItem(....)
ECF.VendeItem(....)
ECF.FechaCupom
Esta listagem de comandos esta no próprio manual q acompanha qdo vc instala o ACBr.

É ler o manual e saber o comando necessário.... além de teu sistema ficar compatível com várias ECFs de um modo geral.

[]´s

Tutorial ACBRMonitorPlus

Enviado: 25 Mai 2016 13:56
por porter
olá fladimir, por favor, se você puder tirar minha duvida, a aba Monitor do AcbrMonitor Plus está configurada assim:

Entrada: ENTNFE.TXT
Saída: SAINFE.TXT

Log de Comandos habilitado
Arquivo: LOG.TXT

qual deve ser o conteúdo do comando Caminho->PathNFe

Creio que Caminho é um arquivo e PathNFe, é um campo, qual conteúdo deve ter nesse campo ?

obrigado.

Tutorial ACBRMonitorPlus

Enviado: 25 Mai 2016 14:29
por fladimir
na aba monitorar esta ENT.TXT então o caminho é a Pasta que o ACBr esta instalado, ou seja, se for a pasta padrão será

Código: Selecionar todos

C:\ACBrMonitor\
Se vc quiser monitorar outra pasta igual eu faço, eu mudo lá onde esta Monitorar a pasta e esta ENT.TXT eu coloco:

Código: Selecionar todos

C:\PastadoMeuSistema\ACBr\ENT.TXT 
Ai no sistema o Caminho->PathNFe ficará:

Código: Selecionar todos

C:\PastadoMeuSistema\ACBr\

Tutorial ACBRMonitorPlus

Enviado: 27 Mai 2016 08:53
por Mário Isa
Muito bom esse tópico.
Que tal enriquecê-lo ainda mais com o MDF-e ?

Vou deixar aqui o meu caminho das pedras...
o .prg inicial de como tentar fazer um mdfe pelo acbrmonitor plus.

Código: Selecionar todos

==============================================================
detectando quando é outro estado

   if confirma('NFE foi emitida. Deseja imprimir agora')="S"

    if cliente->estcli # vem(ontem->uf)
     Msginfo('ATENÇÃO ! Notas emitidas para outro estado entregues por você ou transportadora tem que acompanhar a MDF-e.')


     if confirma('Deseja emitir o MDF-e') = "S"
      emitir_mdfe(totnf)
     else
      Tecle(6039) // Se necessário emita-o pelo F8-MDFe
     end


    end

==============================================================


//----------->
     Function emitir_mdfe(totnf)
     acbrinsta := acbrnfeinsta()

     if !fornec->(loc("!empty(tara)"))
      Tecle(6030) // hb_ansitooem('Não existe proprietário e/ou motorista cadastrado.'))
      return nil
     end

     na_janela(maxrow(),1,'Confeccionando Mdf-e....',NIL,8)
     TEcle(6031) // hb_ansitooem('Entre com o código do fornecedor proprietário do veículo.'))
     fornec_tran := ESCOMER('FORNEC','NOME','CODFOR')
     fornec->(dbseek(fornec_tran))
     if empty(fornec->tara) .or. empty(fornec->placa)
      Tecle(6032) //hb_ansitooem('Fornecedor inválido. Ajuste o fornecedor proprietário e 
      return nil
     end
     TEcle(6033) //hb_ansitooem('Entre com o código do fornecedor MOTORISTA.'))
     fornec_moto := ESCOMER('FORNEC','NOME','CODFOR')

     peso_tot_car := 0
     valor_tot_nfe := totnf

     vortadado := pededado('Peso Total..: ',peso_tot_car,'@e 99,999.99','.t.','Valor Total.: ',valor_tot_nfe,'@e 99,999.99','.t.')
     peso_tot_car := vortadado[1]
     valor_tot_nfe := vortadado[2]

     if lastkey() = 27
      Tecle(6022) // abortado
      return nil
     end

     if mdfe_nfe()
      tecle('Emitido com sucesso.')

      //apendanot("MDFE")

     else
      tecle(hb_ansitooem('Falha na emissão do MDF-e'))
     end
     fechajanela()
     return nil
==============================================================


Function mdfe_nfe()
local fll := ''
local formar := subs(vem(ontem->codcidad),1,2) + subs(dtoc(hoje),9) + subs(dtoc(hoje),4,2)+sohnumero(vem(ontem->cgc))+'58'+'000'+strzero(paramet->mdrvyct,9)+'1'+strzero(paramet->mdrvyct,8)
local ritorna
local ondestava := select()

/*
22
16
04
73883381000178
58
000
000000001
1
00000001
*/

m_chave_nfe := curdrive()+':'+curdirx()+'nfe\envresp.txt\'+formar + '-mdfe.xml'

fll+='<?xml version="1.0" encoding="UTF-8"?>'
fll+='<MDFe xmlns="http://www.portalfiscal.inf.br/mdfe">'
fll+='<infMDFe Id="MDFe' + formar + validignfe(formar,2,9) + '" versao="1.00">'
fll+='<ide>'
fll+='<cUF>'+subs(vem(ontem->codcidad),1,2)+'</cUF>'
fll+='<tpAmb>' + if(stoq2000ehdos = 0 , '2' , '1') + '</tpAmb>'
fll+='<tpEmit>2</tpEmit>'
fll+='<mod>58</mod>'
fll+='<serie>0</serie>'
fll+='<nMDF>'+ltri(str(paramet->mdrvyct))+'</nMDF>'
fll+='<cMDF>'+strzero(paramet->mdrvyct,8)+'</cMDF>'
fll+='<cDV>'+validignfe(formar,2,9)+'</cDV>'
fll+='<modal>1</modal>'
fll+='<dhEmi>'+ subs(dtoc(hoje),7) + '-' + subs(dtoc(hoje),4,2) + '-' + subs(dtoc(hoje),1,2)  +'T' + time()+'</dhEmi>'
fll+='<tpEmis>1</tpEmis>'
fll+='<procEmi>0</procEmi>'
fll+='<verProc>1.00</verProc>'
fll+='<UFIni>'+vem(ontem->uf)+'</UFIni>'
fll+='<UFFim>'+cliente->estcli+'</UFFim>'
fll+='<infMunCarrega>'
fll+='<cMunCarrega>'+vem(ontem->codcidad)+'</cMunCarrega>'
fll+='<xMunCarrega>'+trim(vem(ontem->cidad))+'</xMunCarrega>'
fll+='</infMunCarrega>'
fll+='</ide>'
fll+='<emit>'
fll+='<CNPJ>'+vem(ontem->cgc)+'</CNPJ>'
fll+='<IE>'+vem(ontem->iest)+'</IE>'
fll+='<xNome>'+trim(vem(ontem->razsoc))+'</xNome>'
fll+='<enderEmit>'
fll+='<xLgr>'+trim(vem(ontem->ender))+'</xLgr>'
fll+='<nro>'+trim(vem(ontem->numero))+'</nro>'
fll+='<xBairro>'+trim(vem(ontem->bairro))+'</xBairro>'
fll+='<cMun>'+vem(ontem->codcidad)+'</cMun>'
fll+='<xMun>'+trim(vem(ontem->cidad))+'</xMun>'
fll+='<UF>'+vem(ontem->uf)+'</UF>'
fll+='<CEP>'+vem(ontem->cep)+'</CEP>'
fll+='<fone>'+trim(vem(ontem->telef))+'</fone>'
fll+='</enderEmit>'
fll+='</emit>'
fll+='<infModal versaoModal="1.00">'
fll+='<rodo>'
fll+='<veicTracao>'

fornec->(dbseek(fornec_tran))

fll+='<cInt>'+substitui('-','',fornec->placa)+'</cInt>'
fll+='<placa>'+substitui('-','',fornec->placa)+'</placa>'
fll+='<tara>'+ltri(str(fornec->tara))+'</tara>'
fll+='<capKG>'+ltri(str(fornec->capkg))+'</capKG>'
fll+='<capM3>'+trim(fornec->capm3)+'</capM3>'
fll+='<prop>'
fll+='<CPF>'+sohnumero(fornec->cgcfor)+'</CPF>'
fll+='<RNTRC>'+trim(fornec->rntrc)+'</RNTRC>'
fll+='<xNome>'+trim(fornec->nome)+'</xNome>'
fll+='<IE>'+trim(fornec->iesfor)+'</IE>'
fll+='<UF>'+trim(fornec->uffor)+'</UF>'
fll+='<tpProp>2</tpProp>'
fll+='</prop>'

fornec->(dbseek(fornec_moto))

fll+='<condutor>'
fll+='<xNome>'+trim(fornec->nome)+'</xNome>'
fll+='<CPF>'+sohnumero(fornec->cgcfor)+'</CPF>'
fll+='</condutor>'
fll+='<tpRod>01</tpRod>'
fll+='<tpCar>02</tpCar>'
fll+='<UF>'+trim(fornec->uffor)+'</UF>'
fll+='</veicTracao>'
fll+='</rodo>'
fll+='</infModal>'
fll+='<infDoc>'
fll+='<infMunDescarga>'
fll+='<cMunDescarga>'+cliente->codcity+'</cMunDescarga>'
fll+='<xMunDescarga>'+semacento(trim(cliente->cidcli))+'</xMunDescarga>'
fll+='<infNFe>'
fll+='<chNFe>'+extraichave(a_chave_nfe,'\',.t.)+'</chNFe>'
fll+='</infNFe>'
fll+='</infMunDescarga>'
fll+='</infDoc>'
fll+='<tot>'
fll+='<qNFe>1</qNFe>'

fll+='<vCarga>'+ltrim(transform(valor_tot_nfe,'99999999999.99'))+'</vCarga>'
fll+='<cUnid>01</cUnid>'
fll+='<qCarga>'+ltrim(transform(peso_tot_car,'99999999999.99'))+'</qCarga>'
fll+='</tot>'
fll+='</infMDFe>'
fll+='</MDFe>'

mymemow(m_chave_nfe,fll)

if assinamdfe() .and. validamdfe() .and. enviamdfe()

 dbselectar('hisnot')
 adireg(0)

 repassa(1,'CODM'     ,   '00001')
 repassa(1,'NOMECOM'  ,   'MDF-e')
 repassa(1,'QTDE'     ,   1)
 repassa(1,'PRECO'    ,   0.01)
 repassa(1,'FORNEC'   ,   paramet->nclibalc)
 repassa(1,'NFISC'    ,   strzero(paramet->mdrvyct,8))
 repassa(1,'VLRCOM'   ,   0.01)
 repassa(1,'VENDEDOR' ,   ovendedor)
 repassa(1,'DTCOMP'   ,   hoje)
 repassa(1,'PUNIT'    ,   0.01)
 repassa(1,'QTDENF'   ,   1)
 repassa(1,'NFISCNF'  ,   strzero(paramet->mdrvyct,8))
 repassa(1,'NOT_TEF'  ,   'A')
 repassa(1,'NFCANCEL' ,   'N')
 repassa(1,'ENTSAI'   ,   'C')
 repassa(1,'TEXTCFOP' ,   'MDF-e')
 repassa(1,'CHAVE_NFE',   m_chave_nfe)


 Tecle(6035) // mdfe emitido com sucesso

 if confirma('Deseja imprimir agora.') = "S"


  oquedamfe := GETADO(3,'123','Como Imprimir-->:' , {'1-Impressora' , '2-Visualizar' , '3-Sair' })

  if oquedamfe == '1'

   minport := ''
   os_ssa := cacaimp()

   if empty(minport)
    Tecle(6022) //'ImpressÆo abortada.')
   end

   ncopy := my_wget({'Quantas','C¢pias','?'},'99','.t.','Entrar n£mero C¢pias',2)

   if imprimemfe(minport,ncopy)
    Tecle(6036) // 'NFE foi impressa.')
   else
    Tecle(154) // "Problemas com a impressora. Utilize opção PDF ao imprimir novamente.")
   end
  
   Tecle(6037) // 'Para reimpressão menu Estoque/ Opção B-Histórico Notas / posicione-se sobre a NFE / pressione F5-Imprimir DANFE.')
  elseif oquedamfe == '2'

   IF !impmfepdf(a_chave_nfe)
    Tecle(6023) //'Problemas ao visualizar o PDF.')
   else

    arqpdf := subs(a_chave_nfe,1,at('-nfe.xml',a_chave_nfe)-1) //+'.pdf'

    if !file('nfe\envresp.txt\'+extraichave(arqpdf,'\')+'.pdf')
     arqpdf := arqpdf+'-nfe.pdf'
    else
     arqpdf := arqpdf+'.pdf'
    end

    arqpdfsub := 'nfe\envresp.txt\'+extraichave(arqpdf,'\') 

    m_chave_antes_pdf := m_chave_nfe
    m_chave_nfe := arqpdfsub
    TEcle(184) // Visualizando por PDF vc poderá enviar por e-mail bla blaba
    execdos('start '+m_chave_nfe)
    m_chave_nfe := m_chave_antes_pdf
   end
  END

 end


 ritorna := .t.
else
 ritorna := .f.
end


sele paramet
repassa(1,'mdrvyct',mdrvyct+1)
dbselectar(ondestava)

return ritorna

*--------------->

//------------>
Function validamdfe()

na_janela(maxrow(),1,'Validando o MDF-e.',NIL,8)
aguarda(1)
memowrit("nfe\entnfe.tmp",'MDFE.VALIDARMDFE("'+m_chave_nfe+'")')

if !comandanfe()
 fechajanela()
 return .f.
end
 fechajanela()
return .t.

//------------------------->
Function assinamdfe()

na_janela(maxrow(),1,'Assinando o MDF-e.',NIL,8)
aguarda(1)

memowrit("nfe\entnfe.tmp",'MDFE.ASSINARMDFE("'+m_chave_nfe+'")')

if !comandanfe()
 fechajanela()
 return .f.
end
fechajanela()
return .t.

//----------->
Function enviamdfe()

na_janela(maxrow(),1,'Tentando enviar o MDF-e ao FISCO.',NIL,8)
aguarda(1)
memowrit("nfe\entnfe.tmp",'MDFE.ENVIARMDFE("'+m_chave_nfe+'",1,0,0)')

if !comandanfe()
 fechajanela()
 return .f.
end

fechajanela()
return .t.

//------------------------->
Function imprimemfe(minport,ncopy)

if ncopy = 0
 Tecle(6038) // 'Abortado. C¢pias = 0.')
 return .t.
end

if !file(m_chave_nfe) .and. file('nfe\envresp.txt\'+a_chave_nfe+'-mdfe.xml')
 a_chave_nfe := curdrive()+':\'+curdir()+'\nfe\envresp.txt\'+a_chave_nfe+'-mdfe.xml'
end


  arqpdf := subs(m_chave_nfe,1,at('-mdfe.xml',m_chave_nfe)-1) //+'.pdf'

  if !file('nfe\envresp.txt\'+extraichave(arqpdf,'\')+'.pdf')
   arqpdf := arqpdf+'-mdfe.pdf'
  else
   arqpdf := arqpdf+'.pdf'
  end
arqpdfsub := 'nfe\envresp.txt\'+extraichave(arqpdf,'\')



if ! file(m_chave_nfe)   //file(a_chave_nfe)

 if file(arqpdfsub)
  Tecle('Arquivo XML nao encontrado.')
  if confirma(6040) = "S" //'Deseja visualizar o PDF para poder imprimir pelo Editor de PDF')="S"
   execdos('start '+arqpdfsub)
   return .t.
  End
 end

end

na_janela(maxrow(),1,'Imprimindo o MDF-e.',NIL,8)
aguarda(1)




memowrit("nfe\entnfe.tmp",'MDFE.IMPRIMIRDAMDFE("'+a_chave_nfe+'","'+minport+'",'+ltri(str(ncopy))+')')

if !comandanfe()
 fechajanela()
 return .f.
end
fechajanela()

if !file('nfe\envresp.txt\'+extraichave(m_chave_nfe,'\',.t.)+'.pdf')
 impmfepdf(m_chave_nfe)
end

return .t.


//------------------------->
Function impmfepdf(o_arq_pdf)
local arqpdftest,arqtestpdf

acbrinsta := acbrnfeinsta()


arqpdftest := subs(o_arq_pdf,1,at('-mdfe.xml',o_arq_pdf)-1)+'.pdf'
arqtestpdf := subs(o_arq_pdf,1,at('-mdfe.xml',o_arq_pdf)-1)+'-mdfe.pdf'


if !file(o_arq_pdf)
 //Tecle(153) // 'NFE deve ser impressa na estação que tem o certificado.')
 //Tecle(hb_ansitooem('Porém faça uma tentativa.'))
end


if !testafile(arqpdftest) .or. !testafile(arqtestpdf)
 limpa()
 Tecle(6039) //'Arquivo .PDF do MDFE está aberto. Feche-o.')
 retu .f.
end




na_janela(maxrow(),1,'Imprimindo o PDF do MDFE.',NIL,8)
aguarda(1)

memowrit("nfe\entnfe.tmp",'NFe.ImprimirDAMDFEPDF("'+o_arq_pdf+'")')

if !comandanfe()
 fechajanela()
 return .f.
end
 fechajanela()
return .t.
Bom.... eu já até consegui fazer bastante coisa. Consegui emitir o mdf-e

Mas na hora de encerrar é que tá o perigo....

Tutorial ACBRMonitorPlus

Enviado: 27 Mai 2016 11:50
por Mário Isa
Finalmente consegui encerrar... ufa

segue o comando

Código: Selecionar todos

MDFe.EncerrarMDFe( "35160501227708000142580000000000631000000638", 27/05/2016, "5004403", "01227708000142", "1")

Tutorial ACBRMonitorPlus

Enviado: 27 Mai 2016 16:32
por rubens
Muito bem vinda sua contribuição Mário !!!

Obrigado
Rubens
:-Y

Tutorial ACBRMonitorPlus

Enviado: 27 Mai 2016 18:39
por JoséQuintas
Deve ajudar muita gente.

Sugestão pra simplificar:
(Facilita o fonte, reduz erros de digitação, e reduz o EXE):

Código: Selecionar todos

fll += '<prop>' 
fll += '<CPF>' + sohnumero( fornec->cgcfor ) + '</CPF>' 
fll += '<RNTRC>' + trim( fornec->rntrc ) + '</RNTRC>' 
fll += '<xNome>' + trim( fornec->nome ) + '</xNome>' 
fil += '<IE>' + trim( fornec->iesfor ) + '</IE>' 
fll += '<UF>' + trim( fornec->uffor ) + '</UF>' 
fll += '<tpProp>2</tpProp>' 
fil += '</prop>' 

Código: Selecionar todos

   cXml += "prop"
   cXml += XmlTag( "CPF", sonumero( fornec->cgcfor ) )
   cXml += XmlTag( "RNTRC", fornec->rntrc )
   cXml += XmlTag( "xNome", fornec->nome )
   cXml += XmlTag( "IE", fornec->iesfor )
   cXml += XmlTag( "UF", fornec->uffor )
   cXml += XmlTag( "tpProp", "2" )
   cXml += "</prop>"
...
FUNCTION XmlTag( cTag, cConteudo )
   RETURN "<" + cTag + ">" + Trim( cTag ) + "</" + cTag + ">"

Tutorial ACBRMonitorPlus

Enviado: 28 Mai 2016 10:38
por Mário Isa
Ótima a sua função XMLTag José Quintas....

Agora estou tendo um pequeno probleminha no acbrmonitorplus....

estou tentando encerrar e ele volta com a mensagem

veja o comando de entrada
MDFe.EncerrarMDFe( "35160501227708000142580000000000731000000731", 28/05/2016, "3520442", "01227708000142", "1")
e veja o retorno.txt

Código: Selecionar todos

ERRO: 
Não foi possível carregar XML
<?xml version="1.0" encoding="UTF-8"?><mdfeProc versao="1.00" xmlns="http://www.portalfiscal.inf.br/mdfe"><MDFe xmlns="http://www.portalfiscal.inf.br/mdfe"><infMDFe versao="1.00" Id="MDFe35160501227708000142580000000000731000000731"><ide><cUF>35</cUF><tpAmb>1</tpAmb><tpEmit>2</tpEmit><mod>58</mod><serie>0</serie><nMDF>73</nMDF><cMDF>00000073</cMDF><cDV>1</cDV><modal>1</modal><dhEmi>2016-05-28T09:30:51</dhEmi><tpEmis>1</tpEmis><procEmi>0</procEmi><verProc>1.00</verProc><UFIni>SP</UFIni><UFFim>MS</UFFim><infMunCarrega><cMunCarrega>3520442</cMunCarrega><xMunCarrega>ILHA SOLTEIRA</xMunCarrega></infMunCarrega></ide><emit><CNPJ>01227708000142</CNPJ><IE>749079200112</IE><xNome>MARIO ANTONIO PEREIRA I.SOLTEIRA ME</xNome><enderEmit><xLgr>PSO SAO LUIZ</xLgr><nro>209</nro><xBairro>ZONA NORTE</xBairro><cMun>3520442</cMun><xMun>ILHA SOLTEIRA</xMun><CEP>15385000</CEP><UF>SP</UF><fone>1837424186</fone></enderEmit></emit><infModal versaoModal="1.00"><rodo><veicTracao><cInt>BMR3562</cInt><placa>BMR3562</placa><tara>3000</tara><capKG>3500</capKG><capM3>2</capM3><prop><CPF>05597601830</CPF><RNTRC>12345678</RNTRC><xNome>MARIO ANTONIO PEREIRA</xNome><IE/><UF>SP</UF><tpProp>2</tpProp></prop><condutor><xNome>SANDRA LUCIA MACIEL PEREIRA</xNome><CPF>08527232880</CPF></condutor><tpRod>01</tpRod><tpCar>02</tpCar><UF>SP</UF></veicTracao></rodo></infModal><infDoc><infMunDescarga><cMunDescarga>5004403</cMunDescarga><xMunDescarga>INOCENCIA</xMunDescarga><infNFe><chNFe>35160501227708000142550010000062641000062642</chNFe></infNFe></infMunDescarga></infDoc><tot><qNFe>1</qNFe><vCarga>0.68</vCarga><cUnid>01</cUnid><qCarga>120.0000</qCarga></tot></infMDFe><Signature xmlns="http://www.w3.org/2000/09/xmldsig#"><SignedInfo><CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /><SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /><Reference URI="#MDFe35160501227708000142580000000000731000000731"><Transforms><Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" /><Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue></DigestValue></Reference></SignedInfo><SignatureValue></SignatureValue><KeyInfo></KeyInfo></Signature></MDFe>
O xml tá lá ....
e ele é válido pois abro no editor de xml e ele não apresenta nenhum problema de tags erradas...
tb consigo imprimir o .PDF através desse xml (então penso: ele é válido)

:%

Tutorial ACBRMonitorPlus

Enviado: 28 Mai 2016 11:06
por Mário Isa
Resolvido !

Foi só reiniciar o acbrmonitorplus que voltou a funcionar....

será mais um bug ?

Será q o comando ler.ini é semelhante a reiniciar o acbrmonitor ?

Vamos lá.... ;)

Tutorial ACBRMonitorPlus

Enviado: 28 Mai 2016 20:46
por Kiko Fernandes
Boa Noite!
José se me permite fazer uma observação apenas.

Penso que o correto é " +Trim(cConteudo) +" ao invés de "+ Trim(cTag) +"

JoséQuintas escreveu:Deve ajudar muita gente.

...
FUNCTION XmlTag( cTag, cConteudo )
RETURN "<" + cTag + ">" + Trim( cTag ) + "</" + cTag + ">"
[/code]