Menú: secciones y guías

Valoración de existencias en Odoo 19 con el PGC: método de coste y asiento de variación de existencias

Cómo valora Odoo 19 el stock, qué método de coste admite el PGC, qué cuentas trae la plantilla española y cómo se genera el asiento de variación de existencias.

Odoo 19 Tutorial · Nivel avanzado

Pasos verificados el · actualizado el · por David Crespo Muñoz

Respuesta corta

Odoo 19 valora el stock por defecto con el método «Periódico (al cierre)»: las compras van a gasto (grupo 60) y la contabilidad solo se entera del inventario cuando generas un asiento de cierre desde el informe «Valoración del inventario». Ese asiento lleva la diferencia entre el valor del stock y el saldo de la cuenta de existencias a la cuenta de variación. Antes de usarlo hay que cambiar dos valores de fábrica: el método de coste es «Precio estándar», que no es el criterio general del PGC (precio medio ponderado, o FIFO), y la plantilla española solo trae configurada la 310 Materias primas con la 611, no la 300 con la 610.

Edición
Categorías y cálculo en Community; ajustes de empresa y menú del informe en la app Contabilidad (Enterprise)
Módulos
stock_accountl10n_espurchase_stock
Dónde se hace
Inventario, Configuración, AjustesInventario, Informes, StockInventario, Configuración, CategoríasContabilidad, Configuración, Plan contableInventario, Operaciones, Inventario físico
Otras versiones
Odoo 19 cambió la valoración del inventario: ya no hay un asiento por cada movimiento de stock, sino un asiento de cierre que se genera desde un informe. Lo que cuenta esta guía no vale para Odoo 18 o anteriores. Sin comparar con la versión 20.
En esta página
  1. Qué pide el PGC y qué pone Odoo
  2. Vocabulario: lo que dice el contable y lo que dice Odoo
  3. Cómo funciona en Odoo 19
  4. 1.Elige el método de coste en cada categoría
  5. 2.Asigna las cuentas del PGC a cada categoría
  6. 3.Deja el recuento hecho y revisa de dónde sale cada valor
  7. 4.Genera el asiento de cierre
  8. Qué pasa en contabilidad
  9. Mermas y desechos
  10. Deterioro de valor
  11. Si usas la valoración perpetua
  12. Qué hay en Community y qué no
  13. Resultado
  14. Errores frecuentes
  15. Preguntas frecuentes
  16. Fuentes

Antes de empezar

  • Odoo 19 con Inventario y con Contabilidad o Facturación; el módulo stock_account se instala solo cuando están las dos.
  • Plan de cuentas de la localización española (l10n_es).
  • Productos de tipo Bienes con Rastrear inventario marcado. Lo demás no entra en la valoración.
  • Un recuento físico hecho y aplicado en Odoo a la fecha de cierre, y el saldo de las cuentas del grupo 3 del cierre anterior.
  • Permisos de administrador de Inventario y de Contabilidad.

En un programa contable español, las existencias se tocan una vez al año: se da de baja el inventario inicial, se da de alta el final y la diferencia queda en la 610. Odoo llega a la misma cifra por otro camino. Lleva el valor del almacén al día en la app Inventario y, cuando se lo pides, compara ese valor con el saldo contable y propone el asiento por la diferencia.

Funciona bien con el PGC, pero no tal y como viene instalado. Dos valores de fábrica hay que cambiarlos antes del primer cierre, y los dos salen del código de la rama 19.0, comprobado el 13 de octubre de 2026.

Nota

Solo para Odoo 19. La documentación avisa de que el sistema cambió en esta versión: antes, el método perpetuo creaba un asiento por cada movimiento de stock y el periódico continental se cerraba a mano. Si tu base de datos es una 18 o anterior, las pantallas de esta guía no existen.

Qué pide el PGC y qué pone Odoo

Qué pide la normaDónde estáQué pone Odoo 19
Valorar las existencias por su coste: precio de adquisición o coste de producciónNorma de registro y valoración (NRV) 10.ª, apartado 1, del PGCEl valor de cada entrada sale de la factura del proveedor o, si aún no hay factura, del pedido de compra
Sumar al precio de adquisición transportes, aranceles, seguros y otros gastos atribuiblesNRV 10.ª, apartado 1.1El ajuste Costes en destino, en Inventario, Configuración, Ajustes, sección Valoración
Método general: precio medio o coste medio ponderado. El FIFO «es aceptable»NRV 10.ª, apartado 1.3Coste promedio (AVCO) y First In First Out (FIFO). El valor de fábrica es un tercero, Precio estándar
Un único método para las existencias de naturaleza y uso similaresNRV 10.ª, apartado 1.3El método se elige por categoría de producto
Corrección valorativa si el valor neto realizable es inferior al costeNRV 10.ª, apartado 2Nada automático: asiento manual
Las cuentas del grupo 3 solo funcionan al cierre, contra las de variación de existenciasQuinta parte del PGC, cuentas 300/309 y 610/611/612Un asiento de cierre por la diferencia entre el stock valorado y el saldo contable

El PGC de Pymes dice lo mismo sobre los métodos en su NRV 12.ª. La introducción de ese plan destaca como novedad «la no admisión del método LIFO». Odoo tampoco lo ofrece como método de coste: la documentación aclara que LIFO y FEFO son estrategias de salida, que deciden qué unidad se coge primero, y no cambian el valor.

Un matiz sobre la última fila. El artículo 2 del Real Decreto 1514/2007 dice que los movimientos contables de la quinta parte del Plan no son vinculantes, salvo en lo que contengan criterios de registro o valoración. Esa quinta parte describe dos apuntes al cierre (abonar las existencias iniciales y cargar las finales, los dos contra la 610). Odoo hace uno solo por el neto. El saldo final de la 300 y el de la 610 son los mismos.

Vocabulario: lo que dice el contable y lo que dice Odoo

En contabilidadEn Odoo 19
Precio medio ponderado (PMP)Coste promedio (AVCO)
FIFOFirst In First Out (FIFO)
Coste estándarPrecio estándar
Sistema especulativo: compras a gasto y regularización al cierreValoración Periódico (al cierre)
Inventario permanenteValoración Perpetuo (en la facturación)
Cuenta de existencias (grupo 3)Cuenta de inventario en la categoría; Cuenta de valoración de stock en el modelo de datos
Cuenta de variación de existencias (61 o 71)Variación de existencias en la categoría; Cuenta de variación en la ficha de la cuenta
Asiento de regularización de existenciasAsiento Cierre de stock, creado con Generar asiento
Existencias finalesInventario final

Cómo funciona en Odoo 19

Hay dos valores que viven separados:

  • El valor de Inventario. Cada entrada y cada salida de stock guarda su valor. Se ve en Inventario, Informes, Stock, columnas Coste unitario y Valor total. Se mueve al validar recepciones, entregas, ajustes de inventario y desechos.
  • El valor contable. Es el saldo de la cuenta de existencias. Con la valoración Periódico (al cierre), que es la de fábrica, validar un albarán no lo mueve. La factura de compra tampoco: va a la cuenta de gastos de la categoría, que en el plan español es la 600 Compras de mercaderías.

El informe Valoración del inventario enseña los dos y la diferencia. El botón Generar asiento la contabiliza. La documentación llama a este método la práctica habitual en Europa y describe el cierre como algo que las pymes hacen una vez al año y las empresas mayores, cada mes.

Qué entra en el cálculo, según el código:

  • Solo los productos con Rastrear inventario.
  • Solo el stock en ubicaciones internas o de tránsito de la empresa.
  • No se valora la mercancía que tiene un propietario distinto de la empresa (género en depósito de un tercero).

Paso 1. Elige el método de coste en cada categoría

  1. Ve a Inventario, Configuración, Categorías y abre la categoría.
  2. En el bloque Valoración del inventario, cambia Método de coste a Coste promedio (AVCO) o a First In First Out (FIFO).
  3. En el mismo bloque, comprueba que Valoración del inventario dice Periódico (al cierre).
  4. Guarda y repite en el resto de categorías con productos almacenables.
Ficha de la categoría de producto para mercaderías: método de coste Coste promedio (AVCO) en lugar de Precio estándar, y cuentas 300 y 610 en lugar de la 310 que usa Odoo de fábrica Esquema de la ficha de categoría en Inventario ‣ Configuración ‣ Categorías. Bloque Valoración del inventario: Método de coste, Coste promedio (AVCO) (a cambiar); De fábrica: Precio estándar. Valoración del inventario, Periódico (al cierre); De fábrica, se deja así. Bloque Propiedades de la cuenta: Cuenta de gastos, 600 Compras de mercaderías; De fábrica, se deja así. Cuenta de inventario, 300 Mercaderías A (a cambiar); De fábrica: vacía (se usa la 310). Variación de existencias, 610 Variación de existencias de mercaderías (a cambiar); Es la Cuenta de variación de la 300. Inventario ‣ Configuración ‣ Categorías Valoración del inventario Método de coste Coste promedio (AVCO) De fábrica:Precio estándar Valoración del inventario Periódico (al cierre) De fábrica,se deja así Propiedades de la cuenta Cuenta de gastos 600 Compras de mercaderías De fábrica,se deja así Cuenta de inventario 300 Mercaderías A De fábrica: vacía(se usa la 310) Variación de existencias 610 Variación de existencias de mercaderías Es la Cuenta devariación de la 300 Ficha de la categoría de producto para mercaderías: método de coste Coste promedio (AVCO) en lugar de Precio estándar, y cuentas 300 y 610 en lugar de la 310 que usa Odoo de fábrica Esquema de la ficha de categoría en Inventario ‣ Configuración ‣ Categorías. Bloque Valoración del inventario: Método de coste, Coste promedio (AVCO) (a cambiar); De fábrica: Precio estándar. Valoración del inventario, Periódico (al cierre); De fábrica, se deja así. Bloque Propiedades de la cuenta: Cuenta de gastos, 600 Compras de mercaderías; De fábrica, se deja así. Cuenta de inventario, 300 Mercaderías A (a cambiar); De fábrica: vacía (se usa la 310). Variación de existencias, 610 Variación de existencias de mercaderías (a cambiar); Es la Cuenta de variación de la 300. Inventario ‣ Configuración ‣ Categorías Valoración del inventario Método de coste Coste promedio (AVCO) De fábrica: Precio estándar Valoración del inventario Periódico (al cierre) De fábrica, se deja así Propiedades de la cuenta Cuenta de gastos 600 Compras de mercaderías De fábrica, se deja así Cuenta de inventario 300 Mercaderías A De fábrica: vacía (se usa la 310) Variación de existencias 610 Variación de existencias de mercaderías Es la Cuenta de variación de la 300
Pasos 1 y 2: la ficha de la categoría con los valores para mercaderías. En color, los tres campos que hay que cambiar; en gris, lo que trae Odoo 19 de fábrica según el código de la rama 19.0. Esquema dibujado a partir de la versión 19; no es una captura de Odoo.

Al cambiar el método, Odoo recalcula el coste de los productos de esa categoría. Hazlo antes de empezar el ejercicio o justo después de un cierre, no a mitad de año.

Por qué no dejar Precio estándar. Con ese método, el valor del stock es la cantidad por el campo Coste de la ficha del producto, que alguien escribe a mano. Comprar más caro o más barato no lo cambia. El PGC no lo recoge entre sus métodos de asignación de valor. La Resolución del ICAC de 14 de abril de 2015, que regula el coste de producción, lo admite en su norma segunda con una condición: que el resultado no difiera del coste real, teniendo en cuenta el principio de importancia relativa. Si lo usas, esa comprobación es tuya y de tu asesor.

Cómo se comporta cada método con las mismas operaciones. Las cifras son las del ejemplo de la documentación de Odoo 19, pasadas a euros:

OperaciónPrecio estándar (10 €)Coste promedio (AVCO)First In First Out (FIFO)
Entran 8 unidades a 10 €80 €80 €80 €
Entran 4 unidades a 16 €120 €144 € (coste unitario 12 €)144 €
Salen 10 unidades20 €24 €32 € (quedan 2 de las de 16 €)
Entran 2 unidades a 6 €40 €36 € (coste unitario 9 €)44 €

Con cuatro unidades iguales en la estantería, el balance diría 40, 36 o 44 euros según el método.

Paso 2. Asigna las cuentas del PGC a cada categoría

Lo que trae la plantilla española de Odoo 19:

DatoValor en la plantillaQué significa
Cuenta de valoración de stock de la empresa310 Materias primas AEs la cuenta de existencias de toda categoría que no tenga una propia
Cuenta de variación de la 310611 Variación de existencias de materias primasContrapartida del asiento de cierre
Cuenta de gastos de la 310601 Compras de materias primasCampo visible solo en modo desarrollador, con el rótulo Solo para el sistema de inventario perpetuo (método continental)
Diario de stockValoración del inventario (código STJ)Diario de tipo varios donde se crea el asiento
Cuenta de gastos por defecto de las categorías600 Compras de mercaderíasDonde van las facturas de compra

Una tienda o un distribuidor que no toque nada compra contra la 600 y regulariza contra la 310 y la 611: mercaderías a la entrada, materias primas al cierre. Ninguna otra cuenta del grupo 3 trae cuenta de variación asignada.

Para corregirlo:

  1. En Inventario, Configuración, Categorías, abre la categoría.
  2. En el bloque Propiedades de la cuenta, debajo de Cuenta de gastos, rellena Cuenta de inventario con la cuenta del grupo 3 que corresponda.
  3. En Variación de existencias, pon su cuenta de variación.
  4. Revisa que Cuenta de gastos es la cuenta de compras coherente con las dos anteriores.

Variación de existencias no es un dato de la categoría: es el campo Cuenta de variación de la cuenta de existencias elegida, que también se edita desde Contabilidad, Configuración, Plan contable. Si dos categorías comparten la 300, comparten la 610.

Las parejas habituales, todas presentes en el plan español de Odoo 19:

Tipo de existenciaCuenta de inventarioVariación de existenciasCuenta de gastos
Mercaderías300610600
Materias primas310611601
Otros aprovisionamientos (repuestos, envases, embalajes…)320 a 328612602
Productos en curso330710No se compran
Productos semiterminados340711No se compran
Productos terminados350712No se compran

El plan trae las cuentas con sufijos A y B (300 Mercaderías A, 301 Mercaderías B). Qué cuenta corresponde a cada familia de productos lo decide tu asesor. Esta guía no entra en la valoración de lo fabricado, que depende de la app Fabricación.

Nota

Si dejas vacía la variación. Cuando la cuenta de existencias no tiene Cuenta de variación, el código del cierre usa la cuenta de gastos por defecto de la empresa, que con la plantilla española es la 600. El resultado del ejercicio es el mismo, pero la 610 se queda sin saldo y la 600 ya no refleja las compras del año.

Paso 3. Deja el recuento hecho y revisa de dónde sale cada valor

El asiento de cierre es tan bueno como el stock que hay en Odoo. Antes de generarlo:

  1. Haz el recuento en Inventario, Operaciones, Inventario físico, escribe lo contado en Cantidad contada y pulsa Aplicar. Según la documentación, la diferencia se valora al coste medio actual del producto, también con FIFO.
  2. Abre Inventario, Informes, Stock y revisa Coste unitario y Valor total de cada producto.
  3. Pulsa el Valor total de un producto para ver las entradas que aún tienen Cantidad restante y su Valor restante.

De dónde saca Odoo el valor de una recepción, por este orden según el código:

  1. Un valor corregido a mano con la acción Ajustar valoración.
  2. Las facturas de proveedor publicadas y enlazadas a la línea del pedido de compra.
  3. El precio de la línea del pedido de compra, si todavía no hay factura. La descripción del valor lo indica con (no facturado).
  4. El Coste de la ficha del producto, si no hay pedido.

Por eso conviene tener registradas las facturas de compra del año antes del cierre: el valor de esas entradas pasa a ser el facturado. Para corregir una entrada concreta con AVCO o FIFO, la documentación indica que se seleccionan los movimientos y, en el menú de acciones (el icono del engranaje), se elige Ajustar valoración, con el Nuevo valor y una Descripción.

Paso 4. Genera el asiento de cierre

  1. Abre el informe Valoración del inventario. La documentación de Odoo 19 lo sitúa en Contabilidad, Revisión, Valoración del inventario (en inglés, Accounting, Review, Inventory Valuation; la traducción de la documentación escribe «Contabilidad ‣ Revisar ‣ Valoración de inventario»).
  2. Pulsa el botón de fecha Hasta el y elige el último día del periodo. Compruébalo siempre: la documentación dice que el informe propone el final del periodo fiscal, pero en el código público se abre con la fecha de hoy, y el asiento sale con la fecha que haya en ese botón.
  3. Lee las tres líneas del informe (están explicadas debajo).
  4. Pulsa Generar asiento.
  5. Odoo abre un asiento en borrador en el diario Valoración del inventario, con la referencia Cierre de stock. Revisa cuentas e importes y publícalo.

Las líneas del informe:

LíneaQué es
Saldo inicialEl saldo contable de las cuentas de existencias a esa fecha. Al pulsarlo se abren sus apuntes
Pérdida de inventarioSolo aparece si alguna ubicación de pérdidas tiene cuenta propia (mermas)
Variación de existenciasLa diferencia entre el valor del stock y el saldo contable. Se despliega con su Debe y su Haber por cuenta
Inventario finalEl valor del stock en Inventario: lo que dirá la contabilidad cuando publiques el asiento. Al pulsarlo se abre el informe de stock

Nota

Revisa el borrador si usas la 310 tal y como viene. La 310 es la única cuenta que trae a la vez Cuenta de variación y Cuenta de gastos. Para las cuentas que tienen las dos, el código añade al cierre un segundo cálculo entre la cuenta de gastos y la de variación, con el texto Cierre: variación de existencias durante el período. Está pensado para el método perpetuo continental. No lo hemos comprobado en una base de datos con la valoración periódica: si el borrador trae líneas con ese texto, que las revise tu asesor antes de publicar.

Cierres mensuales o diarios

La empresa tiene un Período de inventario con tres valores: Manual, Diariamente y Mensual. Con los dos últimos, una acción planificada genera y publica el asiento sola, cada día o el último día del mes. La documentación lo sitúa en Contabilidad, Configuración, Ajustes, sección Inventory Valuation, campo Periodic Valuation. De fábrica está en Manual.

Qué pasa en contabilidad

Un ejemplo con cifras inventadas para seguir los importes: una tienda con la categoría configurada con 300, 610 y 600, y método Coste promedio (AVCO).

  • Saldo de la 300 a 1 de enero de 2026, que viene del cierre anterior: 12.000,00 €.
  • Facturas de compra del año, en la 600: 80.000,00 €.
  • Valor total del stock a 31 de diciembre de 2026: 15.400,00 €.
El asiento de cierre lleva a la 610 la diferencia entre el valor del stock y el saldo de la 300: 15.400,00 − 12.000,00 = 3.400,00 euros Informe Valoración del inventario hasta el 31/12/2026. Inventario final, el valor total del stock en Inventario: 15.400,00. Menos Saldo inicial, el saldo contable de la 300: 12.000,00. Igual a Variación de existencias: 3.400,00. Al pulsar Generar asiento, Odoo crea el asiento en borrador Cierre de stock en el diario Valoración del inventario: 300 Mercaderías A al Debe por 3.400,00 y 610 Variación de existencias de mercaderías al Haber por 3.400,00. Si el stock bajara a 9.500,00, la variación sería de −2.500,00 y Odoo pondría la 610 al Debe y la 300 al Haber. Informe Valoración del inventario Hasta el 31/12/2026 Inventario final 15.400,00 Valor total del stock en Inventario − Saldo inicial 12.000,00 Saldo contable de la 300 a esa fecha = Variación de existencias 3.400,00 Generar asiento Cierre de stock Borrador Diario Valoración del inventario Cuenta Debe Haber 300 Mercaderías A 3.400,00 610 Variación de existencias de mercaderías 3.400,00 Si el stock bajara a 9.500,00, lavariación sería −2.500,00 y Odoopondría la 610 al Debe y la 300 al Haber. El asiento de cierre lleva a la 610 la diferencia entre el valor del stock y el saldo de la 300: 15.400,00 − 12.000,00 = 3.400,00 euros Informe Valoración del inventario hasta el 31/12/2026. Inventario final, el valor total del stock en Inventario: 15.400,00. Menos Saldo inicial, el saldo contable de la 300: 12.000,00. Igual a Variación de existencias: 3.400,00. Al pulsar Generar asiento, Odoo crea el asiento en borrador Cierre de stock en el diario Valoración del inventario: 300 Mercaderías A al Debe por 3.400,00 y 610 Variación de existencias de mercaderías al Haber por 3.400,00. Si el stock bajara a 9.500,00, la variación sería de −2.500,00 y Odoo pondría la 610 al Debe y la 300 al Haber. Informe Valoración del inventario Hasta el 31/12/2026 Inventario final 15.400,00 Valor total del stock en Inventario − Saldo inicial 12.000,00 Saldo contable de la 300 a esa fecha = Variación de existencias 3.400,00 Generar asiento Cierre de stock Borrador Diario Valoración del inventario Cuenta Debe Haber 300 Mercaderías A 3.400,00 610 Variación de existencias de mercaderías 3.400,00 Si el stock bajara a 9.500,00, la variaciónsería −2.500,00 y Odoo pondría la 610al Debe y la 300 al Haber.
El ejemplo de esta sección, con cifras inventadas y en euros: el informe resta al valor del stock el saldo de la 300 y el asiento lleva la diferencia a la 610. Cálculo según el código de stock_account (rama 19.0), comprobado el 13 de octubre de 2026. Esquema dibujado a partir de la versión 19; no es una captura de Odoo.

El informe, con fecha 31 de diciembre, muestra Saldo inicial 12.000,00 €, Variación de existencias 3.400,00 € e Inventario final 15.400,00 €. El asiento que genera:

CuentaDebeHaber
300 Mercaderías A3.400,00
610 Variación de existencias de mercaderías3.400,00

Las dos líneas llevan el texto Cierre: variación global de existencias para la empresa [nombre de la empresa].

El consumo de mercaderías del año queda en 80.000,00 − 3.400,00 = 76.600,00 €. Los dos apuntes del modelo clásico darían lo mismo: cargo de 12.000,00 € y abono de 15.400,00 € en la 610, saldo acreedor de 3.400,00 €.

Si el stock hubiera bajado a 9.500,00 €, la diferencia sería de −2.500,00 € y Odoo invertiría las cuentas:

CuentaDebeHaber
610 Variación de existencias de mercaderías2.500,00
300 Mercaderías A2.500,00

Lo que hay que saber de ese cálculo:

  • Compara el stock con todo el saldo de la cuenta, no con el del año. Si es el primer ejercicio en Odoo y la 300 no tiene el saldo de apertura, el primer cierre llevará a la 610 el valor entero del almacén.
  • Se puede repetir. Publicado el asiento, el Saldo inicial pasa a ser 15.400,00 €. Si vuelves a generar con la misma fecha y nada ha cambiado, Odoo responde Todo se ha cerrado correctamente.
  • La 610 no hay que saldarla contra la 129. El PGC lo describe así, pero en Odoo 19 las cuentas de gastos e ingresos empiezan a cero cada año sin asiento de regularización. Está explicado en Cierre del ejercicio en Odoo 19.
  • El asiento no lleva impuestos ni toca el modelo 303.

Mermas y desechos

Un ajuste de inventario a la baja o un Desechar sacan el producto a una ubicación de tipo Pérdida de inventario. El Inventario final baja, y con la configuración de fábrica esa pérdida queda dentro de la variación de existencias, sin distinguirse de lo vendido.

Para verla aparte:

  1. Ve a Inventario, Configuración, Ubicaciones. El menú solo aparece con Ubicaciones de almacenamiento activado en los ajustes de Inventario.
  2. Abre la ubicación de tipo Pérdida de inventario.
  3. En el bloque Información contable, rellena Cuenta de pérdidas.

Con esa cuenta puesta, el informe añade la línea Pérdida de inventario y el asiento de cierre lleva líneas propias con el texto Cierre: reclasificación de ubicaciones - [cuenta], que cargan la cuenta de pérdidas por el valor de lo que salió hacia esa ubicación. Qué cuenta usar es una decisión de tu asesor.

Deterioro de valor

Odoo valora a coste. No hay nada en el código de stock_account que compare ese coste con el valor neto realizable. La corrección que pide el apartado 2 de la NRV 10.ª se hace con un asiento manual: según la quinta parte del PGC, la 693 Pérdidas por deterioro de existencias se carga por el importe del deterioro estimado, con abono a cuentas del subgrupo 39. En el plan español de Odoo 19 están desglosadas: 6931 para mercaderías con la 390, 6932 para materias primas con la 391, 6933 para otros aprovisionamientos con la 392.

No bajes el Coste del producto para reflejar un deterioro. Cambiar el coste a mano revaloriza todo lo que hay en stock, y el asiento de cierre lo llevaría a la variación de existencias, no a la 693.

Si usas la valoración perpetua

La otra opción, Perpetuo (en la facturación), cambia el lugar de la compra. Según el código de la 19.0, la línea de la factura de proveedor de un producto almacenable va a la cuenta de existencias en lugar de a la de gastos, y la factura de venta añade dos líneas con el coste de lo vendido. El asiento de cierre sigue existiendo, para lo recibido o entregado sin facturar.

La documentación la asocia a la contabilidad anglosajona. Con ella, las compras de esos productos no pasan por el grupo 60. Es un cambio de criterio que conviene hablar con el asesor antes de tocar el campo.

Qué hay en Community y qué no

El módulo stock_account está en el repositorio público. De ahí salen el cálculo del valor, los campos de la categoría y de la cuenta, el informe y el asiento de cierre.

Lo que no aparece en el repositorio público de la rama 19.0 es el bloque de ajustes de empresa ni el menú del informe. La documentación los describe dentro de la app Contabilidad, que es de la edición Enterprise. En Community:

  • El método de coste, la valoración y las cuentas se configuran por categoría, como en los pasos 1 y 2. El diario y la cuenta de valoración de la empresa llegan de la plantilla española.
  • El informe está definido en stock_account como una acción con la ruta stock-valuation-closing, que corresponde a la dirección /odoo/stock-valuation-closing de tu base de datos. No hay ninguna entrada de menú que lleve a ella en el código público, y no la hemos probado en una instalación Community.

Qué más cambia entre ediciones está en Odoo Community en España.

Resultado

  • Cada categoría valora con precio medio ponderado o FIFO y tiene su cuenta del grupo 3 con su cuenta de variación.
  • Las compras siguen yendo al grupo 60 y los albaranes no generan asientos.
  • A fin de año (o de mes), el informe compara el stock con la contabilidad y un asiento Cierre de stock deja la cuenta de existencias con el valor del inventario final.
  • El deterioro, si lo hay, va aparte y a mano.

Es uno de los ajustes que hay que dejar hechos antes de cerrar el ejercicio. El resto de guías de almacén están en Inventario en Odoo.

Errores frecuentes

  • Todo se ha cerrado correctamente (Everything is correctly closed). No es un fallo: a esa fecha no hay diferencia entre el stock y la contabilidad, y no hay asiento que crear.
  • Por favor, configura el diario para la valoración de inventario en los ajustes. (Please set the Journal for Inventory Valuation in the settings.) La empresa no tiene diario de stock. Con la localización española se crea solo, con el nombre Valoración del inventario; si falta, alguien lo ha quitado.
  • Por favor, configura la cuenta para la valoración de inventario en los ajustes. (Please set the Valuation Account for Inventory Valuation in the settings.) Falta la cuenta de valoración de la empresa.
  • Hay asientos de cierre con fecha posterior a la seleccionada. Debes cancelarlos antes de crear un asiento con una fecha anterior (It exists closing entries after the selected date…). Ya hay un cierre publicado con fecha posterior a la del botón Hasta el. Elige una fecha posterior o cancela antes ese asiento.
  • El asiento sale contra la 310 y la 611. La categoría no tiene Cuenta de inventario y hereda la de la empresa. Vuelve al paso 2.
  • La variación va a la 600. La cuenta de existencias de la categoría no tiene Cuenta de variación.
  • El primer cierre es enorme. La cuenta de existencias no tenía saldo de apertura y Odoo ha llevado a variación todo el stock. Registra antes el saldo inicial del grupo 3.
  • El valor del stock no se mueve aunque compres más caro. La categoría sigue en Precio estándar. Vuelve al paso 1.
  • No puedo publicar el asiento con fecha 31 de diciembre. El periodo ya tiene una fecha de bloqueo.

Preguntas frecuentes

¿Dónde se hace el asiento de variación de existencias en Odoo 19?

En el informe «Valoración del inventario», que la documentación de Odoo 19 sitúa en Contabilidad ‣ Revisión (Accounting ‣ Review ‣ Inventory Valuation). Eliges la fecha con «Hasta el», pulsas «Generar asiento» y Odoo crea un asiento en borrador con la referencia «Cierre de stock», que revisas y publicas.

¿Qué método de coste de Odoo corresponde al precio medio ponderado del PGC?

«Coste promedio (AVCO)». El PGC lo fija como método general en su norma de registro y valoración 10.ª y admite el FIFO, que en Odoo es «First In First Out (FIFO)». El valor de fábrica de Odoo 19 es «Precio estándar», un coste fijo que escribes a mano y que las compras no mueven.

¿Por qué el asiento de cierre me sale contra la 310 y la 611 si vendo mercaderías?

Porque la plantilla española de Odoo 19 pone la 310 Materias primas A como cuenta de valoración de la empresa y solo a ella le asigna cuenta de variación, la 611. Para mercaderías, pon la 300 en «Cuenta de inventario» de la categoría de producto y la 610 en «Variación de existencias».

¿Odoo 19 hace un asiento contable por cada entrada o salida de almacén?

No. Según la documentación, hasta Odoo 18 el método perpetuo generaba un asiento por movimiento; desde Odoo 19 la contabilidad se actualiza con las facturas y con un único asiento de cierre. Con el método periódico, validar una recepción o una entrega no contabiliza nada.

¿Calcula Odoo el deterioro de las existencias?

No. La valoración de Odoo es a coste. Si el valor neto realizable es inferior, la corrección valorativa que pide el PGC se registra con un asiento manual; el plan español de Odoo trae las cuentas 390 a 396 y las 6930 a 6933 para hacerlo.

Fuentes

  1. Documentación de Odoo 19 — Valoración de inventario (configuración contable, informe y asiento de cierre)odoo.com
  2. Documentación de Odoo 19 — Hoja de referencia de valoración (métodos de coste y cambios de Odoo 19)odoo.com
  3. Documentación de Odoo 19 — Valoración de los movimientos de stock y operaciones de inventarioodoo.com
  4. Código fuente de stock_account (rama 19.0), cálculo del asiento de cierre (res_company.py)github.com
  5. Código fuente de stock_account (rama 19.0), campos de la categoría de producto (product_views.xml)github.com
  6. Código fuente de stock_account (rama 19.0), informe «Valoración del inventario» (stock_valuation_report.py)github.com
  7. Traducción oficial al español de stock_account (rama 19.0, es.po)github.com
  8. Plantilla contable española de Odoo 19 (cuentas 310, 601 y 611 por defecto)github.com
  9. Código fuente de purchase_stock (rama 19.0), valor de una recepción a partir de la factura o del pedidogithub.com
  10. Real Decreto 1514/2007, Plan General de Contabilidad — norma de registro y valoración 10.ª y cuentas 300, 610 y 693 (BOE, texto consolidado)boe.es
  11. Real Decreto 1515/2007, Plan General de Contabilidad de Pymes — norma de registro y valoración 12.ª (BOE, texto consolidado)boe.es
  12. Resolución de 14 de abril de 2015 del ICAC, coste de producción — normas segunda y undécima (BOE)boe.es

Odoo es una marca de Odoo S.A. Este sitio es independiente y no está afiliado a Odoo S.A. Más información.