La implementación y manejo de las Pólizas Dinámicas en Aspel-COI 7.0 representa una función exclusiva que permite generar de manera automática un asiento contable (póliza) con únicamente cargar al sistema el o los archivos XML de los Comprobantes Fiscales Digitales por Internet (CFDIs) que se desean contabilizar. Con ello, y siguiendo el formato de la plantilla XLS indicada, Aspel-COI inserta las cuentas contables que se van a registrar en la póliza, el número de la factura y el RFC entre otros datos que extrae automáticamente del archivo XML. Además, de manera simultánea se relacionan los folios fiscales del CFDI y los montos totales de acuerdo a los requisitos para la contabilidad electrónica.
Administrador de hojas de cálculo
La ruta para acceder a este módulo es: Reportes / Administrador de hojas de cálculo. El administrador de hojas de cálculo es el módulo de Aspel-COI para gestionar las plantillas en formato XLS (Excel) que intercambian directamente información con el sistema. Es decir, gracias a estas plantillas es posible extraer o introducir de manera fácil y rápida información a Aspel-COI.
El módulo viene con varias hojas de cálculo por default, pero es posible diseñar o personalizar plantillas de este tipo y agregarlas al administrador. Las hojas de cálculo se clasifican en: Financieras, fiscales y pólizas dinámicas. Estas últimas son el enfoque principal de este contenido.
Los archivos predeterminados XLS de las pólizas dinámicas que contiene este módulo se encuentran dentro del Directorio de Archivos Comunes Aspel (DAC), en la ruta: Sistemas Aspel\COI7\Plantillas\Póliza Dinámica CFDI. Una póliza dinámica se genera a partir de una plantilla la cual, a su vez, debe estar contenida en el administrador de hojas de cálculo.
Pólizas Dinámicas: Automatización Contable
Las pólizas dinámicas es una función exclusiva de Aspel-COI, que permite generar de manera automática un asiento contable (póliza) con únicamente cargar al sistema el o los archivos XML de los Comprobantes Fiscales Digitales por Internet (CFDIs) que se desean contabilizar. Con ello, y siguiendo el formato de la plantilla XLS indicada, Aspel-COI inserta las cuentas contables que se van a registrar en la póliza, el número de la factura y el RFC entre otros datos que extrae automáticamente del archivo XML; Además de manera simultánea se relacionan los folios fiscales del CFDI y los montos totales de acuerdo a los requisitos para la contabilidad electrónica.
Lea también: Póliza de Seguro: Asiento Contable
El Rol Fundamental de las Etiquetas en Pólizas Dinámicas
La generación automática de un asiento contable por medio de la plantilla de una póliza dinámica funciona mediante etiquetas que extraen la información del archivo XML. Las etiquetas son variables que son identificadas mediante palabras que se encuentran entre los signos “menor que” y “mayor que” (<>) las cuales son asemejadas por el sistema para que éste coloque la información que extrae del XML con la etiqueta, en el campo en donde ésta se encuentra.
En la hoja número dos de cualquier plantilla de póliza dinámica que vienen en el sistema de manera predeterminada, se encuentra el listado de las etiquetas que se pueden utilizar en la misma u otras plantillas, así como su respectiva descripción y el atributo en el XML de donde se extrae la información.
A. Para conceptos (cabecera y partidas)
- <SERIE>: Serie del control interno. Atributo en el CFDI (XML):
- <FOLIO>: Folio del control interno. Atributo en el CFDI (XML):
- <FECHA>: Fecha de expedición. Atributo en el CFDI (XML):
- <RFC_EMISOR>: RFC del emisor del comprobante. Atributo en el CFDI (XML):
, - <NOMBRE_EMISOR>: Nombre, denominación o razón social del emisor del comprobante. Atributo en el CFDI (XML):
, - <RFC_RECEPTOR>: RFC del receptor del comprobante. Atributo en el CFDI (XML):
, - <NOMBRE_RECEPTOR>: Nombre, denominación o razón social del receptor del comprobante. Atributo en el CFDI (XML):
, - <TASA_IVA_TRAS>: Tasa del IVA trasladado. Atributo en el CFDI (XML):
, IVA, - <TASA_IEPS_TRAS>: Tasa del IEPS trasladado. Atributo en el CFDI (XML):
, IEPS,
B. Para montos (debe y haber)
- <SUBTOTAL>: Subtotal, suma de los importes antes de descuentos e impuestos. Atributo en el CFDI (XML):
- <DESCUENTO>: Total de descuentos. Atributo en el CFDI (XML):
- <IMPORTEANTESIMPUESTOS>: Es la diferencia de los atributos Total de descuentos. Atributo en el CFDI (XML):
menos - <IVA_TRAS>: Importe del IVA trasladado. Atributo en el CFDI (XML):
, IVA, - <IEPS_TRAS>: Importe del IEPS trasladado. Atributo en el CFDI (XML):
, IEPS - <IVA_RET>: Importe del IVA retenido. Atributo en el CFDI (XML):
, IVA, - <ISR_RET>: Importe del ISR retenido. Atributo en el CFDI (XML):
, ISR, - <TOTAL_IMPTO_TRAS_LOC>: Importe del atributo Total de los impuestos locales trasladados, del Complemento de impuestos locales. Atributo en el CFDI (XML):
- <TOTAL_IMPTO_RET_LOC>: Importe del atributo Total de los impuestos locales retenidos, del Complemento de impuestos locales. Atributo en el CFDI (XML):
Etiquetas para CFDI de nómina
- <IMPORTEPERCEPCION_nnn>: Importe total de las Percepciones asociadas a un "Tipo de percepción" según la clave del catálogo del SAT. Atributo en el CFDI (XML):
, , , , - <IMPORTEDEDUCCION_nnn>: Importe total de las Deducciones asociados un "Tipo de deducción" según la clave del catálogo del SAT. Atributo en el CFDI (XML):
, , , , - <PERCEPCION_GRAVADA_nnn>: Importe gravado de las Percepciones asociadas a un "Tipo de percepción" según la clave del SAT. Atributo en el CFDI (XML):
, , , , - <PERCEPCION_EXENTA_nnn>: Importe exento de las Percepciones asociadas a un "Tipo de percepción" según la clave del SAT. Atributo en el CFDI (XML):
, , , , - <DEDUCCION_GRAVADA_nnn>: Importe gravado de las Deducciones asociadas a un "Tipo de deducción" según la clave del SAT. Atributo en el CFDI (XML):
, , , , - <DEDUCCION_EXENTA_nnn>: Importe exento de las Deducciones asociadas a un "Tipo de deducción" según la clave del SAT. Atributo en el CFDI (XML):
, , , ,
Otras Etiquetas Útiles sin Extracción de XML
También existen etiquetas que no extraen información de los archivos XML pero de igual manera son útiles en las plantillas, ya que colocan información almacenada en la base de datos de Aspel-COI:
- <CONCEPTO_POL>: Se utiliza solo en la definición del concepto de partidas, replica el concepto definido en la cabecera de la póliza.
- <CTA_RECEPTOR>: Se utiliza en el campo "No. Cuenta" para indicar la Cuenta contable asociada al RFC del receptor del comprobante.
- <CTA_EMISOR>: Se utiliza en el campo "No. Cuenta" para indicar la Cuenta contable asociada al RFC del emisor del comprobante.
- <CTA_TERCERO>: Se utiliza en el campo "No. Cuenta" para indicar la Cuenta contable del tercero, es decir, la asociada al RFC que es distinto al definido en parámetros del sistema.
- <TERCERO_CONTRAPARTIDA>: Se utiliza en el campo "No. Cuenta" para indicar la Cuenta contable definida en el campo "Contrapartida más común" en Datos fiscales del tercero.
- FIN_PARTIDAS: Etiqueta que se utiliza para delimitar la definición de las partidas de la póliza. Cualquier dato que se coloque por debajo de la fila en que se encuentre ubicada, será ignorado al generar la póliza dinámica.
Cálculo de Porcentajes y Etiquetas Personalizadas
Adicional a esto, también es posible calcular un porcentaje a las etiquetas para los montos en los cargos y/o abonos. La operación se expresa como:
Además, el usuario podrá especificar o definir otras etiquetas para la elaboración de la póliza dinámica. La estructura de la definición es la siguiente: Nombre_Etiqueta = [NODO1.NODO2.NODO3.NODOn].[ATRIBUTO_A_PROPONER](ATR_COND1=VALOR1, ATR_COND2=VALOR2, ... , ATR_CONDn=VALORn). Donde NODO1 es el nodo padre, NODO2 es hijo de NODO1 y así sucesivamente, NODOn es hijo de NODOn-1, y ATRIBUTO_A_PROPONER es un atributo del NODOn y es el valor que sustituirá la etiqueta. Para identificar a un nodo en específico se podrá realizar por medio del valor de sus atributos.
Lea también: Guía para entender las pólizas contables
Por ejemplo, si el usuario desea que en la póliza se muestre el nombre del producto, debe colocar la etiqueta
Póliza Dinámica de Nómina: Etiquetas Específicas
El sistema validará del XML si contiene el nodo
Manejo de Pólizas Dinámicas en Aspel-COI 7.0
La creación automática de asientos contables a través de las pólizas dinámicas se hace en únicamente estos pasos: 1. Conocer e identificar la póliza dinámica que se utilizará. 2. Crear la póliza a partir de uno o más CFDI’s. 3. ¡Listo! Las capturas de operaciones serán más fáciles que nunca. Pero previamente a estos pasos, y por única ocasión, se debe analizar y/o personalizar el o los archivo XLS que se utilizaran de manera cotidiana en la generación automática de asientos contables.
Ejemplo Práctico: Póliza Dinámica "Venta a Crédito"
La plantilla de la póliza dinámica “Venta a crédito” por default es un asiento contable muy básico en donde se pueden apreciar las etiquetas que extraerán la información del archivo XML, las cuentas fijas que siempre se utilizarán en este tipo de asientos contables (una venta a crédito), el tipo de póliza y el concepto de la misma, así como la instrucción “FIN_PARTIDAS” sin la cual el sistema no detectaría hasta qué parte de la hoja se encuentran las partidas de la póliza. Si se utiliza esta plantilla, el sistema creará una póliza con lo siguiente:
- En el campo “concepto de póliza” el sistema colocará la frase “VENTA F-” seguido de la serie y folio de la factura correspondiente al CFDI con un guion medio entre estas, así como también el nombre del receptor de la factura, en este caso (una venta a crédito), el cliente. Estos datos se obtienen con la instrucción: VENTA F-
- / . - El sistema colocará un cargo por el total de la factura a la cuenta contable que tenga asignado el RFC del receptor del XML. En caso de que no se tenga asignado el RFC a una cuenta, el sistema no sugerirá cuenta alguna, pero se podrá capturar en la póliza generada. Estos datos se obtienen con la instrucción:
. - También el sistema colocará un abono por el importe antes de impuestos, a la cuenta de ventas 4100-001-000. Si el número de la cuenta contable que se utiliza para ventas es diferente se puede indicar en esta celda. El valor del importe antes de impuestos se obtiene con la etiqueta:
. - Por último, colocará un abono a la cuenta número 2181-001-000 que corresponde al IVA trasladado, por el monto del IVA registrado en el XML. De igual manera si el número de cuenta utilizado para el IVA es distinto, éste se puede indicar en esta celda. El valor del importe del IVA se obtiene con la instrucción:
.
Tipos de Pólizas Dinámicas Preinstaladas
Las plantillas de pólizas dinámicas que vienen preinstaladas en el sistema Aspel-COI cuentan con los siguientes elementos:
Lea también: Contabilización de Pólizas de Seguro
a) Cabecera del documento
- Tipo de póliza. (2 caracteres) debe comenzar en la primera columna de la tercera fila.
- El concepto de la póliza. (120 caracteres) debe de ir en la segunda columna y tercera fila a continuación del tipo de póliza.
b) Partidas
- Número de cuenta. Hasta 29 caracteres si están con un formato establecido tomando en cuenta la distribución de niveles de la empresa donde se vaya a contabilizar la póliza.
- Departamento. Hasta 3 caracteres numéricos, si no se captura el departamento se entenderá que la cuenta no es departamental.
- Concepto del movimiento. Hasta 120 caracteres, este campo puede estar vacío.
- Debe. Es de tipo numérico sin formato de moneda.
- Haber. Es de tipo numérico sin formato de moneda.
Al seleccionar la opción "Concentrado" se generarán las partidas referentes al tipo de póliza y en una sola partida se agregará la información de todos los XML seleccionados o arrastrados. Automáticamente, creará la póliza cumpliendo con los requerimientos de la Contabilidad Electrónica, agregando la información del folio fiscal en la partida de la póliza de la que cuenta que se haya configurado previamente.
Integración de Pólizas desde Otros Sistemas o Excel
Realizar el proceso de integración de pólizas te permite concentrar y registrar en tu contabilidad la información generada desde otros sistemas o módulos relacionados. Esta opción es útil cuando necesitas mantener actualizados tus registros contables y asegurar que las operaciones de tu empresa se reflejen de forma correcta y organizada en la información financiera.
Para realizar la integración de pólizas, dirígete a la ruta: Procesos y selecciona Integración de pólizas. Al ingresar, el sistema mostrará una ventana donde debes completar los siguientes campos:
Campos para la Integración de Pólizas
- Póliza a integrar:
- Conexión: Selecciona la ruta del directorio donde se encuentran registradas las pólizas que deseas integrar.
- Empresa, mes, ejercicio: Selecciona la empresa, mes y ejercicio de donde se tomarán las pólizas.
- Importar desde una hoja de Excel: Selecciona esta opción si deseas integrar las pólizas mediante la importación de una hoja de Excel. Es importante considerar que, para una correcta importación de los datos, las plantillas como «Cat:cuentas», «Pólizas info-CFDI» y «Póliza Info-Bancaria» se encuentran actualizadas. Si cuentas con una plantilla personalizada, se sugiere revisar su estructura.
- Tipo de pólizas: Selecciona el tipo de póliza que deseas integrar. Puedes elegir la opción Todas las pólizas o una en específico. COI permite definir hasta 12 tipos de pólizas diferentes.
- Número de pólizas: Indica un rango considerando el número de póliza o, si lo prefieres, permite que se integren todas las pólizas.
- Fecha de la póliza. Inicial / Final: Selecciona la fecha correspondiente a las pólizas que deseas integrar.
- Atributos: Aquí puedes filtrar con mayor detalle las pólizas, ya sean contabilizadas, auditadas y/o pendientes. Por ejemplo, si seleccionas integrar únicamente las pólizas auditadas, el sistema considerará las pólizas auditadas, no contabilizadas y no pendientes. La integración de las pólizas se realizará únicamente si cumplen con cada uno de los atributos seleccionados; en caso contrario, el proceso no podrá llevarse a cabo.
- Crear tipo de póliza: Si activas esta opción, al concluir el proceso el sistema verificará en los parámetros si el tipo de póliza existe y, si no existe, lo creará automáticamente. Solo en caso de no contar con espacio disponible no se creará y las pólizas no se integrarán.
- Crear bitácora de proceso: Si activas esta opción, el sistema mostrará automáticamente un resumen o una lista de posibles errores por los cuales alguna póliza no pudo integrarse. Si deseas consultar el archivo BITACORA.TXT, lo encontrarás en el directorio donde se encuentra tu base de datos.
Entendiendo los Layouts en Aspel
Los layouts son plantillas o formatos preestablecidos que se utilizan para organizar la información que se va a importar/exportar en los sistemas Aspel. En SAE, los layouts se utilizan para importar y exportar información relacionada con la administración de la empresa, como clientes, proveedores, inventarios, etc. Por ejemplo, se puede utilizar un layout para exportar un archivo XML que contenga la información de los clientes de la empresa.
En NOI, los layouts se emplean para importar y exportar información relacionada con la nómina, como datos de empleados, percepciones, deducciones, etc. Por ejemplo, se puede utilizar un layout para importar un archivo CSV que contenga los datos de los empleados y sus percepciones y deducciones correspondientes.
En COI, los layouts se utilizan para importar y exportar información contable, como catálogos de cuentas, pólizas, balances, etc. Por ejemplo, se puede utilizar un layout específico para importar un archivo de Excel que contenga el catálogo de cuentas de una empresa. Los layouts predeterminados de Aspel se almacenan en una ubicación específica en tu sistema de archivos.
Desarrollo y Personalización de Pólizas Modelo en Excel: Experiencias de la Comunidad
La comunidad de usuarios de Aspel-COI ha explorado activamente la creación de generadores de pólizas modelo en Excel para facilitar la importación de información contable, especialmente para quienes utilizan otros sistemas contables o requieren procesar un gran volumen de movimientos. Muchos han intentado desarrollar archivos con macros y Visual Basic para ingresar datos en COI, aunque a menudo se encuentran con desafíos.
Algunos usuarios han reportado que los archivos demo solo registran un número limitado de movimientos contables por póliza, por ejemplo, solo 4, o que no permiten más de 2 niveles de cuenta, necesitando 3 o más. También se ha encontrado que las hojas de cálculo predeterminadas de Aspel no siempre contemplan los departamentos, un detalle importante para muchas empresas. Un usuario sugirió que para solucionar el problema de no generar más de dos niveles de cuenta, la contraseña original del proyecto VBA del demo generador de pólizas es A5Y.
Para aquellos que buscan aumentar el límite de movimientos en un generador de pólizas modelo de Excel, es posible modificar el módulo VBA buscando ' Contador de partidas Range("D9".Select i = ActiveCell.Value If i > 5 Then y cambiando el valor de 5 a un número mayor, como 9999999.
Cuando la planilla se importa pero no se reflejan movimientos en la balanza, se sugiere revisar que la póliza esté contabilizada, que la fecha corresponda al periodo consultado y que las cuentas contables estén correctas. Otro consejo recurrente para problemas de integración es validar que no existan celdas vacías o con datos erróneos en las columnas correspondientes a las fechas, e indicar un 0 (cero) en el campo de departamento si no se manejan activamente.
La opción de integrar pólizas no sobrescribe las pólizas existentes, lo cual puede duplicar pólizas y movimientos. Asimismo, se han presentado errores como «Es necesario indicar una fecha válida para el UUID» y «Es necesario indicar una fecha válida para el movimiento», incluso con fechas en formato dd/mm/aaaa, lo que subraya la importancia de revisar la estructura y consistencia de los datos en las plantillas personalizadas. En este catálogo aparecen las plantillas en formato Excel para la generación de las pólizas dinámicas con las cuales se podrá generar la póliza a partir de un CFDI. Se debe revisar que estén asignadas las cuentas contables de IVA y banco que corresponda (cuentas que no van a cambiar).
