Esquema de las tablas involucradas
Columnas reales (INFORMATION_SCHEMA.COLUMNS) de .205/TRIVASADB3,
verificadas 2026-09-02 (las 6 primeras) y 2026-09-03 (las 5 de
configuración). No es un catálogo general, ver
dominios para eso.
Inventario: cuáles de las tablas Poliza* tienen datos
24 tablas empiezan con Poliza en TRIVASADB3. Solo 12 tienen filas.
Las otras 12 son de seguros (Poliza_Seguro, Poliza_Cobertura,
Poliza_Endoso…) — otro sentido de la palabra "póliza", módulo nunca usado
en esta instalación. No pierdas tiempo explorándolas.
| Tabla |
Filas |
Qué es |
Poliza_Detalle |
14,448,442 |
líneas de cargo/abono |
Poliza_Control |
6,216,899 |
puente póliza ↔ documento origen |
Poliza_Detalle_Comprobante |
2,880,770 |
anexo SAT: UUID/RFC del CFDI por línea |
Poliza |
337,868 |
cabecera |
Poliza_Detalle_Transferencia |
241,503 |
anexo SAT: transferencias |
Poliza_Detalle_Cheque |
28,105 |
anexo SAT: cheques |
Poliza_Configuracion_Detalle |
5,201 |
renglones de las plantillas |
Poliza_Configuracion_Condicion |
2,024 |
filtros globales de las plantillas |
Poliza_Configuracion_Detalle_Electronico |
1,064 |
comandos del anexo SAT |
Poliza_Detalle_Comprobante_Extranjero |
883 |
anexo SAT: comprobante extranjero |
Poliza_Configuracion |
373 |
cabecera de las plantillas |
Poliza_Configuracion_Tabla |
29 |
catálogo de tablas contabilizables |
Vacías (0 filas): Poliza_Cobertura, Poliza_Endoso,
Poliza_Endoso_Cobertura, Poliza_Seguro, Poliza_Seguro_Historico,
Poliza_Seguro_Historico_Cobertura, Poliza_Seguro_Solicitud,
Poliza_Seguro_Solicitud_Cobertura, Poliza_Servicio,
Poliza_Servicio_Tipo_Servicio, Poliza_Detalle_Comprobante_Nacional_Otro,
Poliza_Detalle_Otro_Metodo_Pago.
Columnas de auditoría (Oper_Alta, Fecha_Alta, Oper_Ult_Modif,
Fecha_Ult_Modif, Oper_Baja, Fecha_Baja, Es_Cve_Estado) se omiten de
cada tabla abajo por brevedad — están presentes en las seis y se explican
una sola vez en
convenciones → columnas de auditoría.
Poliza — cabecera de la póliza contable
| Columna |
Tipo |
Nota |
Pl_Folio |
nvarchar |
PK, referenciado por Poliza_Control y Poliza_Detalle |
Pl_Ejercicio |
nvarchar |
año |
Pl_Periodo |
nvarchar |
mes, '01'-'12' |
Pl_Tipo |
int |
tipo de póliza contable, copiado de Poliza_Configuracion.Pc_Tipo: 1 = Ingresos (27,906), 2 = Egresos (176,776), 3 = Diario (133,186) |
Pl_Numero |
nvarchar |
folio visible al usuario, distinto de Pl_Folio |
Pl_Fecha |
datetime |
fecha contable — la que se usa para filtrar por periodo |
Pl_Tabla |
nvarchar |
siempre vacío en la práctica — ver calidad de datos |
Pl_Documento |
nvarchar |
siempre vacío en la práctica, mismo gotcha |
Pl_Referencia |
nvarchar |
|
Pl_Comentario |
nvarchar |
texto libre — clave para distinguir sub-casos (ej. CONSUMO INT vs CUENTAS DE ORDEN, INDIRECTOS EN COMPRAS NACIONAL vs CUENTAS ORDEN INDIRECTOS EN COMPRAS) |
Pl_Configuracion |
nvarchar |
clave de Poliza_Configuracion que generó la póliza — poblado en 334,374 de 337,868 (98.97%). A diferencia de Pl_Tabla/Pl_Documento, este sí sirve: da la regla exacta, no solo el módulo. Los vacíos son pólizas manuales de Contabilidad, ver calidad de datos y configuracion-polizas |
Em_Cve_Empresa |
nvarchar |
|
Poliza_Control — puente póliza ↔ documento de origen
| Columna |
Tipo |
Nota |
Pl_Folio |
nvarchar |
FK a Poliza.Pl_Folio |
Pc_Tabla |
nvarchar |
tipo de documento de origen (Cheque, GASTO_REGISTRO, RECIBO_PAGO, COMPRA_INDIRECTO, MOVIMIENTO, VENTA, PAGO_CXC, COMPRA, DEPOSITO_PAGO, NOTA_CREDITO, CUENTA_X_PAGAR, PAGO_CXP, CUENTA_X_COBRAR, NOTA_CREDITO_PROVEEDOR, ANTICIPO_CXC — censo completo en index.md) |
Pc_Documento |
nvarchar |
folio del documento de origen dentro de esa tabla |
Sin PK propia visible más allá de (Pl_Folio, Pc_Tabla, Pc_Documento) —
relación N:N real con Poliza en ambos sentidos (ver
index.md).
Poliza_Detalle — líneas de Cargo/Abono
| Columna |
Tipo |
Nota |
Pl_Folio |
nvarchar |
FK a Poliza.Pl_Folio |
Pd_ID |
nvarchar |
consecutivo de línea dentro de la póliza |
Cc_Cve_Cuenta_Contable |
nvarchar |
cuenta contable de la línea |
Pd_Concepto |
nvarchar |
|
Pd_Referencia |
nvarchar |
intenta ligar de vuelta al documento de origen — confiabilidad variable por Pc_Tabla: funciona directo para RECIBO_PAGO (= Rp_Folio) y COMPRA_INDIRECTO (= Ci_Folio), pero para Cheque en 72% de los casos trae Ch_Referencia en vez de Ch_Folio (ver calidad de datos) |
Pd_Tipo |
int |
1 = Cargo, 2 = Abono |
Pd_Importe |
money |
|
Pd_Centro_Costo |
nvarchar |
solo poblado cuando la póliza reparte por centro de costo (ver layout-gastos) |
Cheque
| Columna |
Tipo |
Nota |
Ch_Folio |
nvarchar |
PK, es el Pc_Documento cuando Pc_Tabla='Cheque' |
Ch_Fecha |
datetime |
|
Tc_Cve_Tipo_Cheque |
nvarchar |
|
Ch_Transferencia |
char |
|
Sc_Cve_Sucursal |
nvarchar |
|
Bc_Cve_Banco_Cuenta |
nvarchar |
|
Ch_Solicitar_Valor |
nvarchar |
|
Ch_Beneficiario |
nvarchar |
|
Ch_Importe |
money |
importe a conciliar contra la línea de Abono de la póliza |
Ch_Tipo_Cambio |
money |
|
Ch_Concepto |
nvarchar |
|
Ch_Tabla |
nvarchar |
siempre vacío — sin sub-orígenes propios |
Ch_Documento |
nvarchar |
siempre vacío, mismo motivo |
Ch_Referencia |
nvarchar |
referencia externa de pago (ej. folio de factura del beneficiario) — es lo que aparece en Pd_Referencia el 72% de las veces, no Ch_Folio |
Ch_Fecha_Firme |
datetime |
|
Ch_Banco_Destino |
nvarchar |
|
Ch_Cuenta_Destino |
nvarchar |
|
Ch_Aplicar |
char |
|
Ch_Firme |
char |
|
Recibo_Pago
| Columna |
Tipo |
Nota |
Rp_Folio |
nvarchar |
PK, es el Pc_Documento cuando Pc_Tabla='RECIBO_PAGO' |
Rp_Id |
nvarchar |
|
Rp_Fecha |
datetime |
|
Trp_Cve_Tipo_Recibo_Pago |
nvarchar |
|
Sc_Cve_Sucursal |
nvarchar |
|
Rp_Solicitar_Valor |
nvarchar |
|
Rp_Tabla |
nvarchar |
siempre vacío — sin sub-orígenes propios |
Rp_Documento |
nvarchar |
siempre vacío, mismo motivo |
Rp_Referencia |
nvarchar |
|
Rp_Comentario |
nvarchar |
|
Rp_Importe |
money |
importe a conciliar contra el Cargo de la póliza |
Fp_Cve_Forma_Pago |
nvarchar |
|
Mn_Cve_Moneda |
nvarchar |
|
Rp_Tipo_Cambio |
money |
|
Rp_Banco |
nvarchar |
|
Rp_Cheque |
nvarchar |
|
Rp_Fecha_Deposito |
datetime |
|
Rp_Folio_Deposito |
nvarchar |
liga hacia Deposito_Pago — sin explorar en este proyecto |
Rp_Deposito_ID |
nvarchar |
|
Rp_Cuenta_Bancaria |
nvarchar |
|
Rp_Vendedor |
nvarchar |
|
Rp_Comisionista |
nvarchar |
|
Rp_Promotor |
nvarchar |
|
Rp_Chofer |
nvarchar |
|
Rp_Cobratario |
nvarchar |
|
Rp_Cve_Banco |
nvarchar |
|
Compra_Indirecto
Tabla a nivel línea (Ci_ID es el consecutivo dentro del folio, no hay
un Compra_Indirecto_Encabezado separado) — a diferencia de Cheque y
Recibo_Pago, que son cabecera.
| Columna |
Tipo |
Nota |
Ci_Folio |
nvarchar |
es el Pc_Documento cuando Pc_Tabla='COMPRA_INDIRECTO' |
Ci_ID |
nvarchar |
consecutivo de línea dentro del folio |
Co_Folio |
nvarchar |
liga a Compra — vacío en la muestra revisada |
Ci_Fecha |
datetime |
|
Ci_Tabla |
nvarchar |
siempre vacío — sin sub-orígenes propios (pero ver el gotcha de doble póliza, no depende de esta columna) |
Ci_Credito |
char |
|
Ci_Documento |
nvarchar |
|
Ci_Referencia |
nvarchar |
|
Ci_Comentario |
nvarchar |
|
Sc_Cve_Sucursal |
nvarchar |
|
Al_Cve_Almacen |
nvarchar |
|
Ci_Descuento_Global_Cuenta_Contable |
nvarchar |
|
Ci_Descuento_Global_Factor |
decimal |
|
Ci_Descuento_Global_Importe |
money |
|
Pr_Cve_Producto |
nvarchar |
|
Tl_Cve_Talla |
nvarchar |
|
Cl_Cve_Color |
nvarchar |
|
Cm_Cve_Comprador |
nvarchar |
|
Pv_Cve_Proveedor |
nvarchar |
|
Ci_Cantidad_1 |
decimal |
|
Ci_Unidad_1 |
nvarchar |
|
Ci_Cantidad_Control_1 |
decimal |
|
Ci_Unidad_Control_1 |
nvarchar |
|
Ci_Cantidad_Control_2 |
decimal |
|
Ci_Unidad_Control_2 |
nvarchar |
|
Ci_Cantidad_Costo |
decimal |
|
Ci_Unidad_Costo |
nvarchar |
|
Ci_Costo |
decimal |
|
Ci_Costo_Importe |
money |
siempre 0 en la muestra revisada — no usar, ver Ci_Precio_Descontado_Importe |
Pc_Folio |
nvarchar |
|
Ci_Precio_Lista |
money |
|
Ci_Precio_Lista_Importe |
money |
|
Ci_Descuento_Factor |
decimal |
|
Ci_Descuento_Importe |
money |
|
Ci_Precio_Descontado |
money |
|
Ci_Precio_Descontado_Importe |
money |
el importe real que cuadra contra la póliza — sumado por Ci_Folio en la póliza "real", a nivel línea en la póliza "cuentas de orden" |
Ci_Impuesto_Factor |
decimal |
|
Ci_Impuesto_Importe |
money |
|
Ci_Precio_Neto |
money |
|
Ci_Precio_Neto_Importe |
money |
precio con impuesto — no es el que cuadra contra la póliza, usar Ci_Precio_Descontado_Importe |
Mn_Cve_Moneda |
nvarchar |
|
Ci_Tipo_Cambio |
money |
|
Ci_Comprobada |
char |
|
Tablas de configuración
Las 5 tablas detrás de la pantalla CT001. Narrativa completa de cómo
encajan y qué contiene cada columna de fórmula en
configuracion-polizas.md — aquí solo las
columnas. Todas las columnas de fórmula son ntext con expresiones SQL
en texto plano, no valores: se inyectan literalmente en el query que
genera el botón "Generar script".
Poliza_Configuracion — cabecera de la plantilla
| Columna |
Tipo |
Nota |
Pc_Cve_Poliza_Configuracion |
nvarchar |
PK, clave de 4 dígitos (0428, 0527) |
Pc_Descripcion |
nvarchar |
la vigencia vive aquí como texto libre (... MAYO 2026 EN ADEL), no hay campo de fechas |
Pc_Tabla |
nvarchar |
tabla origen del ERP, FK a Poliza_Configuracion_Tabla |
Pc_Tipo |
int |
1/2/3 → se copia a Poliza.Pl_Tipo |
Pc_Referencia |
ntext |
expresión SQL → Poliza.Pl_Referencia |
Pc_Comentario |
ntext |
expresión SQL → Poliza.Pl_Comentario; aquí vive el placeholder <FECHA> (324 configs) |
Pc_Aplicacion_Automatica |
char |
SI/NO — si SI, el proceso la corre sin intervención |
Pc_Permitir_Importe_Cero |
char |
SI/NO — si NO, los renglones en cero se descartan |
Pc_Relacion |
ntext |
el bloque FROM ... INNER JOIN ... completo, escrito a mano; es el panel "Relaciones" de la pantalla |
Es_Cve_Estado: AC (347) / BA (26). No hay CA en esta tabla.
Poliza_Configuracion_Condicion — filtros globales (el WHERE)
| Columna |
Tipo |
Nota |
Pc_Cve_Poliza_Configuracion |
nvarchar |
FK |
Pcc_ID |
nvarchar |
orden |
Pcc_Valor |
ntext |
SQL crudo; se concatenan todos con AND. Aquí vive el placeholder <EMPRESA> (362 configs) y la condición de vigencia Xx_Fecha >= 'YYYY-MM-01' |
Poliza_Configuracion_Detalle — los renglones contables
| Columna |
Tipo |
Nota |
Pc_Cve_Poliza_Configuracion |
nvarchar |
FK |
Pcd_ID |
nvarchar |
orden (0010, 0020, …) |
Pcd_Descripcion |
nvarchar |
etiqueta legible (CARGO A GASTOS MINA) |
Pcd_Condicion |
ntext |
SQL: cuándo aplica este renglón. Aquí viven las listas IN de CeCo cableadas |
Pcd_Cuenta_Contable |
ntext |
SQL: de dónde sale la cuenta (ej. opc_Tipo_Gasto.Cuenta_Contable6) |
Pcd_Centro_Costo |
ntext |
SQL → Poliza_Detalle.Pd_Centro_Costo |
Pcd_Concepto |
ntext |
SQL → Pd_Concepto |
Pcd_Referencia |
ntext |
SQL → Pd_Referencia |
Pcd_Cargo |
ntext |
SQL del importe si es cargo |
Pcd_Abono |
ntext |
SQL del importe si es abono |
Pcd_Relacion |
ntext |
JOINs adicionales propios de este renglón, que no están en la cabecera |
Pcd_Agrupa |
nvarchar |
vacío en las 5,201 filas |
Pcd_Tipo_Detalle |
nvarchar |
vacío en las 5,201 filas |
Pcd_Comando_Detalle |
ntext |
vacío en las 5,201 filas |
No hay bandera de cargo/abono: el renglón es de cargo o de abono según
cuál de Pcd_Cargo/Pcd_Abono esté lleno. Eso se vuelve
Poliza_Detalle.Pd_Tipo (1 = cargo, 2 = abono).
Poliza_Configuracion_Detalle_Electronico — anexo SAT por renglón
| Columna |
Tipo |
Nota |
Pc_Cve_Poliza_Configuracion |
nvarchar |
FK |
Pcd_ID |
nvarchar |
FK al renglón |
Pcde_Id |
nvarchar |
orden |
Pcde_Tipo |
nvarchar |
'COMPROBANTE' (825), 'COMPROBANTE EXTRANJERO' (119), 'TRANSFERENCIA' (67), 'CHEQUE' (53) — con comillas incluidas en el valor |
Pcde_Comando |
ntext |
SQL construido por concatenación de strings (+ CHAR(39) + para las comillas), porque se ejecuta dinámicamente |
Poliza_Configuracion_Tabla — catálogo de tablas contabilizables
| Columna |
Tipo |
Nota |
Pc_Tabla |
nvarchar |
PK |
Pc_Modulo |
nvarchar |
BANCOS, CAJA, COMPRAS, CXC, CXP, GASTOS, INVENTARIOS, VENTAS |
Pc_Campo_Dia |
nvarchar |
campo de fecha con el que el generador filtra el día |
Pc_Campo_Movimiento |
nvarchar |
campo de folio → Poliza_Control.Pc_Documento |
Pc_Contabiliza_Linea |
char |
NO en las 29 filas |
Pc_Modo_Contabiliza |
char |
0/1/2, semántica no determinada |
Las 29 filas con sus valores, y sus tres irregularidades, en
configuracion-polizas.md.