====== Factura electrónica (Facturae) ====== SmartOffice permite la exportación de una factura electrónica que cumple con las normativas vigentes y resumidas en la página www.facturae.es del Gobierno de España. El formato de factura generado por SmartOffice se llama //facturae//, anteriormente conocido como AEAT-CCI, que es el formato basado en el estándar XML usado por la Agencia Tributaria.\\ El formato de la firma del documento se llama XadES, que también coincide con el estándar usado por la Agencia Tributaria. SmartOffice soporta tanto la versión 3.1 como la versión 3.2. En caso de la firma digital se trata de la versión XAdES-EPES, //formato de firma electrónica avanzada básico//. ===== Requisitos ===== ==== Certificado reconocido ==== En primer lugar se necesita un certificado reconocido. En las [[http://www.agenciatributaria.es/AEAT.internet/Ayuda/obtener_certificado_electronico.shtml|páginas de la Agencia Tributaria]] se explica como conseguirlo. Para SmartOffice se necesita un certificado en **soporte software**, no vale en soporte de tarjeta. Además hay que instalar el certificado en el ordenador, donde se quieren generar las facturas electrónicas, en el **almacén de certificados del mismo Windows**. No vale instalarlo en el almacén del explorador que usamos, por ejemplo en el de //Firefox//. Para añadir un certificado al almacén de certificados de Windows buscamos (''Windows+S'') por la palabra //certificado//, que nos muestra la aplicación del panel de control //Administrar certificados de usuario//. Con ''Intro'' la abrimos y escogemos en el árbol de la derecha la carpeta //Certificados - Usuario actual/Personal/Certificados//, como muestra la siguiente imagen. {{ :usu:guia_de_usuario:certusuariowindows.png?500 |Insertar certificado Windows}} Entonces abrimos el menú //Acción/Todas las tareas/Importar// y seguimos las instrucciones del asistente. Si se pone una contraseña será necesario introducirla cada vez que se quiere firmar un documento desde SmartOffice, por lo cual se recomienda no usarla. Hay que dar un nombre inequívoco al certificado importado: {{ :usu:guia_de_usuario:certnombredescriptivo.jpg?600 |Nombre descriptivo certificado}} Se puede cambiar el Nombre descriptivo en cualquier momento, abriendo las propiedades de un certificado, accesible con el menú del botón derecho. **El nombre puesto como nombre descriptivo es el que aparece en los dialogos de Smart y no debería repetirse. Tampoco se debería elegir un nombre que ya aparece dentro de otro nombre descriptivo. //Se puede por ejemplo usar el nombre o CIF de la empresa y el año del comienzo de vigencia del certificado como nombre, ej ''SMART SOFTWARE 2026''//**. En los siguientes enlaces se puede encontrar información avanzada sobre como instalar un certificado en el explorador de Windows (que usa el mismo almacén de certificados del sistema de Windows): * [[https://www.sede.fnmt.gob.es/preguntas-frecuentes/exp-imp-y-elim-de-certificados|Importar y exportar certificados (FNMT)]] * [[http://www.agenciatributaria.es/AEAT.internet/Inicio/Ayuda/Certificado_electronico/Como_importar_un_certificado_electronico/Como_importar_un_certificado_desde_Internet_Explorer.shtml|Importar certificado en el IExplorer]] También se puede añadir certificados desde la aplicación ''certlm.msc'', que se puede arrancar desde el menú de inicio con la tecla ''Windows+R''. Una vez que hemos importado el certificado en el almacén de Windows podemos seleccionarlo en las opciones de SmartOffice, pestaña //Firmas//: {{ :usu:guia_de_usuario:soopcionesfirma.jpg?600 |Opciones Firma}} === Borrar certificados caducados === Conviene borrar los certificados caducados del almacén de Windows. Normalmente se realiza esta operación con el menú correspondiente: {{ :usu:guia_de_usuario:certborrar.jpg?400 |Borrar certificado}} Hay casos en los que aparece en la selección de SmartOffice, o de cualquier otro de nuestros programas que requieren el uso de un certificado, unos certificados que luego no vemos en el manager de certificados de Windows. En este caso podemos buscar el certificado por las primeras letras de su clave de identificación, que vemos en los parámetros o la descripción del certificado: {{ :usu:guia_de_usuario:certnroserie.jpg?600 |Nro. de serie certificado}} Abrimos el manager de certificados y marcamos en el árbol a la izquierda la raíz, //Certificados - Usuario actual//. A continuación escogemos el menú //Acción/Buscar certificados//. En el dialogo que se abre cambiamos //Buscar en el campo:// al valor ''Nº de serie'' y metemos en el campo //Contiene:// las primeras letras del número de serie del certificado. {{ :usu:guia_de_usuario:certbuscar.jpg?500 |Buscar certificado}} Al dar en //Buscar ahora// aparecerá abajo el certificado encontrado y lo podemos borrar con el botón derecho, menú //Eliminar//. Si no fuese así podemos usar el //PowerShell//. Lo abrimos buscando en Windows por ''power'', no hace falta abrirlo en modo de administrador. Con el siguiente comando pasamos todos los certificados al fichero ''cert.txt'': Get-ChildItem -Path Cert:\ -Recurse > cert.txt Dentro de este fichero buscamos por ejemplo por el nif los certificados que nos interesan. Lo importante de la información es el **Thumbprint**, que podemos usar para borrar el certificado entcontrado: Remove-Item -Path "Cert:\CurrentUser\My\ABABABABABABABABABABABABAB" ''ABABABABABABABABABABABABAB'' es el Thumbprint del fichero cert.txt. Si quisieramos ver solamente los certificados del almacén ''MY'', que son los certificados que muestran los programas de Smart, podemos usar el comando Get-ChildItem -Path Cert:\CurrentUser\My | Format-List Subject,Thumbprint === Problemas === Si importamos el certificado con el asistente como explicado arriba, en un paso tenemos la posibilidad de marcar las opciones de importación: {{ :usu:guia_de_usuario:asistenteimportarcertproteccion.jpg?400 |Asistente importar firma opciones}} **Si aquí marcamos la opción ''Habilitar protección segura de clave privada'', aparecerá un mensaje cada vez que se quiere firmar un documento con este certificado**: {{ :usu:guia_de_usuario:advertenciafirma.jpg?400 |Advertencia acceso certificado}} Si hemos importado el certificado con esta opción seleccionada y queremos que no aparezcan estos mensajes, no queda otra que reimportar el certificado con la opción deshabilitada. ==== Programa AutoFirma ==== Smart usa para cualquier operación de firma el programa //AutoFirma// del gobierno de España. Este programa se puede bajar desde la siguiente página:\\ [[http://firmaelectronica.gob.es/Home/Descargas.html|Descargas firma electrónica gobierno de España]] Tanto si trabajamos en un Windows de 32 bits como en uno de 64 bits nos vale la versión //AutoFirma para Windows 32 bits//. Una vez instalado el programa, hay que abrir en SmartOffice el dialogo de las opciones, menú //Archivo/Opciones//, y escoger la pestaña //Firmas//. {{ :usu:guia_de_usuario:soopcionesfirmas.png?400 |Opciones firmas}} Hay que poner en el campo //Acceso al programa// el acceso al programa //AutoFirmaCommandLine.exe//, que Smart normalmente pone automáticamente, si hemos instalado AutoFirma en la carpeta estándar. Luego, en el campo //Certificado// hay que escoger (con F6) el certificado a utilizar para firmar las facturas electrónicas. **Los certificados que se presentan con F6 son los nombres //alias// de los certificados guardados en el equipo. Si el nombre del alias contiene por ejemplo una coma, el programa de firma //AutoFirmaCommandLine// no encuentra el certificado.**\\ En este caso podemos usar los //filtros// en el campo del certificado: filtro=subject.contains:B12345678 Este filtro devuelve el certificado que contiene en su campo //Subject// el NIF que hemos puesto.\\ También podemos usar filtro=issuer.contains:FNMT para seleccionar un certificado emitido por la FNMT.\\ También es posible combinar los dos filtros: filtro=subject.contains:B12345678;issuer.contains:FNMT El filtro por número de serie sería filtro=qualified:68f0ab6b4eea5be7601230df5fff5657 **Lo único que hay que tomar en cuenta es que el filtro debe de devolver exáctamente un certificado.** Con estos dos ajustes, SmartOffice firma automáticamente cualquier factura electrónica en el momento de exportarla. /* ==== Máquina virtual de JAVA (JRE) ==== Hay que instalar una máquina virtual de Java en el ordenador en el que se quiere generar las facturas electrónicas. **Es importante instalar una versión de 32 bits**, que se puede descargar de las páginas de Oracle: [[http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html|Oracle 1.8 JRE]]\\ El fichero a elegir sería el denominado //Windows X86 offline// (versión actual: 8u101). Es probable que en algunos ordenadores ya se ha instalado una máquina virutal de Java. Esto se puede comprobar desde una línea de comandos con el comando java -version Para ver si se trata de una versión de 32 bits, ponemos el comando java -d64 -version que tiene que devolvernos un error como nos muestra la siguiente imagen. {{ :usu:guia_de_usuario:javavercmd.png |}} ==== Librerías de Java ==== Las librerías de Java contienen el código necesario para firmar y validar las facturas electrónicas. **Hay que ponerse en contacto con Smart para que se guarden las librerías en la base de datos del cliente.** */ ===== Generar una Facturae ===== ==== Configuración de países, unidades y formas de pago ==== En primer lugar tenemos que definir las correspondencias entre los códigos de Smart y los de la facturae en las tablas de configuración, especialmente en la tabla de los paises y de las unidades. En ambas tablas existe un campo ''Cód. facturae'', que lo tenemos que rellenar para todos los códigos usados en las facturas de Smart. Las opciones de menú para configurar países y unidades son: * Configuración/General/Países. * Configuración/Inventarios/Unidades de medida. * Configuración/Ventas/Formas de pago. ==== Configuración de los códigos administrativos del cliente ==== Se usa especialmente cuando el cliente es una entidad pública o cuando el cliente trabaja para la administración pública y se actua entonces como subcontratista de una entidad pública. === Nuestro cliente es una entidad pública (FACe) === Para las entidades públicas se usan los códigos //DIR3//, que se pueden averiguar en la página del gobierno, [[https://face.gob.es/es/directorio/administraciones|directorio de organismos]]. Esta página nos muestra las combinaciones de roles dadas de alta para un organismo público. Si buscamos por ejemplo por la entidad //UNIVERSIDAD DE OVIEDO// y filtramos en los resultados por la unidad tramitadora //U01300104//, nos muestra el siguiente detalle: {{ :usu:guia_de_usuario:sofacedir.jpg?500 |Roles Universidad Oviedo}} Los roles posibles son los siguientes: * 01 - Oficina contable * 02 - Órgano gestor * 03 - Unidad tramitadora * 04 - Órgano proponente (normalmente no es necesario ponerlo) Además de código DIR3, del rol y del nombre de cada departamento se necesita la dirección de cada uno de ellos (que puede ser el mismo). Estos datos no aparecen en la web de face, se lo tenemos que preguntar al cliente. La configuración de los códigos administrativos y de los códigos de unidades se realiza desde la ficha del cliente, menú //Cliente/Departamentos//. Lo primero que tenemos que hacer es definir los distintos departamentos o unidades del cliente con los que tenemos que tratar. Se hace con el menú //Grupo dpto./Departamentos F10//, que nos abre una rejilla donde metemos los siguientes datos: ^Campo ^Descripción ^Obligatorio ^ |Cód. depto. |El código DIR3 del departamento. |Si | |Nombre |El nombre del departamento. |No | |Dirección |La dirección. |Si | |Cód. postal |El código postal. |Si | |Población |La población. |Si | |Provincia |La provincia. |Si | |Cód. país |El código del país (se puede escoger con F6). |Si | | |El resto de campos no es necesario. | | {{ :usu:guia_de_usuario:sofacedptos.jpg?400 |Editar departamentos}} Después de definir los departamentos, podemos crear grupos de estos departamentos, que definen el rol que cada departamento toma en un contrato. Para la administración pública estos roles son los que ya hemos visto arriba (01-04). Cerramos la rejilla de los departamentos y creamos o modificamos el grupo. Siguiendo el ejemplo de arriba, el grupo sería este: {{ :usu:guia_de_usuario:sofacegrupos.jpg?500 |Grupos de departamentos}} Los grupos definidos de esta manera se pueden usar entonces en el campo correspondiente del cliente, de la obra y de la factura, campo //Grupo departamentos//. Cuando se crea una nueva obra, el grupo se copia del cliente y cuando se crea una factura, el grupo se copia de la obra o del cliente. {{ :usu:guia_de_usuario:sofaceusogrupo.jpg?500 |Uso grupos de departamentos}} === Nuestro cliente trabaja para una entidad pública, somos subcontratista (FACeB2B) === Cuando trabajamos como subcontratista de un cliente que por su parte trabaja para la administración pública, este cliente tiene que darse de alta en el //directorio de entidades (DIRE)//, que podemos consultar en la página del gobierno [[https://dire.gob.es|DIRE]]. Cada empresa dada de alta en DIRE tiene un código principal para la entidad y además puede tener números DIRe para diferentes unidades dentro de la entidad. El DIRe se compone del código de país, el CIF de la empresa y un número de 4 dígitos, donde el ''0000'' está reservado para la entidad misma. **El código DIRe del cliente lo podemos poner en el campo //DIR3/DIRe// de su ficha en Smart.** Normalmente nos lo comunica el cliente. {{ :usu:guia_de_usuario:soclienteute.jpg?400 |Cliente UTE}} También podemos crear departamentos para el cliente //no público// y comunicarlos en la factura electrónica, pero normalmente no se usa. Además de meter el código DIRe del cliente, tenemos que crear un cliente para la entidad pública de la que somos subcontratista, si aún no la tenemos fichada. **Tenemos que crear por lo menos el departamento gestor que nos dirá nuestro cliente.** En este caso no es necesario poner la dirección, vale con poner el código y nombre de rol que podemos encontrar en el directorio de organismos explicado arriba. {{ :usu:guia_de_usuario:soclientedepto.jpg?500 |Cliente público departamentos}} Ese nuevo cliente de la administración pública lo tenemos que meter como //Cliente principal// en la ficha de nuestro cliente //no público//. Se puede ver en la penúltima imagen (Cliente UTE). También puede ser necesario meter la referencia de la obra pública. Para esto tenemos el campo //Ref. cliente principal// en la obra y la factura, pestaña //Facturación//. /* La configuración de los códigos administrativos se realiza con el campo "Cód. depto. factura-e", que existe en la ficha del cliente, en la ficha de la obra y en la factura misma, siempre en la pestaña "Facturación". Primero se coge el código metido en la misma factura. Si está vacío, se coge el código de la obra y si este también está vacío, se mira en la ficha del cliente. Pulsa F6 en este campo y configura el o los centros a utilizar. Muchas veces los centros administrativos piden hasta trés códigos de departamentos para cada una de los //roles// 01 (Oficina Contable), 02 (Órgano Gestor) y 03 (Unidad Tramitadora). Si la dirección de los tres departamentos es la misma, se puede definir de la siguiente manera: {{ :usu:guia_de_usuario:facturaedeptos1.png?600 |Deptos. factura-e 1}} Se pone en "Tipo de rol" los roles a usar separados por coma (no utilizar espacios) y en "Códigos administrativos" los códigos correspondientes a cada una de los roles.\\ Si no se pone ningún dato den el campo "Códigos administrativos", se usa el mismo "Cód. depto." para cada uno de los roles. En el caso de que los departamentos a utilizar para los distintos roles tuviesen direcciones distintas, tenemos que definir un departamento para cada rol: {{ :usu:guia_de_usuario:facturaedeptos2.png?600 |Deptos. factura-e 2}} Luego se tiene que dejar en blanco el campo "Cód. dpto. factura-e" (en la factura, en la obra y en la ficha del cliente). En este caso Smart usa los tres roles como están definidos en la última imagen. **No obstante, en este caso no se puede trabajar con departamentos que varían según obra para este cliente.** */ ==== Otros campos importantes de la factura electrónica ==== ^Bloque factura el. ^Campo factura el. ^Desc. factura el. ^Origen Smart ^ | (3.2.2)| |Referencia de pedido. |GALV: Campo //Nº pedido// de la factura, o //Decripción 3// de la obra.\\ GBRU: //Descripción 4// de la obra.\\ Resto: no se asigna. | | (3.2.2)| |Código del expediente de contratación. |GALV: Campo //Referencia// de la factura o //Descripción 4// de la obra.\\ Resto: //Descripción 4// de la obra. | | (3.2.2)| |Referencia del contrato del receptor. |Campo //Referencia// de la factura para todos menos GALV. El campo de referencia viene del últimos registro de //Referencias por fecha// de la obra. | | | |Referencia del contrato del Receptor. |Campo //Referencia// del contrato del albarán de la línea, o el valor del mismo campo de la cabecera (ver arriba) den caso de un formato 3.2.1 o anterior. | | | |Referencia de la Operación, Número de Pedido, Contrato, etc. del Receptor. |Partiendo de la línea del albarán: el //Nº pedido// del contrato, o la //Referencia (Nº pedido cliente)// de la cabecera del albarán, o el mismo valor que en el mismo campo de la cabecera (ver arriba). | | (<=3.2.1)| |Referencia del expediente. |El valor del mismo campo de la cabecera (ver arriba) en caso de un formato 3.2.1 o anterior. | | | |Número de referencia del albarán. |El campo //Cód. contrato alq.// de la cabecera del albarán, o el número del albarán. | |\\ | |Información sobre la licitación del organismo público que deriva en la subcontratación. |Se coge el rol ''02'' del grupo de departamentos puesto en el campo correspondiente del cliente principal de la cabecera de factura. | |\\ | |Información sobre la licitación del organismo público que deriva en la subcontratación. |Campo //Ref. cliente principal// de la cabecera de factura. | |\\ | |Información sobre los organos de contratación del receptor. |Campo //DIRe/DIR3// de la ficha del cliente. | ==== Generación de la factura ==== Una vez terminada la configuración, abrimos la ficha de las facturas (//Ctrl+F//), y seleccionamos la factura a exportar. Podemos utilizar uno de los dos formatos implementados mediante: * Factura/Generar fichero facturae 3.1 * Factura/Generar fichero facturae 3.2 {{:usu:guia_de_usuario:facturae.png|}} /* Después de una exportación exitosa confirmamos que queremos firmar la factura. */ Si hemos realizado la configuración del programa //AutoFirma// como indicado más arriba, después de una exportación exitosa de la factura, SmartOffice procede automáticamente a la firma de la misma. La extensión del archivo antes de firmar es siempre **. xml**. Por otro lado, la del archivo con la firma puede ser **.fir** o **.xsig** /* Ahora, si es la primera vez que utilizamos la exportación, SmartOffice nos pregunta, donde en el ordenador se encuentra la librería de Java, ''jvm.dll''. El sitio estándar es C:\Program Files (x86)\Java\jre7\bin\client\jvm.dll Si no se encuentra, puede buscar el archivo con la función de búsqueda de Windows. {{ :usu:guia_de_usuario:facturae3.png |Facturae jvm.dll}} Ahora es el momento de elegir el certificado que queremos usar para firmar el documento. {{ :usu:guia_de_usuario:facturae4.png |Facturae certificado}} Para terminar, SmartOffice comprueba la factura, la firma y valida el documento firmado. Si todo ha ido bien, nos muestra un mensaje de éxito. */ Si todo ha ido bien, SmartOffice nos muestra un mensaje de éxito con los nombres de los dos ficheros creados. Podemos comprobar la factura generada en el siguiente sitio: [[https://proveedores.face.gob.es/proveedores/validar-factura|Servicio de validación de una facturae]] {{ :usu:guia_de_usuario:facturae5.png |Facturae resultado comprobación}} Otros sitios de validación: - [[https://valide.redsara.es/valide/validarFirma/ejecutar.html]]