Cierre de Períodos

Cierre anual y arrastre de saldos

CT-024 Contabilidad → Cierre de Períodos consulta AY-100
Menú Ayuda

Enviarle este manual a un usuario

El enlace abre solo este manual, sin el menú del sistema. El usuario no necesita clave ni entrar a FactuPOS: se ve en cualquier navegador y en el celular.

El WhatsApp sale del número de Soporte Real y el correo de info@soportereal.com. Con Compartir desde este teléfono sale de su propio WhatsApp y elige el contacto de su lista, sin escribir el número.

Cierre de Períodos Contables

Proceso que archiva definitivamente un año fiscal: mueve todos los asientos y movimientos del período a las tablas históricas y genera un asiento de arrastre con los saldos iniciales del nuevo período.

Ruta: /modules/contabilidad/cierre_periodos/cierre_periodos.php

Cada período es un año calendario completo (1 de enero a 31 de diciembre) El cierre agrupa los asientos por el año de su fecha contable, de enero a diciembre. Si la empresa llevaba el período fiscal viejo (1 de octubre a 30 de setiembre, antes de 2020), no hace falta partirlo: se cierra el año completo. Las fechas bajo cada año (ej. 01/10 - 30/12) son solo el primer y el último asiento que hay en ese año. El saldo de arrastre queda al 1 de enero del año siguiente. (#3057)
Orden cronológico obligatorio Solo se puede cerrar el año más antiguo con movimientos. No se puede cerrar 2025 si aún hay asientos de 2024 en las tablas activas.

Pasos del cierre (AJAX streaming)

  1. Limpieza de asientos huérfanos (Paso 0)
    Elimina cabeceras de ContaAsiento que no tienen ninguna línea en ContaDiario:
    DELETE FROM ContaAsiento
    WHERE Asiento NOT IN (SELECT Asiento FROM ContaDiario)
    Esto previene que cabeceras vacías bloqueen la validación del año más antiguo.
  2. Validación del año
    Confirma que el año seleccionado sea MIN(YEAR(FechaContable)) de ContaAsiento.
  3. Validación de balance
    Verifica que débitos == créditos del año con tolerancia de 0.02.
  4. Cálculo de saldos por cuenta
    Usando cuentas.Naturaleza (1 = deudora, otras = acreedora).
  5. Asiento de arrastre
    Creado con TipoAsiento='99', Estado='2', fecha {año+1}-01-01, período {año+1}01, documento 'ARRASTRE', tipo documento '99', referencia 'SALDO_INICIAL', CC '00000', oficina '001'.
    Creado con contabilidad_insertar_lineas() (nunca INSERT directo).
  6. Archivado a histórico
    Mueve en lotes de 100 filas: ContaAsiento → ContaAsientoHistorico (con FechaCierre=GETDATE())
    ContaDiario → ContaDiarioHistorico (con FechaCierre=GETDATE())
    Elimina de las tablas activas después de confirmar la copia.
  7. Bitácora
    Registra el evento en la bitácora del sistema.
Tablas históricas ContaDiarioHistorico y ContaAsientoHistorico tienen la misma estructura que sus equivalentes activos más el campo FechaCierre. Son consultables desde el Conta Diario (CT-013) con el toggle "Histórico".

Ver saldos de un período cerrado

En el panel izquierdo, debajo de "Períodos activos", aparece la lista de Períodos cerrados. Al hacer clic en uno se muestran —de solo lectura, leídos del histórico— sus saldos por asiento y sus saldos por cuenta, igual que con un período activo. El encabezado muestra una etiqueta Histórico.

Reabrir un período (operación inversa)

Deshace un cierre: devuelve los asientos del año desde el histórico a las tablas activas y elimina el asiento de arrastre que ese cierre había generado en el año siguiente (porque al volver los movimientos, ese saldo ya estaría representado dos veces).

  • Solo el más reciente: se reabre en orden inverso al cierre. Solo el último año cerrado tiene el botón Reabrir habilitado; los demás aparecen deshabilitados.
  • Arrastre encadenado: al volver el año, regresa también su propio asiento de arrastre del año anterior (el saldo se acumula en cadena).
  • Renumeración automática: si algún número de asiento del histórico ya existe en lo activo, se le asigna un número nuevo (cabecera + líneas juntas) para no chocar.
  • Fusión: si el año a reabrir ya tiene movimientos en activo (se cerró pero después se registraron asientos nuevos), la reapertura fusiona el histórico con lo activo en vez de bloquearse.
  • Al terminar se recalculan los saldos de las cuentas afectadas y se registra en bitácora.
Recomendación Evite ciclos repetidos de cerrar/reabrir sobre el mismo año. Si nota saldos de cuentas inflados tras varios ciclos, ejecute el recálculo de saldos contables: los movimientos no se pierden, pero el saldo acumulado de cada cuenta puede requerir refrescarse.

En el celular

En el celular se abre sola la versión para teléfono. Arriba aparecen los años como tarjetas que se deslizan de lado: primero los períodos activos y debajo los períodos cerrados (con candado).

  • Ver un año: toque su tarjeta. Se muestra un resumen con la cantidad de asientos y líneas, el total de débitos y créditos, y si el año está Cuadrado o Descuadrado.
  • Asientos y saldos por cuenta: toque Asientos o Saldos por cuenta para desplegar la lista; cada uno aparece como una tarjeta.
  • Cerrar un año: con el botón Cerrar del resumen. Igual que en la computadora, solo se puede cerrar el año más antiguo y solo si está cuadrado; si no se puede, el botón se ve en gris y debajo dice por qué.
  • Reabrir un año: toque el período cerrado más reciente y luego Reabrir.

Antes de cerrar o reabrir el sistema le pide confirmar, y mientras trabaja muestra el avance en pantalla completa: no cierre la pantalla ni apague el teléfono hasta que termine. Se puede hacer lo mismo que en la computadora; en años con muchos movimientos la computadora es más cómoda para revisar las listas. Si no tiene el permiso, los botones se ven en gris. Se sale con Regresar, arriba a la derecha.