Tabla INV1 en SAP Business One (Factura de clientes (líneas))

INV1 es la tabla de SAP Business One que guarda las líneas de las facturas de clientes: artículo, cantidad, precio, total de línea y almacén. No tiene datos de cabecera propios, así que se une con OINV por DocEntry para obtener fechas, cliente y estado.

Campos clave de INV1

CampoQué contiene
DocEntryClave de la factura. Se une con OINV.DocEntry.
LineNumNúmero de línea dentro de la factura, empieza en 0.
ItemCodeArtículo vendido. Se une con OITM.ItemCode. Vacío en facturas de servicios.
DscriptionDescripción de la línea (se escribe con una sola i y sin e después de la s).
QuantityCantidad en la unidad de venta.
PricePrecio unitario después del descuento de línea.
PriceBefDiPrecio unitario antes del descuento de línea.
LineTotalImporte de la línea en moneda local, antes de impuesto y antes del descuento de cabecera.
WhsCodeAlmacén del que salió el stock. Se une con OWHS.WhsCode.
SlpCodeEmpleado del departamento de ventas de la línea.
BaseType / BaseEntry / BaseLineDocumento de origen del que se copió la línea (por ejemplo 15 = entrega, 17 = pedido de cliente).

Cómo se relaciona INV1 con otras tablas

INV1 es la tabla de líneas de OINV. Cada fila pertenece exactamente a una factura a través de DocEntry, y DocEntry + LineNum es la clave única de una línea. Las fechas, el cliente, el estado de cancelación y el descuento de cabecera están en OINV, por eso casi toda consulta sobre INV1 también une OINV.

Joins habituales

  • INV1 T1 INNER JOIN OINV T0 ON T1.DocEntry = T0.DocEntry (cabecera)
  • INV1 T1 LEFT JOIN OITM T2 ON T1.ItemCode = T2.ItemCode (maestro de artículos)
  • INV1 T1 LEFT JOIN OWHS T3 ON T1.WhsCode = T3.WhsCode (almacén)

Cuándo se usa la tabla INV1

Use INV1 para todo lo que sea por artículo: más vendidos, artículos de baja rotación, ventas por grupo de artículos o por almacén y cantidades vendidas en un período. Para valores, recuerde el descuento de cabecera; para cantidades, las líneas son la fuente correcta.

Consulta de ejemplo: cantidad y valor neto vendido por artículo

SQL Server

SELECT T1.ItemCode, T1.Dscription, SUM(T1.Quantity) AS QtySold,
  SUM(T1.LineTotal * (1 - T0.DiscPrcnt / 100.0)) AS NetValue
FROM OINV T0
INNER JOIN INV1 T1 ON T0.DocEntry = T1.DocEntry
WHERE T0.CANCELED = 'N' AND T0.DocDate >= '20260101'
GROUP BY T1.ItemCode, T1.Dscription
ORDER BY NetValue DESC

SAP HANA (nombres de columna entre comillas dobles)

SELECT T1."ItemCode", T1."Dscription", SUM(T1."Quantity") AS "QtySold",
  SUM(T1."LineTotal" * (1 - T0."DiscPrcnt" / 100.0)) AS "NetValue"
FROM OINV T0
INNER JOIN INV1 T1 ON T0."DocEntry" = T1."DocEntry"
WHERE T0."CANCELED" = 'N' AND T0."DocDate" >= '20260101'
GROUP BY T1."ItemCode", T1."Dscription"
ORDER BY "NetValue" DESC

Pegue cualquiera de las dos versiones en Herramientas → Consultas → Generador de consultas. ¿Necesita el otro dialecto para su propia consulta? Use el conversor de SQL a HANA.

Error frecuente: Sumar LineTotal infla las ventas

LineTotal está antes del descuento de cabecera registrado en OINV.DiscPrcnt. Si sus usuarios dan descuentos en la cabecera, SUM(LineTotal) es mayor que el informe de análisis de ventas. Multiplique por (1 - T0.DiscPrcnt / 100) como en la consulta de arriba, y reste las líneas de notas de crédito de clientes (RIN1) con el mismo factor. Vea Corregir la diferencia por descuento de cabecera.

Consultas listas que usan INV1

Tablas relacionadas

OINV (Factura de clientes (cabecera)) · ORIN (Nota de crédito de clientes (cabecera)) · OITM (Artículos (maestro de artículos)) · OITW (Stock de artículos por almacén) · buscar todas las tablas de SAP Business One

Fuentes: Documentación y SDK de SAP Business One (referencia de tablas de base de datos de DI API), SAP Help Portal.

¿Listo para empezar?

Cuéntenos lo que necesita. Recibirá una respuesta técnica clara, un alcance definido y un precio fijo, normalmente en 24 horas.