Informe de comprobación de inalterabilidad de datos¶
Las autoridades fiscales de algunos países exigen a las empresas que demuestren que sus asientos contables confirmados no han sido alterados, lo que significa que, una vez asegurado un asiento, ya no se puede modificar.
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 habilitar activando la opción asegurar asientos confirmados con hash en cualquier diario o mediante el asistente para asegurar asientos.
Se añaden dos indicadores a la vista de formulario del asiento contable. Estos muestran si el asiento está asegurado o no.
Un icono o (icono de candado) junto al estado Contabilizado.
Una casilla Asegurado en la pestaña Otra información.
Hay un filtro No asegurado disponible en las vistas de lista de los asientos contables y los apuntes contables. Se puede utilizar para encontrar asientos contables confirmados que aún no están asegurados.
La opción para abrir el asistente para asegurar asientos se muestra en el menú Contabilidad.
Asegurar asientos confirmados con hash¶
Para activar la función de hash en un diario específico, vaya a . Abra un diario de ventas, de compras o varios, vaya a la pestaña Ajustes avanzados y active Asegurar asientos confirmados 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 calcula de forma continua desde el último asiento con hash hasta el nuevo asiento que se debe calcular.
Advertencia
Una vez que confirma un asiento en un diario restringido, ya no puede desactivar la función ni editar ningún asiento asegurado.
Asistente para asegurar asientos¶
También puede utilizar el asistente Asegurar asientos para asegurar todos los asientos contables, en todos los diarios, hasta una fecha específica.
Nota
El asistente funciona de forma independiente de la configuración y los tipos de diario.
Para abrirlo, active el modo de desarrollador, vaya a y haga clic en Asegurar asientos. Si las funciones de inalterabilidad están activadas, también estará visible fuera del modo de depuración.
Para asegurar los asientos, seleccione una fecha hasta la cual se deben asegurar todos los asientos y pulse Asegurar asientos.
Advertencia
Después de asegurar los asientos, ya no podrá editarlos.
Nota
Puede ocurrir que se aseguren asientos posteriores a la fecha seleccionada. Esto es posible porque la cadena de hash corresponde al prefijo de secuencia, ordenado por número de secuencia.
Descargar informe¶
Para generar el informe de verificación de inalterabilidad de los datos, active el modo desarrollador, vaya a y ejecute Data Inalterability Check. El informe se genera en PDF para la empresa actual.
La primera sección del informe es una vista general de todos los prefijos de secuencia de diario que contienen asientos con hash. En la columna Restringido, puede ver si un diario tiene la opción asegurar asientos confirmados con hash activada (V) o no (X). La columna Comprobar indica si todos los asientos tienen el hash correcto.
- menu
- (report) Data Inalterability Check, first section
- shows
- The overview table of the data inalterability check report, listing the journal sequence prefixes with the "Restricted" and "Check" columns.
- highlight
- The "Restricted" and "Check" columns (red frame).
- data
- Two journals, one restricted and correctly hashed, one not restricted.
- module
- account
- notes
- PDF output, crop to the table.
La segunda sección ofrece un resultado más detallado de la comprobación de coherencia de datos para cada prefijo de secuencia de diario con hash. Puede ver el primer asiento con hash y su hash correspondiente, así como el último asiento con hash y su hash correspondiente.
- menu
- (report) Data Inalterability Check, second section
- shows
- The detailed consistency result for one hashed journal sequence prefix, with the first and last hashed entries and their hashes.
- highlight
- The first and last entry rows (red frame).
- data
- Journal prefix INV/2026/ with a verified hash chain.
- module
- account
- notes
- PDF output, crop to the section.