Esta guía te ayudará a sacar el máximo provecho a Accounting Assistant, permitiéndote crear estructuras contables personalizadas mediante la configuración de columnas. Aprenderás a usar diferentes tipos de columnas y a construir fórmulas para manipular y transformar datos de manera eficiente.
1. Entendiendo las Columnas y su Propósito
En Accounting Assistant, puedes definir cómo se estructura la información en tus procesos contables mediante la creación de "Columnas". Cada columna tiene un tipo específico que determina cómo se comporta y qué tipo de información puede mostrar o calcular.
Tipos de Columna Disponibles:
Fórmula:
- Cuándo usarla: Cuando necesitas que la columna muestre un resultado calculado basado en otras variables, valores fijos o lógica compleja. Es la opción más versátil.
- Ejemplo: Aperturar el asiento contable sólo cuando se cumpla cierto caso específico.
Texto Plano:
- Cuándo usarla: Cuando quieres que la columna siempre muestre un texto fijo, sin ningún cálculo o cambio.
- Ejemplo: Una columna que siempre diga "Concepto Fijo" o "Ajuste Manual". Simplemente escribes el texto deseado al configurar la columna.
Correlativo:
- Cuándo usarla: Cuando necesitas una columna que numere automáticamente las filas, comenzando desde un número que tú indiques.
- Ejemplo: Si quieres una columna "N°" que empiece en 1 y aumente (1, 2, 3...), o que empiece en 0. Al configurar, solo indicas el número de inicio.
Atributo:
- Cuándo usarla: Cuando quieres que la columna muestre directamente el valor de una variable específica de las que tenemos disponibles (ver sección "Variables Disponibles"). No realiza cálculos, solo muestra el dato tal cual.
- Ejemplo: Una columna que muestre el Rut del colaborador o el nombre de la empresa.
Monto:
- Cuándo usarla: Especialmente diseñada para mostrar valores monetarios, como el cuenta_contable.deber o el cuenta_contablee.haber. También puedes formular con este tipo de columna pero no se recomienda hacerlo por posibles errores de descuadres.
2. Variables Disponibles para tus Fórmulas y Columnas de Atributo
Para construir tus fórmulas o seleccionar un atributo, necesitas conocer las "variables" disponibles. Las variables son como etiquetas que representan datos específicos dentro del sistema.
Formato para Referenciar Variables:
Debes usar el formato categoria.variable. Por ejemplo, para obtener el RUT de un colaborador, usarías employee.rut.
Orden de Operaciones:
Puedes usar paréntesis ( ) para controlar el orden en que se realizan las operaciones en tus fórmulas, similar a las matemáticas.
Variables:
Categoría | Descripción | Variables Comunes (Ejemplos) |
Colaborador | Datos del empleado. | employee.rut, employee.first_name, employee.last_name, employee.rol_privado |
Trabajo | Información del trabajo del empleado. | job.area_full_name, job.role_name, job.dias_trabajados, job.costo_empresa, job.tipo_contrato |
Cuenta Contable | Datos contables relacionados con cuentas. | cuenta_contable.cuenta_contable, cuenta_contable.deber, cuenta_contable.haber, cuenta_contable.glosa, cuenta_contable.monto, cuenta_contable.item_code |
Plan | Información sobre planes previsionales y salud. | plan.afp, plan.isapre, plan.rut_afp, plan.is_cuenta2 |
Centro de Costos | Datos relacionados con centros de costo. | centro_costo.centro_costo, centro_costo.centro_costo_id, centro_costo.centro_costo_weight |
Empresa | Información sobre la empresa. | Empresa.nombre, Empresa.rut, Empresa.id |
Variable | Datos relacionados con manejo de fechas del periodo. | variable.primer_dia_del_periodo, variable.ultimo_dia_del_periodo, variable.mes_en_palabras, variable.año |
3. Creando Fórmulas: Operadores y Funciones
Cuando eliges el tipo de columna "Fórmula", puedes escribir expresiones que calculen un resultado. Usamos un sistema similar a las fórmulas de Excel.
3.1. Tipos de Datos en Fórmulas
- Números: Ej: 100, 25.5, -50. Usa el punto (.) para decimales.
- Texto (Cadenas): Deben ir entre comillas dobles (") o simples ('). Ej: "Provisión", 'Ajuste'.
- Valores Lógicos: TRUE o FALSE.
3.2. Operadores Aritméticos (Para describir operaciones)
Estos operadores realizan cálculos matemáticos básicos. Ten precaución al usarlos con variables de monto (cuenta_contable.deber, cuenta_contable.haber, cuenta_contable.monto) para evitar descuadres contables. Son más seguros para operar con variables como job.dias_trabajados o números fijos.
Operador | Qué Hace | Ejemplo (Conceptual) |
+ | Suma | job.dias_trabajados + 5 |
- | Resta | job.dias_trabajados - 30 |
* | Multiplicación | job.dias_trabajados * 8 |
/ | División | job.dias_trabajados / 30 |
^ | Potencia | variable ^ 2 |
% | Módulo (Resto) | job.dias_trabajados % 7 |
3.3. Operadores de Comparación (Para comparar valores)
Estos operadores comparan dos valores y devuelven TRUE (verdadero) o FALSE (falso). Son muy útiles en funciones lógicas como IF.
Operador | Qué Hace | Ejemplo |
= | Igual a | job.tipo_contrato = "Plazo Fijo" |
!= ó <> | Diferente de | cuenta_contable.deber != 0 |
> | Mayor que | job.dias_trabajados > 15 |
< | Menor que | cuenta_contable.monto < 50000 |
>= | Mayor o igual que | variable.año >= 2024 |
<= | Menor o igual que | centro_costo.centro_costo_weight <= 0.5 |
3.4. Catálogo de Funciones Disponibles
Las funciones realizan tareas específicas. Se escriben: NOMBRE_FUNCION(argumento1, argumento2, ...)
3.4.1. Funciones Lógicas
Nombre | Parámetros | Descripción |
IF(condicion, valor_si_verdadero, valor_si_falso) | condicion: expresión lógica valor_si_verdadero: qué devolver si es TRUE valor_si_falso: qué devolver si es FALSE | Permite obtener un valor u otro dependiendo de si una condicion es verdadera o falsa. |
CASE valor_a_evaluar WHEN comparacion1 THEN resultado1 [WHEN ...] END | valor_a_evaluar: el dato que quieres comparar comparacionX: valor a comparar resultadoX: qué devolver si coincide | Permite múltiples condiciones, como una cadena de IFs. Evalúa hasta encontrar una coincidencia. |
AND(expresion1, expresion2, ...) | Lista de expresiones lógicas | Devuelve TRUE si todas las expresiones son TRUE. |
OR(expresion1, expresion2, ...) | Lista de expresiones lógicas | Devuelve TRUE si al menos una expresión es TRUE. |
NOT(expresion) | Una expresión lógica | Invierte el valor de la expresión (TRUE a FALSE, FALSE a TRUE). |
- Ejemplo IF: IF(job.dias_trabajados > 20, "Mes Completo", "Mes Parcial")
- Ejemplo CASE: CASE job.tipo_contrato WHEN "Indefinido" THEN "COD_A" WHEN "Plazo Fijo" THEN "COD_B" ELSE "COD_OTRO" END
- Ejemplo AND: IF(AND(cuenta_contable.deber > 0, centro_costo.centro_costo = "VENTAS"), "Cargo Ventas", "Otro Cargo")
3.4.2. Funciones de Validación y Manejo de Datos Vacíos
Nombre | Descripción | Ejemplo | Explicación del Ejemplo |
IFBLANK(a, b) | Devuelve el primer valor no vacío entre a y b. | IFBLANK(employee.second_last_name, "-") | Si el segundo apellido (employee.second_last_name) está vacío, muestra "-", sino, muestra el apellido. |
PRESENT(valor) | Verifica si el valor no está vacío. Devuelve TRUE si tiene contenido. | PRESENT(employee.email_recipient) | Devuelve TRUE si la variable employee.email_recipient tiene algún valor. |
ISBLANK(valor) | Verifica si el valor está vacío. Devuelve TRUE si está vacío. | ISBLANK(plan.apvc) | Devuelve TRUE si la variable plan.apvc está vacía. |
- Ejemplo de uso PRESENT en un IF: IF(PRESENT(plan.rut_isapre), "Tiene Isapre", "No Registra Isapre")
3.4.3. Funciones para Manipulación de RUT (Específico para Chile)
Nombre | Descripción | Ejemplo con employee.rut = "12345678-9" | Resultado del Ejemplo |
RUT_SIN_DV(rut) | Devuelve el RUT sin el dígito verificador. | RUT_SIN_DV(employee.rut) | "12345678" |
RUT_SOLO_DV(rut) | Devuelve solo el dígito verificador del RUT. | RUT_SOLO_DV(employee.rut) | "9" |
RUT_SIN_PUNTOS(rut) | Devuelve el RUT sin puntos (mantiene el guion). | RUT_SIN_PUNTOS ("12.345.678-9") | "12345678-9" |
- Ejemplo para Glosa: CONCAT("Transf. RUT ", RUT_SIN_DV(employee.rut))
3.4.4. Funciones para Transformación de Texto
Nombre | Descripción | Ejemplo | Resultado del Ejemplo |
TO_S(valor) | Convierte cualquier valor a texto. | TO_S(variable.año) | Si variable.año es 2024, devuelve "2024" |
MAYUS(texto) | Convierte un texto a MAYÚSCULAS. | MAYUS(employee.first_name) | Si employee.first_name es "Ana", devuelve "ANA" |
MINUS(texto) | Convierte un texto a minúsculas. | MINUS(empresa.nombre) | Si empresa.nombre es "Mi EMPRESA", devuelve "mi empresa" |
CONCAT(texto1, texto2) | Une textos y/o variables | CONCAT(employee.rut,”-”, employee.first_name) | Si el employee tiene nombre “Pedro” y rut “1234” devuelve: “1234-Pedro” |
-
Otras funciones de texto útiles:
- LEFT(texto, num_caracteres): Extrae caracteres desde la izquierda. Ejemplo: LEFT(employee.rut, 8)
- RIGHT(texto, num_caracteres): Extrae caracteres desde la derecha. Ejemplo: RIGHT(cuenta_contable.cuenta_contable, 3)
- MID(texto, inicio, num_caracteres): Extrae caracteres desde el medio. Ejemplo: MID(job.role_name, 1, 5)
- LEN(texto): Devuelve la longitud del texto. Ejemplo: LEN(employee.rut)
- TRIM(texto): Elimina espacios al inicio y final. Ejemplo: TRIM(" Texto con espacios ") devuelve "Texto con espacios"
3.4.5. Funciones Numéricas (y relacionadas)
Nombre | Descripción | Ejemplo | Resultado del Ejemplo (si cuenta_contable.deber es 0 o vacío) |
IFMONTO(monto, valor_si_vacio_o_cero) | Si el monto (deber, haber, u otro) es 0, nulo o vacío, retorna valor_si_vacio_o_cero. Sino, retorna el monto. | IFMONTO(cuenta_contable.deber, 0) | 0 (Si cuenta_contable.deber es 1000, devuelve 1000) |
-
Otras funciones matemáticas (usar con precaución en montos contables; verificar disponibilidad y comportamiento exacto en Accounting Assistant):
-
ROUND(número, [decimales]): Redondea un número a la cantidad de decimales especificada. Si se omite decimales, redondea al entero más cercano.
- Ejemplo: ROUND(3.1416, 2) (redondea a 2 decimales)
-
CEIL(número): Redondea un número hacia arriba al entero más próximo..
- Ejemplo: CEIL(7.2) devuelve 8.
-
FLOOR(número): Redondea un número hacia abajo al entero más próximo (trunca la parte decimal).
- Ejemplo: FLOOR(7.8) devuelve 7.
-
MIN(num1, num2, ...): Devuelve el valor mínimo de una lista de números.
- Ejemplo: MIN(job.dias_trabajados, 30)
-
MAX(num1, num2, ...): Devuelve el valor máximo de una lista de números.
- Ejemplo: MAX(job.costo_empresa, 100000)
-
SUM(num1, num2, ...): Suma todos los números de la lista.
- (Precaución: Evitar sumar montos contables principales si puede causar descuadres).
- Ejemplo: SUM(variable.ajuste1, variable.ajuste2, 100) (asumiendo que ajuste1 y ajuste2 son variables numéricas auxiliares)
-
ABS(número): Devuelve el valor absoluto (sin signo) de un número.
- Ejemplo: ABS(cuenta_contable.monto) (para mostrar el monto siempre positivo)
-
ROUND(número, [decimales]): Redondea un número a la cantidad de decimales especificada. Si se omite decimales, redondea al entero más cercano.
4. Combinando Funciones y Operadores
La verdadera potencia se desbloquea al combinar múltiples funciones y operadores para crear lógica compleja o textos dinámicos.
Ejemplo: Crear una Glosa personalizada basada en si es Deber o Haber y el tipo de contrato.
IF(cuenta_contable.deber > 0,
CONCAT("Cargo ", job.tipo_contrato, " Colab: ", employee.first_name),
CONCAT("Abono ", job.tipo_contrato, " Colab: ", employee.first_name)
)
- Esta fórmula revisa si cuenta_contable.deber es mayor que 0.
- Si es TRUE, crea una glosa que empieza con "Cargo ", seguido del tipo de contrato y el nombre del colaborador.
- Si es FALSE (implica que es un Haber o el Deber es 0), crea una glosa que empieza con "Abono ", seguido del tipo de contrato y el nombre del colaborador.
5. Consejos y Buenas Prácticas
- Nombres de Variables Exactos: Asegúrate de usar el formato categoria.variable (ej: employee.rut, cuenta_contable.glosa) y que los nombres completos. ¡Mayúsculas y minúsculas importan!
- Paréntesis (): Úsalos para definir el orden de las operaciones, especialmente en condiciones lógicas complejas con AND y OR.
- Comillas para Texto: No olvides las comillas (" o ') para los valores de texto fijos dentro de tus fórmulas (ej: "Provisión", 'OK').
- Prueba Gradualmente: Si una fórmula es compleja, créala por partes y pruébala para asegurarte de que cada sección funciona como esperas.
- Manejo de Errores/Vacíos: Usa IFBLANK, ISBLANK, PRESENT y IFMONTO para manejar situaciones donde los datos podrían no existir y evitar resultados inesperados o errores en tus procesos.
- Precaución con Montos: Evita realizar operaciones aritméticas (+, -, *, /) directamente sobre las variables cuenta_contable.deber, cuenta_contable.haber o cuenta_contable.monto si esto puede generar descuadres en tus asientos contables. Es más seguro usarlos en comparaciones (>, <, =) o con funciones como IFMONTO.
-
Errores Comunes:
- Nombre de variable incorrecto (ej: empleado.rut en lugar de employee.rut).
- Falta de comillas en valores de texto.
- Número incorrecto de argumentos o paréntesis desbalanceados en funciones (ej: IF(condicion, verdadero) en lugar de IF(condicion, verdadero, falso)).
- Intentar comparar o operar tipos de datos incompatibles directamente (ej: job.dias_trabajados > "texto").