Saltar a contenido

Saldos y cierre mensual

Se inicia cuando: Contabilidad de FEMORF carga el saldo de apertura de una cuenta contable, o llega la noche en que el sistema ejecuta por su cuenta el cierre de mes.

Termina cuando: el saldo queda disponible para el mes en curso, el mes siguiente queda abierto con el saldo trasladado, o el traslado no ocurre y las operaciones contables quedan rechazadas por falta de saldo.

Participan: Contabilidad de FEMORF y acciones automáticas; el flujo propuesto suma a la Dirección de FEMORF.

Formularios: Saldo de cuentas contables, Agregar saldo de una cuenta contable, Importar saldos de las cuentas, Plantilla de importación de saldos de cuentas.

flowchart LR
  subgraph contabilidad["Contabilidad de FEMORF"]
    P1["Abre la consulta de saldos por mes y año"]
    P2["Registra el saldo inicial de una cuenta"]
    P3["Descarga la plantilla y prepara el archivo"]
    P4["Importa el archivo de saldos"]
  end
  subgraph automaticas["Acciones automáticas"]
    S1{"¿Tiene permiso para consultar?"}
    S2["Ofrece sólo cuentas que nunca han tenido saldo"]
    S3["Registra el saldo en el mes y el año de la carga"]
    S4{"¿La cuenta del archivo está en el plan?"}
    S5["Cada noche del 28 al 31 se ejecuta el cierre"]
    S6{"¿Es el último día del mes?"}
    S7["En ambiente de pruebas se omite la comprobación"]:::warning
    S8{"¿El mes en curso tiene saldos?"}
    S9{"¿El mes anterior tiene saldos?"}
    S10["Fija el saldo final del mes con el saldo actual"]
    S11{"¿El mes siguiente ya está abierto?"}
    S12["Abre el mes siguiente con ese saldo como inicial"]
  end
  R1["Consulta denegada"]:::risk
  R2["Saldo cargado en el mes en curso"]:::success
  R3["Importación sin fin y archivo no registrado"]:::risk
  R4["Cadena detenida y operaciones contables rechazadas"]:::risk
  R5["Apertura congelada y movimientos posteriores sin trasladar"]:::risk
  R6["Mes siguiente abierto"]:::success

  P1 --> S1
  S1 -- "No" --> R1
  S1 -- "Sí" --> P2
  P2 --> S2 --> S3 --> R2
  S1 -- "Sí" --> P3
  P3 --> P4 --> S4
  S4 -- "No" --> R3
  S4 -- "Sí" --> S3
  S5 --> S6
  S6 -- "No" --> S7
  S7 --> S8
  S6 -- "Sí" --> S8
  S8 -- "No" --> S9
  S9 -- "No" --> R4
  S9 -- "Sí" --> S10
  S8 -- "Sí" --> S10
  S10 --> S11
  S11 -- "Sí" --> R5
  S11 -- "No" --> S12 --> R6

  classDef risk fill:#fee2e2,stroke:#b91c1c,color:#7f1d1d;
  classDef success fill:#dcfce7,stroke:#15803d,color:#14532d;
  classDef warning fill:#fef3c7,stroke:#d97706,color:#78350f;
  style contabilidad fill:#eff6ff,stroke:#2563eb
  style automaticas fill:#f5f3ff,stroke:#7c3aed

Esta es una propuesta por validar con FEMORF; aún no está implementada.

Formularios actuales relacionados: Saldo de cuentas contables, Agregar saldo de una cuenta contable, Importar saldos de las cuentas, Plantilla de importación de saldos de cuentas.

flowchart LR
  subgraph contabilidad["Contabilidad de FEMORF"]
    P1["Carga los saldos de apertura y elige el periodo"]
    P2["Corrige el archivo y lo vuelve a cargar"]
    P3["Confirma la apertura del periodo"]
    P4["Atiende el aviso cuando el cierre no se realizó"]
  end
  subgraph direccion["Dirección de FEMORF"]
    D1["Revisa los saldos cargados"]
    D2{"¿Aprueba la apertura del periodo?"}
  end
  subgraph automaticas["Acciones automáticas"]
    S1["Comprueba cuentas, periodo y cargas repetidas"]
    S2["Informa fila por fila lo aceptado y lo rechazado"]
    S3["Abre el periodo para todas las cuentas acordadas"]
    S4["Conserva quién cargó, quién aprobó y cuándo se cerró"]
    S5["Cierra el periodo el último día y traslada el saldo"]
    S6["Avisa y permite repetir el cierre si no se realizó"]
  end
  R1["Archivo devuelto para corrección"]:::risk
  R2["Periodo abierto y con responsable identificado"]:::success
  R3["Periodo cerrado y trasladado al siguiente"]:::success

  P1 --> S1 --> S2
  S2 -- "Con rechazos" --> R1
  R1 --> P2 --> P1
  S2 -- "Sin rechazos" --> D1 --> D2
  D2 -- "No" --> R1
  D2 -- "Sí" --> P3
  P3 --> S3 --> S4 --> R2
  R2 --> S5 --> R3
  S3 -. "Supuesto por validar con FEMORF" .-> S5
  S5 -. "Supuesto por validar con FEMORF" .-> S6
  S6 --> P4

  classDef risk fill:#fee2e2,stroke:#b91c1c,color:#7f1d1d;
  classDef success fill:#dcfce7,stroke:#15803d,color:#14532d;
  style contabilidad fill:#eff6ff,stroke:#2563eb
  style direccion fill:#eff6ff,stroke:#2563eb
  style automaticas fill:#f5f3ff,stroke:#7c3aed
Pantallas del proceso

Consulta del saldo de cada cuenta por mes y año.

Reglas del proceso

  • Consultar los saldos exige el permiso de visualización de la pantalla; el filtro por mes y año y los botones de carga sólo se muestran a los perfiles administrativos.
  • El saldo inicial se registra siempre en el mes y el año del día en que se hace la carga. La pantalla no tiene campo para elegir el periodo.
  • La ventana de carga manual ofrece únicamente las cuentas que nunca han tenido un saldo registrado en ningún mes.
  • La carga manual rechaza un saldo inicial en cero, pero acepta un valor negativo.
  • El archivo de importación debe traer dos columnas con los títulos exactos de la plantilla; la lectura se detiene en la primera fila sin código de cuenta.
  • Un valor no numérico interrumpe toda la importación e informa la fila donde ocurrió.
  • El cierre se ejecuta solo, sin que nadie lo dispare, las noches del 28 al 31 de cada mes a las 11:57 de la noche en hora de Colombia. No existe ninguna pantalla ni botón para ejecutarlo, repetirlo o revertirlo.
  • El cierre sólo traslada saldos cuando comprueba que el día siguiente es el primero del mes; esa comprobación se omite cuando la aplicación corre en un ambiente de pruebas.
  • El cierre fija el saldo final del mes con el saldo actual y abre el mes siguiente tomando ese valor como saldo inicial y como saldo actual.
  • Si el mes siguiente ya está abierto, el cierre no lo vuelve a tocar: conserva el saldo inicial que quedó en la primera ejecución.
  • Si el mes en curso no tiene saldos, el cierre mira un solo mes hacia atrás y no cruza el cambio de año, de modo que en enero esa búsqueda nunca encuentra nada.
  • Cada operación contable del día busca el saldo de la cuenta que va a afectar; si la cuenta no tiene saldo abierto en el mes, la operación se rechaza completa.
  • El saldo de la cuenta se busca por el número del mes, sin considerar el año.

Diferencias y hallazgos

H-CON-SAL-01 — El cierre se adelanta y deja congelada la apertura del mes siguiente

La comprobación de fin de mes se omite cuando la aplicación corre en un ambiente de pruebas, y además esa comprobación lee el reloj del equipo donde corre la aplicación mientras el horario del cierre está fijado en hora de Colombia: la noche del último día puede leerse ya como el primer día del mes siguiente. En el ambiente revisado el mes de febrero de 2026 se abrió la noche del 28 de enero, tres días antes del cierre real. Como el cierre no vuelve a tocar un mes ya abierto, todo lo que se movió entre el 29 y el 31 de enero se quedó fuera del saldo de apertura de febrero y ninguna ejecución posterior lo corrige.

H-CON-SAL-02 — Sin saldo del mes en curso la contabilidad se detiene y el proceso no se recupera solo

Toda operación contable exige que la cuenta tenga saldo abierto en el mes en curso; si no lo tiene, la operación se rechaza completa. Cuando el cierre no se ejecuta un mes, el mes siguiente nunca se abre y el intento de recuperación mira un solo mes hacia atrás, así que la cadena queda rota de forma permanente. En el ambiente revisado el último mes con saldos es febrero de 2026 y desde marzo no existe ninguno. La pantalla tampoco permite reabrir esas cuentas, porque la ventana de carga manual sólo ofrece cuentas que nunca han tenido saldo.

H-CON-SAL-03 — El saldo se ubica por el número del mes sin mirar el año

Las operaciones contables buscan el saldo de la cuenta usando únicamente el número del mes. A partir del segundo año de operación, un movimiento de febrero puede terminar afectando el saldo de febrero del año anterior; y cuando existan dos registros del mismo mes en años distintos la búsqueda se interrumpe y la operación se rechaza sin explicación de negocio.

H-CON-SAL-04 — Una cuenta desconocida en el archivo deja la importación sin fin

Si una fila trae un código que no está en el plan de cuentas, la importación no avanza a la fila siguiente y vuelve a leer la misma una y otra vez sin límite. La ventana queda cargando indefinidamente, el archivo nunca se registra y el funcionario no recibe ningún mensaje que le indique cuál es la fila con el problema.

H-CON-SAL-05 — El saldo cargado no se puede fechar, corregir ni eliminar

La carga manual y la importación registran siempre el mes y el año del día en que se hacen, sin campo para elegir el periodo, de modo que no se puede cargar la apertura de un mes anterior ni preparar la de un mes futuro. Un saldo equivocado tampoco tiene salida: la consulta no ofrece editar, el botón de eliminar de la ventana de carga está oculto y no ejecuta nada, y para esta pantalla no existen permisos de modificación ni de eliminación.

H-CON-SAL-06 — El proceso no deja rastro de quién cargó ni de cuándo se cerró

Ni la carga manual, ni la importación, ni el cierre dejan historial de cambios sobre los saldos. El cierre no anota quién ni cuándo lo ejecutó y deja el mes recién abierto a nombre de la persona que cargó el saldo original, así que no se puede reconstruir qué se cargó, qué se cerró ni qué se corrigió.

H-CON-SAL-07 — Sólo una parte del plan de cuentas tiene saldo cargado

En el ambiente revisado 3 de las 37 cuentas del plan tienen saldo, y 4 de las 7 cuentas que los conceptos usan para contabilizar no lo tienen en ningún mes. Toda operación que afecte una de esas cuentas se rechaza completa aunque la cuenta esté correctamente parametrizada, y el mensaje que recibe el funcionario no distingue entre una cuenta sin parametrizar y una cuenta sin saldo abierto.

H-CON-SAL-08 — Los controles de acceso no corresponden a lo que hace la pantalla

Registrar un saldo manualmente exige el permiso de importar, porque para esta pantalla sólo existen los permisos de visualizar, exportar e importar y no hay uno de creación. El botón de agregar se muestra según el perfil administrativo y no según el permiso, de modo que quien no lo tiene sólo se entera al guardar, y en ese caso la ventana muestra un mensaje vacío en lugar de la advertencia. Guardar e importar tampoco exigen la marca que confirma que la petición salió del formulario de la aplicación, y el guardado admite llamados por dirección directa.

Supuestos por validar con FEMORF

  • A-CON-SAL-01: Supuesto por validar con FEMORF: la carga de saldos de apertura tendrá una revisión previa y una aprobación de la Dirección antes de quedar en firme, con devolución al funcionario cuando el archivo traiga rechazos.
  • A-CON-SAL-02: Supuesto por validar con FEMORF: se confirmará el día y la hora exactos en que debe cerrarse el mes, y quién puede ejecutar o repetir el cierre cuando no se haya realizado.
  • A-CON-SAL-03: Supuesto por validar con FEMORF: se definirá qué debe ocurrir cuando el mes en curso no tiene saldos abiertos, entre abrirlos automáticamente, generar los meses faltantes o bloquear las operaciones con un aviso claro.
  • A-CON-SAL-04: Supuesto por validar con FEMORF: se confirmará si el cierre debe impedir movimientos posteriores sobre el mes ya cerrado y bajo qué condiciones se admite reabrirlo dejando constancia.
  • A-CON-SAL-05: Supuesto por validar con FEMORF: se confirmará si el periodo debe abrirse para todas las cuentas del plan o solamente para las que tienen movimiento, y con qué saldo de apertura se abren las cuentas nuevas.