Este artículo reúne las fórmulas más utilizadas al configurar Estructuras Contables. Cada fórmula incluye una breve descripción, su estructura, explicación y un ejemplo práctico.
Plan Contable
Descripción
Esta fórmula permite asignar automáticamente la cuenta contable según
el plan definido en el trabajo (job_custom_attrs.Plan_Contable).
Es útil para escenarios donde distintas áreas (por ejemplo, Administración
u Operaciones) requieren asociarse a cuentas contables diferentes.
💡 Importante: aunque el siguiente ejemplo se basa
en variables de job (trabajo), la misma lógica puede
aplicarse
a otras categorías según el contexto del asiento.
-
centro_costo→ si deseas basar la cuenta contable en un centro de costo. -
area→ si la lógica depende del área asignada. -
empresa→ si las cuentas varían según la empresa.
Fórmula
CASE job_custom_attrs.Plan_Contable
WHEN "ADMINISTRACION" THEN IF(PRESENT(cuenta_custom_attrs.ADMINISTRACION), cuenta_custom_attrs.ADMINISTRACION, cuenta_contable.cuenta_contable)
WHEN "OPERACIONES" THEN IF(PRESENT(cuenta_custom_attrs.OPERACIONES), cuenta_custom_attrs.OPERACIONES, cuenta_contable.cuenta_contable)
ELSE cuenta_contable.cuenta_contable
END
Explicación
-
Evalúa el plan en
job_custom_attrs.Plan_Contable. - Si coincide con Administración u Operaciones, busca el atributo en la cuenta.
- Si el atributo tiene valor → se usa; si no → se usa la cuenta general.
Ejemplo
Plan = OPERACIONES → devuelve
cuenta_custom_attrs.OPERACIONESsi existe, de lo contrariocuenta_contable.cuenta_contable.
RUT según tipo de entidad
Descripción
Esta fórmula obtiene automáticamente el
RUT correspondiente al tipo de entidad
definido en el atributo personalizado
cuenta_custom_attrs.Rut.
Evalúa si se trata de una AFP, Isapre, Empresa, Funcionario, APV
u otro tipo,
y devuelve el RUT asociado dinámicamente.
Utiliza la función rut_sin_puntos() para limpiar el
formato del RUT
(elimina puntos pero mantiene el guion).
Si no deseas aplicar modificaciones, elimina
rut_sin_puntos()
para devolver el RUT completo.
Fórmula
CASE cuenta_custom_attrs.Rut
WHEN "AFP" THEN rut_sin_puntos(plan.rut_afp)
WHEN "SALUD" THEN rut_sin_puntos(plan.rut_isapre)
WHEN "FUNCIONARIO" THEN rut_sin_puntos(employee.rut)
WHEN "EMPRESA" THEN rut_sin_puntos(empresa.rut)
WHEN "AFC" THEN "76237243-6"
WHEN "CCAF" THEN "81826800-9"
WHEN "MUTUAL" THEN rut_sin_puntos(plan.rut_mutual)
WHEN "APV" THEN rut_sin_puntos(plan.rut_apv)
ELSE rut_sin_puntos(cuenta_custom_attrs.Rut)
END
Explicación
-
Evalúa el valor definido en
cuenta_custom_attrs.Rut. - Obtiene el RUT según la entidad (AFP, Isapre, Empresa, etc.).
-
Usa
rut_sin_puntos()para entregar un formato limpio. - Si no coincide con ningún tipo, devuelve el valor original.
Ejemplo
Tipo = "AFP" → devuelve
plan.rut_afpsin puntos.
Tipo = "FUNCIONARIO" → devuelveemployee.rutsin puntos.
Tipo = "EMPRESA" → devuelveempresa.rutsin puntos.
RUT según tipo de entidad y tipo de cuenta contable
Descripción
Versión extendida que obtiene el RUT según el tipo de entidad y
el tipo de cuenta contable (cuenta_contable.nombre_cuenta),
diferenciando entre AFP, APV, Cesantía, Isapre, Empresa o Funcionario.
Fórmula
rut_sin_puntos(
CASE cuenta_custom_attrs.RUT
WHEN "AFP" THEN IF(
cuenta_contable.nombre_cuenta = "apv", plan.rut_apv,
IF(
cuenta_contable.nombre_cuenta = "cuenta_2", plan.rut_cuenta2,
IF(
cuenta_contable.nombre_cuenta = "cesantia" OR
cuenta_contable.nombre_cuenta = "cesantia_empleador_deber" OR
cuenta_contable.nombre_cuenta = "cesantia_empleador_haber",
plan.afp_recaudadora,
plan.rut_afp
)
)
)
WHEN "SALUD" THEN plan.rut_isapre
WHEN "FUNCIONARIO" THEN employee.rut
WHEN "APV" THEN plan.rut_apv
WHEN "EMPRESA" THEN empresa.rut
ELSE cuenta_custom_attrs.RUT
END
)
Explicación
-
Evalúa el tipo de entidad (
cuenta_custom_attrs.RUT). - Si es AFP, revisa además el nombre de la cuenta contable.
- Devuelve el RUT específico (APV, Cesantía, Recaudadora, etc.).
-
Limpia el formato con
rut_sin_puntos().
Ejemplo
Tipo = "AFP" y cuenta = "apv" →
plan.rut_apvsin puntos.
Tipo = "AFP" y cuenta = "cesantia" →plan.afp_recaudadorasin puntos.
Tipo = "FUNCIONARIO" →employee.rutsin puntos.
Limitar caracteres en cualquier campo
Descripción
Las funciones LEFT() y RIGHT() se utilizan
para
recortar la cantidad de caracteres visibles de un
texto o número.
Son útiles para ajustar los largos de columnas según los requisitos
del sistema contable.
Fórmula
LEFT(CONCAT(cuenta_contable.cuenta_contable, " "), 10)
LEFT(CONCAT(cuenta_custom_attrs.Descripcion, " "), 30)
LEFT(CONCAT(to_s(cuenta_contable.deber), " "), 12)
RIGHT(CONCAT(to_s(cuenta_contable.haber), " "), 8)
Explicación
-
LEFT(valor, n)toma los primerosncaracteres. -
RIGHT(valor, n)toma los últimosncaracteres. -
CONCAT(..., " ")evita errores cuando el valor está vacío. -
Usa
to_s()si el valor es numérico.
Ejemplo
Entrada:
cuenta_contable.cuenta_contable = "110501000123"
Fórmula:LEFT(CONCAT(cuenta_contable.cuenta_contable, " "), 10)
Resultado:1105010001Entrada:
cuenta_contable.nombre_cuenta = "Gastos de administración general"
Fórmula:RIGHT(CONCAT(cuenta_contable.nombre_cuenta, " "), 15)
Resultado:nistración general
Identificar Débito o Crédito
Descripción
Esta fórmula permite identificar si una línea contable corresponde a un Débito o un Crédito
según el valor del campo cuenta_contable.deber_o_haber.
Es útil para mostrar etiquetas descriptivas o clasificaciones dentro de la estructura contable, especialmente
al generar reportes o glosas personalizadas.
💡 Consejo: Puedes adaptar el texto de salida ('DEBITO' y 'CREDITO')
según el formato que use tu ERP, por ejemplo: 'DEBIT' / 'CREDIT' o
'DR' / 'CR'.
Fórmula
IF(cuenta_contable.deber_o_haber = 'D', 'DEBITO', 'CREDITO')
Explicación
- Evalúa el valor del campo
cuenta_contable.deber_o_haber. - Si es igual a
'D', devuelve el texto "DEBITO". - En cualquier otro caso (por ejemplo,
'C'), devuelve "CREDITO". - Esta estructura condicional puede aplicarse también a otros campos, como glosa, centro de costo o tipo de documento.
Ejemplo
Entrada 1:
cuenta_contable.deber_o_haber = 'D'
Resultado:DEBITOEntrada 2:
cuenta_contable.deber_o_haber = 'C'
Resultado:CREDITO
✅ Buenas prácticas al usar fórmulas
- Respeta mayúsculas y minúsculas en los nombres de variables.
- Verifica que los atributos personalizados existen en tu cuenta.
-
Usa
IF(PRESENT(...))oifmonto(...)para evitar valores vacíos. - Si una fórmula no funciona, revisa el valor real de los atributos.
- En caso de dudas, contacta al equipo de Integraciones.