Informe de comprobación de inalterabilidad de datos

Las autoridades fiscales de algunos países exigen a las empresas demostrar que sus asientos contables registrados son inalterables, lo que significa que una vez que un asiento ha sido asegurado, ya no puede modificarse.

Para ello, Odoo usa el algoritmo SHA-256 para crear una huella digital única denominada hash para cada asiento. El hash se genera con los datos más importantes del asiento (los valores correspondientes a nombre, fecha, journal_id, company_id, débito, crédito, account_id y partner_id), los concatena e introduce en la función hash SHA-256 que genera una cadena de caracteres de tamaño fijo (256 bits). La función hash es determinista (la misma entrada siempre crea los mismos resultados): cualquier modificación en los datos originales, por más mínima que sea, cambiaría por completo el hash resultante. Por este motivo el algoritmo SHA-256 se utiliza con frecuencia para verificar la integridad de los datos.

Además, el hash del asiento anterior siempre se añade al siguiente asiento para formar una cadena de hash. Esto se utiliza para garantizar que no se añada un nuevo asiento posteriormente entre dos asientos asegurados, ya que hacerlo rompería la cadena de hash.

Nota

En teoría, los hash generados por el algoritmo SHA-256 no son únicos, ya que existe un número finito de valores posibles. Sin embargo, este número es muy alto: 2²⁵⁶, es mayor que el número de átomos en el universo conocido. Por eso los hash se consideran «únicos».

Funciones de inalterabilidad

Las funciones de inalterabilidad se pueden activar habilitando la opción asegurar asientos publicados con hash en cualquier diario o utilizando el asistente de asegurar asientos.

  • Se añaden dos indicadores a la vista de formulario del asiento contable. Muestran si el asiento está asegurado o no.

    • Un o (icono de candado) junto al estado Publicado.

    • Una casilla de verificación Asegurado en la pestaña Otra información.

  • Un filtro No asegurado está disponible en las vistas de lista de asientos contables y apuntes contables. Se puede utilizar para encontrar asientos contables publicados que aún no están asegurados.

  • La opción para abrir el asistente de asegurar asientos se muestra en el menú Contabilidad.

Asegurar asientos publicados con hash

Para activar la función de hash en un diario específico, ve a Contabilidad ‣ Configuración ‣ Diarios. Abre un diario de ventas, compra o misceláneos, ve a la pestaña Configuración avanzada y habilita Asegurar asientos publicados con hash. Los diarios para los que se activa esta función se denominan «restringidos».

Para calcular el hash de un asiento, Odoo recupera los asientos predecesores de la cadena (es decir, los asientos con el mismo prefijo de secuencia) y los procesa con hash de forma continua desde el último asiento con hash hasta el nuevo asiento a procesar.

Advertencia

Una vez que publicas un asiento en un diario restringido, ya no puedes desactivar la función ni editar ningún asiento asegurado.

Asistente de asegurar asientos

También puedes utilizar el asistente Asegurar asientos para asegurar todos los asientos contables, en todos los diarios, hasta una fecha específica.

Nota

El asistente opera independientemente de la configuración de diarios y los tipos de diario.

Para abrirlo, activa el modo de desarrollador, ve a Contabilidad ‣ Contabilidad y haz clic en Asegurar asientos. Si las funciones de inalterabilidad están activadas, también es visible fuera del modo de depuración.

Para asegurar asientos, selecciona una fecha hasta la cual todos los asientos deben asegurarse y presiona Asegurar asientos.

Advertencia

Después de asegurar los asientos, ya no puedes editarlos.

Nota

Puede ocurrir que se aseguren asientos posteriores a la fecha seleccionada. Esto es posible ya que la cadena de hash corresponde al prefijo de secuencia, ordenado por número de secuencia.

Descargar informe

Para descargar el informe de comprobación de la inalterabilidad de los datos, vaya a Contabilidad ‣ Configuración ‣ Ajustes ‣ Informes y haga clic en Descargar el informe de comprobación de la inalterabilidad de los datos.

La primera sección del reporte es una vista general de todos los prefijos de secuencia de diario que contienen asientos con hash. En la columna Restringido, puedes ver si un diario tiene activada (V) o no (X) la opción asegurar asientos publicados con hash. La columna Verificar te indica si todos los asientos están correctamente hasheados.

Informe de configuración de dos diarios

La segunda sección proporciona un resultado más detallado de la verificación de consistencia de datos para cada prefijo de secuencia de diario hasheado. Puedes ver el primer asiento hasheado y su hash correspondiente, así como el último asiento hasheado y su hash correspondiente.

Informe de comprobación de consistencia de los datos de un diario