Nota de salida (salida de almacén)

Formulario para registrar salidas de inventario desde un almacén: ventas, entregas a clientes, devoluciones, consumos internos, transferencias, etc. Maneja numeración correlativa por almacén, controla stock y lotes antes de permitir la salida, permite copiar ítems desde pedidos, notas de venta o solicitudes de materiales, restringe la modificación/eliminación si la nota proviene de una venta y permite vincular un comprobante contable y emitir el reporte de Nota de salida.


📘 Propósito

La Nota de salida registra la salida de productos desde un almacén hacia clientes, sucursales u otros destinos. Cada registro descuenta existencias de inventario (según configuración de control) y puede quedar vinculado con documentos comerciales y contables.

🔢 Numeración y alcance

  • Cada nota tiene un Número correlativo por almacén, asignado automáticamente dentro del rango NsIni–NsFin definido en la tabla de Almacenes.
  • El botón Nuevo lee el rango del almacén elegido y busca la última salida (tipoComprobante = 3); a partir de ahí asigna el siguiente número disponible.
  • Si se cambia el número por error, puede hacerse doble clic en Número, el sistema muestra un aviso y desbloquea el campo temporalmente. Al salir del campo, vuelve a quedar bloqueado.
  • El botón Re-numerar reasigna números consecutivos desde el registro actual hacia adelante. Se recomienda usarlo solo bajo supervisión del administrador.

🧭 Barra de acciones

  • Nuevo: crea una nota de salida nueva y asigna número según el almacén. Requiere que el módulo esté contratado y que el usuario tenga permiso y espacio disponible en la nube.
  • Modificar / Bloquear:
    • Modificar (candado abierto): habilita los campos editables de cabecera y el detalle.
    • Bloquear (candado visible): deja la nota solo de lectura.
    Antes de cambiar de estado pide confirmación.
  • Anular / Habilitar:
    • Anular: marca la nota como anulada sin borrarla; aparece la etiqueta “ANULADO”.
    • Habilitar: quita la anulación y vuelve a habilitar el documento.
  • Eliminar: borra definitivamente la nota solo si no está ligada a una nota de venta. Si existe un IdVentas distinto de cero, el sistema bloquea la eliminación y muestra el número de venta correspondiente.
  • Buscar: activa el cuadro de búsqueda estándar de Access sobre el registro actual (por ejemplo, para buscar por número, nombre o glosa).
  • Ver: abre la vista previa del reporte “Ns” filtrado por la nota actual.
  • Imprimir: guarda el registro y envía el reporte “Ns” directamente a impresión (según configuración del informe).
  • Primero / Anterior / Siguiente / Último: recorre los registros de notas de salida.
  • Cerrar: cierra el formulario y limpia cualquier filtro aplicado.

📋 Cabecera de la nota

  • Fecha: día de la salida de almacén.
  • Nombre: persona o entidad a la que se entrega la mercadería (cliente, área interna, sucursal, etc.).
  • NIT / C.I.: número de identificación del receptor para efectos de trazabilidad y/o factura relacionada.
  • Glosa: descripción general del motivo de la salida, por ejemplo: “Por venta de mercadería perteneciente a la nota de venta N° 218”.
  • Estado predeterminado: estado por defecto que se asignará a cada producto del detalle (p.ej. “OK”, “Malo”, “Vencido”). Puede ampliarse el catálogo mediante el cuadro emergente correspondiente.
  • Salida por concepto de: tipo de salida (venta, consumo interno, traslado, devolución, etc.). Se usa para clasificar estadísticas y reportes.
  • Recibido por: firma o persona que recibe la mercadería (puede ser diferente al “Nombre” de cabecera; suele imprimirse en la nota).
  • Contabilidad:
    • Contabilidad (CD-…): identificador del comprobante contable vinculado.
    • Factura N° / Pedido N° / Nro de ventas N°: referencias a documentos comerciales relacionados. Se llenan desde procesos externos y en modo edición suelen estar bloqueados.

🧾 Detalle (grid de productos)

Campo Uso
Código Código interno del producto. Al salir de este campo el sistema busca el ítem en almitem para la empresa actual:
  • Si lo encuentra, carga automáticamente la Descripción y el IdItem.
  • Si no existe, abre el formulario de búsqueda busq_prodNS para elegir o crear el producto.
Descripción Producto seleccionado (lista desplegable). Al cambiar la descripción se inicializan:
  • El orden de la línea (según registro actual).
  • El estado del producto con el estado predeterminado de la cabecera.
  • Se limpia el lote, se pone cantidad en 0 y se prepara el control de stock.
Lote Si el producto maneja lotes, al elegir la descripción se verifica si existen lotes en la tabla Lote. Si hay, se abre el formulario LoteNe para escoger el lote que se utilizará. Un doble clic en el campo Lote permite cambiarlo (solo cuando la nota está en modo Modificar).
Unid. Unidad de medida del producto (se trae desde la ficha del ítem).
Cantidad (salida) Unidades que salen del almacén. El sistema aplica un control de stock antes de aceptar el valor (ver sección siguiente).
Estado producto Texto asociado al estado (columna 2 del combo de estados). Puede editarse por línea si algún ítem está deteriorado, vencido, etc.
Orden Número de línea en el detalle. Presionar F3 en este campo recorre todos los registros y renumera la columna de 1 a CantReg (útil para ordenar la impresión).

📦 Control de stock y lotes

  • Cada producto tiene un campo ControlInv en almitem:
    • Si es 0 o está en blanco, la nota de salida no controla stock para ese ítem.
    • Si es distinto de cero, el sistema verifica el saldo antes de permitir la salida.
  • El saldo se toma de las consultas NsStock o NsStockLote (según si el producto maneja lotes), calculando: Saldo = Entradas − Salidas − Pedido sobre los movimientos de almacén de los comprobantes tipo 2, 3 y 7, del almacén elegido y que no estén anulados.
  • Si no existen entradas registradas para el producto, al intentar salir muestra el mensaje: “No se han registrado entradas del producto”.
  • Si la cantidad de salida es mayor al saldo:
    • Si la empresa permite ventas sin saldo (VenSinSal), solo se avisa el saldo actual pero se permite continuar.
    • Si no se permiten ventas sin saldo, la operación se bloquea indicando que solo se puede registrar una cantidad menor o igual al saldo disponible.
  • En el evento Antes de actualizar de la cantidad, cualquier violación de estas reglas cancela el cambio y mantiene el valor anterior.

🔗 Integración con ventas, pedidos y solicitudes

  • IdVentas (nota de venta):
    • Si la nota de salida proviene de una nota de venta, el campo IdVentas se llena desde procesos comerciales.
    • En ese caso la nota no se puede eliminar ni modificar desde este formulario; un mensaje informa el número de nota de venta asociado.
  • IdPed (pedido):
    • Al elegir un pedido, el sistema abre en segundo plano los formularios VentasPedH (cabecera) y VentasPedHTr (detalle).
    • Copia el IdCliente a la cabecera de la nota de salida y genera líneas de detalle por cada producto, calculando la cantidad pendiente (CantPed − CantEnv).
  • IdSM (solicitud de materiales u otro comprobante):
    • Al seleccionar un documento en Solicitud Mat. se leen sus transacciones desde comprobantestr.
    • Por cada ítem se verifica que exista saldo suficiente mediante la función testSaldo; si pasa el control, se carga en el detalle con la cantidad indicada.
  • Campos contables (IdcnComp, Origen, IdOrigen): se usan para enlazar la nota con un comprobante contable y con el documento de origen (según parametrización del sistema). Normalmente se editan solo en modo Modificar.

🧱 Flujo sugerido

  1. Haga clic en Nuevo. El sistema asigna el Número de nota de salida para el almacén actual.
  2. Complete los datos de cabecera: Fecha, Nombre, NIT/C.I., Glosa, Estado predeterminado y concepto de salida.
  3. Si la salida proviene de un pedido o nota de venta, seleccione el documento correspondiente para que el sistema copie automáticamente los productos y cantidades pendientes.
  4. Revise o agregue manualmente las líneas del detalle: producto, lote (si aplica), cantidad y estado del producto. El sistema controlará el stock disponible.
  5. Si corresponde, vincule la salida con el comprobante contable (campo Contabilidad) o verifique la referencia ya asociada.
  6. Use Ver para revisar la impresión en pantalla. Si todo está correcto, use Imprimir y luego Bloquear el registro para evitar cambios accidentales.
  7. Para corregir, use Modificar; si la salida ya no debe tener efecto, use Anular antes que eliminar, de modo que quede traza histórica.

🔎 Búsquedas, atajos y buenas prácticas

  • Buscar en la barra de comandos permite localizar rápidamente una nota por número, nombre o texto de glosa.
  • Si al escribir un Código de producto este no existe para la empresa actual, se abre una ventana de búsqueda/creación de productos específica para notas de salida.
  • Un doble clic en Lote permite cambiar el lote asignado (solo en modo Modificar).
  • Use la columna Orden y la tecla F3 para renumerar líneas si necesita que el reporte imprima en un orden específico.

⚠️ Reglas y permisos

  • La disponibilidad de botones (Nuevo, Modificar, Eliminar, Ver, Imprimir, Anular) se controla mediante los permisos invSal del usuario y la función PermisosVar.
  • Si el módulo de salidas de almacén no está contratado (funCom = False), solo se permite consultar registros; Nuevo muestra un mensaje informativo.
  • No se puede eliminar ni modificar una nota de salida que proviene de una nota de venta (campo IdVentas distinto de 0). En estos casos deben usarse los procesos de ventas para realizar correcciones.
  • Para fines de auditoría es preferible Anular un registro antes que eliminarlo, de forma que quede constancia histórica en los reportes.