Page 1 of 1

error Factura electrónica

Posted: Thu Jan 10, 2019 1:05 pm
by Loren
Buenas tardes:

Estoy implementando un nuevo módulo a mi programa para generar automáticamente los archivos .XML para facturas electrónicas.
Aparentemente me los genera "ok", pero cuando intento validarlos con el programa externo "FacturaE", me genera un error justo en el momento de la importación del tipo:

id factura | Error
x | Com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceExc...


¿ A qué puede ser debido ?

Mil gracias.
Saludos.
LORENZO.

Re: error Factura electrónica

Posted: Thu Jan 10, 2019 2:09 pm
by hmpaquito

Re: error Factura electrónica

Posted: Sat Jan 12, 2019 9:59 am
by Loren
Gracias hmpaquito por contestar.

Ya solventé ese problema. Era el campo "dirección del cliente" que contenía caracteres tales como " º " y al parecer NO los reconoce.

Ahora tengo otro error: Me genera el XML (versión 3.2.1) y lo lee perfectamente cualquier lector de XML (por ejemplo el navegador), Sin embargo, cuando intento validarlo con "FacturaE" (programa específico para firmar digitales en España), me genera un error del tipo:

Id: Borrador-45 && estado de la factura-nº de factura
Error: Error de validación contra esquema XSD

Si consulto el esquema XSD para versión 3.2.1 XML, dice que el nº de factura debe ser "Caracteres máximo 20 dígitos."... y esto lo cumple!!

Si genero un archivo XML a través de "FacturaE" genera un archivo XML muy parecido al mio, donde la estructura "InvoiceNumber" es exactamente igual a la mia y sin embargo SI lo lee perfectamente.

Mi parte del código, donde al validar se genera el ERROR:

Code: Select all

     FWrite(facturaE,'<InvoiceHeader>'+ CRLF )
       FWrite(facturaE,'<InvoiceNumber>'+alltrim(str(gesfactu->numticket))+'</InvoiceNumber>'+ CRLF )
       FWrite(facturaE,'<InvoiceSeriesCode>Borrador-</InvoiceSeriesCode>'+ CRLF ) 
       FWrite(facturaE,'<InvoiceDocumentType>'+iif(gesfactu->fsimpli=.t.,'FA','FC')+'</InvoiceDocumentType>'+ CRLF ) 
       FWrite(facturaE,'<InvoiceClass>'+iif(gesfactu->LRECTIFI=.t.,'OR','OO')+'</InvoiceClass>'+ CRLF )
     FWrite(facturaE,'</InvoiceHeader>'+ CRLF )
 
La cabecera de mi archivo XML es copia exacta a la que genera FacturaE, tal cual:

Code: Select all

 facturaE := fCreate(cficheroXML,0) && nombre del fichero facturae: F_nºfactura/año factura.XML
 FWrite(facturaE,'<?xml version="1.0" encoding="ISO-8859-1"?>')
 FWrite(facturaE,'<fe:Facturae xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:fe="http://www.facturae.es/Facturae/2014/v3.2.1/Facturae">'+ CRLF)
 FWrite(facturaE,'<FileHeader>'+ CRLF )
   FWrite(facturaE,'<SchemaVersion>3.2.1</SchemaVersion>'+ CRLF )
   FWrite(facturaE,'<Modality>I</Modality>'+ CRLF )
   FWrite(facturaE,'<InvoiceIssuerType>EM</InvoiceIssuerType>'+ CRLF )
   ...
   ...
 
¿ Donde puede estar el fallo?
Por favor, algún alma caritativa....

Mil gracias.
LORENZO.

Re: error Factura electrónica

Posted: Sun Jan 13, 2019 8:55 am
by Xevi
Lorenzo,

creo que esta línea es la que te está dand problemas.
FWrite(facturaE,'<InvoiceSeriesCode>Borrador-</InvoiceSeriesCode>'+ CRLF )

coméntala y prueba si ella

Re: error Factura electrónica

Posted: Sun Jan 13, 2019 3:35 pm
by AngelSalom
Usa este validador web : http://sedeaplicaciones2.minetur.gob.es/FacturaE/ que te dará más pistas.