miércoles, 17 de agosto de 2022

Linux y la factura electrónica.

Leo en la página del Ministerio de Asuntos Económicos y Transformación Digital que en noviembre de 2021 se aprobó el anteproyecto de la llamada "Ley Crea y Crece", la cual recoge un punto importante para las empresas y autónomos: "Se extiende el uso de la factura electrónica en todas las relaciones comerciales entre empresas y autónomos como medida de digitalización y de lucha contra la morosidad comercial". La información está recogida aquí.

Por lo visto, se prevé que para el año 2023 ya entrará en vigor y, desde ese momento, todas las empresas y autónomos deberán hacer uso de la factura electrónica, y no hacerlo conllevará sanciones de hasta 10.000 €. Toca, por lo tanto, modificar otra vez sistemas, y nuevo quebradero de cabeza para los que usan Linux. En este artículo voy a explicar cómo instalar y configurar en Linux (en concreto, OpenSuse) el programa que el Gobierno ha puesto a disposición de todos para usar la dichosa factura electrónica.

Lo primero es descargar el programa. A fecha de esta entrada, la versión disponible es la 3.4, que puede descargarse directamente desde esta página. No obstante, conviene visitar la página principal de descargas aquí, por si hay versiones más nuevas y para acceder a los manuales de uso de la aplicación.

Descargamos la versión para Linux, y obtendremos una aplicación en java. Cuando se haya descargado, hay que ejecutar como usuario normal (no como root) dicha aplicación con el siguiente comando:

java -jar facturae_3.4_linux.jar

 

El programa se instalará en el directorio home, en el directorio del usuario que lo haya instalado (es decir, en /home/[usuario]), y en su propia carpeta. Cuando haya finalizado la instalación, veremos que en su carpeta aparece un archivo llamado "run.sh" que es el que permite ejecutarlo. Pero para que funcione bien hay que hacer un par de modificaciones.

 

Modificación del script de ejecución.

 

Si se usa KDE, al intentar ejecutarlo dará un error. Es lo mismo que pasaba con Autofirma y que expliqué aquí. La solución es la misma, así que tenemos que editar el archivo "run.sh" y añadir como primera línea "#!/bin/sh". Guardamos y cerramos, y el programa debería arrancar si problema.


Java 1.8.


El programa "Facturae" sólo funciona bien con Java 1.8. Puede arrancar con otras versiones desde la 1.6, pero para crear facturas y para conectar con FACe debe usarse obligatoriamente la versión 1.8 (como mucho, hasta la 1.8.0_144) para usar todas sus funciones.


El problema es que muchas distribuciones modernas de Linux ya instalan versiones superiores. De hecho, Opensuse Leap 15.4 (la última estable en este momento), viene con Java 11.


No hay problema. Se pueden tener instaladas varias versiones de Java en el mismo sistema, pues cada versión se instala en su propio directorio. Si no tenemos instalado Java 1.8, hay que hacerlo con la siguiente orden:


sudo zypper install java-1_8_0-openjdk java-1_8_0-openjdk-headless


Una vez instalado, hay que especificar que Facturae utilice la versión 1.8 de java y no la 11, que es la que por defecto usa el sistema. Para ello tenemos que modificar nuevamente el archivo "run.sh". Podemos hacerlo con Kate o con Nano, o con cualquier programa de edición de texto.


kate run.sh

nano kate.sh


Después de todos los comentarios vemos que hay una línea que empieza por java:

 

 java -Dfile.encoding=UTF8 -cp [...]


Esta línea arranca el programa con la versión de Java establecida por defecto en el sistema (la versión 11, como hemos visto). Para que use la versión 1.8 hay que cambiar la palabra "java" por la ruta completa de la versión 1.8. La modificación sería la siguiente:


java -Dfile.encoding=UTF8 -cp [...]

/usr/lib64/jvm/jre-1.8.0-openjdk/bin/java -Dfile.encoding=UTF8 -cp [...]


Sólo hay que cambiar la palabra "java". No hay que modificar nada más del resto del archivo. Guardamos y cerramos, y el programa debería funcionar correctamente.


Parece que, de momento, se podrá seguir usando Linux para trabajar. Hasta la siguiente trampa.