4D Write Pro: Generación de facturas electrónicas

Traducido automáticamente de Deepl

4D V20 R4 introduce una función emocionante en 4D Write Pro-ahora, le permite generar facturas electrónicas. Pero, ¿qué queremos decir exactamente con facturas electrónicas?

Una factura electrónica (o e-factura) se genera, transmite, recibe y almacena electrónicamente, lo que permite una gestión más eficiente y respetuosa con el medio ambiente de las transacciones comerciales.

Aunque ofrecen muchas ventajas, también conllevan sus propias limitaciones específicas, sobre todo en cuanto a la complejidad del proceso de generación. Sin embargo, con 4D Write Pro, nos hemos dado cuenta de que la gestión de esta complejidad es mucho más manejable de lo que se percibía inicialmente.

HDI: Generación de facturas electrónicas

¿Por qué facturas electrónicas?

Las facturas electrónicas pueden adoptar diversos formatos digitales, como el PDF (que es el que utilizaremos), y pueden transmitirse a través de portales en línea, CRM, etcétera. Su procesamiento puede automatizarse, reduciendo el tiempo de gestión, el riesgo de errores, la necesidad de impresión, el almacenamiento físico, el impacto ecológico, etc.
También se conoce como formato inteligente o híbrido porque puede ser leído por un ser humano y por un ordenador.
También es un formato que se convertirá en obligatorio e imprescindible en los próximos meses o años en países de todo el mundo (Factur-x en Europa), sobre todo para todos los asuntos relacionados con la Administración.

4D Write Pro y el formato Factur-X/ZUGFeRD

4D Write Pro ya permite producir archivos en formato PDF y, desde 4D V20 R3, también en formatos PDF/A2 y PDF/A3. Para las facturas electrónicas, se utilizará el formato PDF/A3, ya que permite integrar archivos externos. En el caso de una factura electrónica, sólo se necesita un fichero externo, un fichero XML. Éste debe ser el primero si se integran muchos ficheros.

¡En resumen, podemos decir que PDF/A3 + XML = Factur-X (en Francia) / ZUGFeRD(en Alemania) se realizará en un solo paso por 4D Write Pro!

¿Qué contenido para XML?

El archivo Factur-X/ZUGFeRD XML contiene información estructurada sobre la factura, como datos del vendedor y del comprador, líneas de facturación, importes, impuestos, etc.
Las plantillas estándar europeas como MINIMUM, BASICWL, EN 16931, BASIC y EXTENDED son las más comunes.
También pueden utilizarse formatos «a medida», pero su validación (volveremos sobre ello) será menos evidente, y su uso restringido.

Encontrará información completa sobre estos formatos en el sitio web fnfe-mpe.org: https://fnfe-mpe.org/factur-x/factur-x_en/

¿Cómo se genera un Factur-x/ZUGFeRD?

No olvidemos que una factura electrónica es, ante todo, un PDF en el que se incluye nueva información. Se han añadido dos nuevos atributos a los ya existentes para la exportación a PDF.

Empecemos por «facturx».

Este atributo, facturX, es un objeto que sólo contiene dos atributos opcionales.
Esto significa que la mera presencia de este objeto, incluso vacío, será suficiente para generar un documento Factur-X/ZUGFeRD válido.

$options:={}
$options.facturX:={}
$options.facturX.profile:="BASIC" // optional (when passed, it must match the first file XML content)
$options.facturX.version:="1.0" // default value

Luego vienen los «archivos».

En un documento PDF/A3 pueden incluirse muchos archivos. Por eso, el atributo files es una colección que contendrá objetos, cada uno de los cuales describirá el fichero a incluir.

Tendrán atributos que diferirán según la función del archivo. En el caso de una factura electrónica (recordatorio: primer fichero de la lista), la mayoría de los atributos son opcionales excepto, por supuesto, el contenido XML que puede enviarse a través de un atributo data (como texto) o de un atributo file (como 4D.File).

Notas:
El XML debe estar pregenerado y cumplir todos los requisitos del estándar (la demo de HDI muestra un ejemplo de creación de XML basado en el perfil BASIC ). 4D Write Pro no comprobará el contenido de su archivo XML, así que asegúrese de validar su archivo XML antes de insertarlo en la factura electrónica Factur-X / ZUGFeRD.

$xmlFile:={} // creates the first file object
$xmlFile.name:="factur-x.xml"  // default value
$xmlFile.description:="Factur-X/ZUGFeRD Invoice"  // default value
$xmlFile.mimeType:="text/xml"  // default value
$xmlFile.data:=$xmlText  // MUST be valid, NOT checked by 4D
$xmlFile.relationship:="Data" // default value

$options.files:=[$file]  // more files could be added, the first one always is for facturX/ZUGFeDR

o (variación, en lugar de $xmlFile.data)

$xmlFile.file:=$xmlFile // actual file on disk that must be a valid xml file

Validación en línea

Como se mencionó anteriormente, 4D Write Pro no valida el contenido. Sólo se comprueba la estructura. Sin embargo, existen validadores en línea. Los más fiables parecen ser veraPDF(https://demo.verapdf.org) y fnfe-mpe.org (https://services.fnfe-mpe.org/account/home). El segundo tiene la doble ventaja de poder validar el propio XML y, en segundo lugar, una factura completa (véase el IDH para ver un ejemplo completo).

Conclusión

Esta nueva funcionalidad responde a una creciente demanda de modernidad y cumple los requisitos legales y administrativos.

Generar facturas electrónicas en serie será sencillo, gracias a plantillas genéricas y métodos para generar XML correctamente formateados.

En última instancia, lo más complicado puede ser elegir entre los distintos perfiles posibles, pero el uso suele dictar esta elección.

Comparta sus comentarios y opiniones sobre esta nueva funcionalidad en los Foros 4D.

Roland Lannuzel
- Propietario de Producto y Experto en 4D - Después de estudiar electrónica, Roland se dedicó a la informática industrial como desarrollador y consultor, construyendo soluciones para clientes con una variedad de bases de datos y tecnologías. A finales de los años 80 se enamoró de 4D y lo ha utilizado para escribir aplicaciones de negocio que incluyen sistemas de contabilidad, facturación y correo electrónico.Eventualmente se unió a la compañía en 1997, las valiosas contribuciones de Roland incluyen el diseño de especificaciones, herramientas de prueba, demos, así como la formación y hablar con la comunidad 4D en muchas conferencias. Continúa dando forma activamente al futuro de 4D definiendo nuevas características y herramientas de desarrollo de bases de datos.