← Índice de manuales
Manual funcional · Sistema Plenario v14

Log de Auditorías - Plenario v14

El Log de Auditorías es el visor de la tabla Plenario_Operaciones_Log: registra las operaciones auditadas del sistema (asientos, clientes, créditos, parámetros, cierres, transferencias, tickets, etc.), con el objeto…

Módulo: HerramientasVersión: 1.2Actualizado: 2026-09-25

Detalle

Campo Valor
Manual de Usuario Log de Auditorías - Plenario v14
Módulo Herramientas
Ventanas Log de Auditorías (+ Detalle)
Versión 1.2

Introducción

El Log de Auditorías es el visor de la tabla Plenario_Operaciones_Log: registra las operaciones auditadas del sistema (asientos, clientes, créditos, parámetros, cierres, transferencias, tickets, etc.), con el objeto involucrado serializado en JSON para poder revisar el estado guardado.

La ventana permite filtrar por rango de fecha y por tipo de log, ver el resultado en grilla y, con doble clic sobre una fila, abrir el detalle con el objeto serializado (y, en el caso de cierres automáticos, el desglose del proceso). El detalle se puede imprimir, exportar a PDF y exportar a Excel.

Es una herramienta de trazabilidad/diagnóstico: muestra qué operación se hizo, de qué tipo, su estado, origen/destino, quién y cuándo, más el JSON del objeto auditado.

Novedad de la versión 1.1: auditoría de las fichas maestras

Desde esta versión se auditan también el alta, la modificación y la baja de las fichas de Clientes, Proveedores y Proveedores Financieros, que antes no dejaban registro. La diferencia con el resto de los tipos es que la modificación se registra campo por campo: el detalle no muestra la ficha completa, sino únicamente los campos que efectivamente cambiaron, con su valor anterior y el nuevo.

Esto permite responder con precisión "quién le cambió el límite de crédito a este cliente y qué valor tenía antes", sin tener que comparar dos volcados de la ficha entera.

Novedad de la versión 1.2: auditoría de las alícuotas de percepción de clientes

Se incorpora el tipo de log Clientes_Percepciones, que registra cada alta, modificación y baja de una alícuota de percepción asignada a un cliente, con el valor anterior, el nuevo y de dónde salió el dato (padrón importado, padrón online, alícuota default, carga manual, importación de solicitudes o actualización masiva). Permite responder "¿qué alícuota de IIBB tenía este cliente, quién se la cambió y con qué fuente?".

Acceso al módulo

Ventana Ruta
Log de Auditorías Herramientas → Log de Auditorías

El acceso suele requerir permisos que deben solicitarse al administrador del sistema.

Pantalla principal

Al abrir, el rango de fecha se inicializa al día actual (desde = hasta = hoy) y el tipo de log en "Todos". Se carga la grilla con las operaciones del rango/tipo, ordenadas de la más reciente a la más antigua.

Botón Descripción
Buscar Ejecuta la consulta con el rango de fecha y el tipo seleccionados.
Limpiar parámetros Restablece los parámetros de búsqueda.
(Doble clic en fila) Abre el Detalle de la operación (FormPlenarioAuditoriasLog_Detalle).

Filtros de búsqueda

Filtro Descripción
Fecha (rango) Rango por fecha de alta del log (Fecha_Add), desde/hasta. Por defecto, hoy.
Tipo Log Combo con los tipos de operación auditada; "Todos" trae todos los tipos.
Limpiar parámetros Vuelve los parámetros a sus valores por defecto.

El tipo de log se elige de una lista que corresponde al enum Tipo_Log (Asientos, Parámetros, Clientes, Crédito, Cierre, Factoring, Transferencias, Tickets, etc.). "Todos" (valor 0) no filtra por tipo.

Para auditar las fichas maestras, los tipos a elegir son:

Ficha Tipo Log
Clientes Clientes
Proveedores Proveedores
Proveedores Financieros Inversores

El tipo Clientes_LimitesDeCredito es distinto: registra el alta de los límites de crédito del cliente, no los cambios de la ficha.

Para auditar las alícuotas de percepción de los clientes, elegí el tipo Clientes_Percepciones (ver la sección siguiente).

Tipo Clientes_Percepciones: alícuotas de percepción de clientes

Cada registro corresponde a una alícuota de percepción de un cliente (un impuesto y una provincia) que se dio de alta, se modificó o se dio de baja. El Tipo_Log_Id es el Id del cliente, así que filtrando por esa columna se ve toda la historia de percepciones de un cliente.

Columna Contenido en este tipo
Origen Siempre "Alícuotas de percepción del cliente".
Destino La acción: "Alta", "Modificación" o "Baja".
Estado "Modificado" si la grabación se hizo; "Sin modificar" si falló (en ese caso la descripción termina con "Error: …").
Descripcion Impuesto, provincia y alícuota, más el origen del dato (ver ejemplos abajo).

Ejemplos de Descripcion:

  • Cambio de alícuota: IIBB - Buenos Aires: 1,50 % -> 3,00 % | Origen: …
  • Alta: IIBB - Buenos Aires: 1,00 % (activa) | Origen: … o (inactiva).
  • Baja: IIBB - Buenos Aires: 1,00 % dada de baja | Origen: …
  • Sólo cambia el estado: IIBB - Buenos Aires: 1,00 % | se desactiva | Origen: … o | se activa.
  • Grabación fallida: se agrega al final | Error: ….

Una grabación sin cambios reales (misma alícuota y mismo estado activo/inactivo) no se registra.

Origen del dato (texto que aparece después de "Origen:" en la descripción y en el detalle):

Origen Dónde se genera
Padrón importado <provincia> <vigencia desde-hasta> Ficha del cliente, al marcar Sujeto a Percepción de IIBB (padrón importado vigente a la fecha de trabajo).
Padrón Online AGIP / Padrón Online ARBA Ficha del cliente, con la vigencia que informa InfoAPI.
Alícuota default Ficha del cliente, cuando el CUIT no figura en ningún padrón.
Carga manual Pantalla de asignación de percepciones del cliente (Clientes › Ver › Percepciones Asignadas): alta, cambio de alícuota, activar/desactivar y eliminar.
Importación de solicitudes de préstamo - Padrón importado vigente dd/mm/aaaa-dd/mm/aaaa, … - Alícuota default o … - percepción no informada o sin alícuota: se desactiva Importación de solicitudes de préstamo desde archivo.
Actualización masiva online - Padrón Online AGIP/ARBA … o … - Alícuota default (no figura en el padrón online …) Actualización de Alícuotas de IIBB, origen Online, proceso de percepciones de clientes.
Actualización masiva por padrón - Padrón importado <provincia> <vigencia> o … - Alícuota default (no figura en el padrón) … Actualización de Alícuotas de IIBB, origen Padrones. En este proceso sólo se registran los clientes a los que se les dio de alta la alícuota o cuya alícuota cambió.

Cambio respecto de versiones anteriores: la actualización masiva online de percepciones de clientes ya no se registra bajo el tipo InfoAPI sino bajo Clientes_Percepciones. Las retenciones de proveedores actualizadas desde InfoAPI siguen registrándose bajo InfoAPI.

Resultados

La grilla muestra una fila por operación auditada:

Columna Descripción
Id Identificador del registro de log.
Tipo_Log Tipo de operación (se muestra el nombre del tipo).
Tipo_Log_Id Identificador del objeto auditado (clave del registro de origen).
Descripcion Descripción de la operación.
Origen Origen de la operación. En las fichas maestras indica el módulo: "Clientes", "Proveedores" o "Prov. Financiero".
Destino Destino de la operación. En las fichas maestras indica qué se hizo: "Nuevo", "Modificar", "Eliminar" o "Reactivar".
Estado Estado de la operación: "Modificado" / "Sin modificar".
JSON Objeto serializado (Objeto_Serializado); el detalle completo se ve en la ventana de detalle.
Id_User_Add Usuario que generó el registro.
Fecha_Add Fecha y hora de alta del log.
Fecha_Trabajo Fecha de trabajo (fecha de operación).
User_Environment Entorno del usuario (máquina/dominio).

Acciones disponibles

Es una pantalla de consulta y auditoría: no edita los registros.

Acción Cómo
Buscar / refrescar Botón Buscar con el rango y tipo elegidos.
Filtrar en grilla Fila de auto-filtro y encabezados de columna.
Ver detalle Doble clic sobre la fila → abre FormPlenarioAuditoriasLog_Detalle.

Ventana de Detalle

El detalle muestra el objeto serializado de la operación:

  • Para tipos normales: el JSON se presenta en una grilla vertical (clave/valor) con el título del Origen.
  • Para Cierre de día automático (Tipo_Log = 13): se muestra el desglose del proceso (código de proceso, inicio, fin, resultado, tiempo transcurrido) en una grilla, con las filas expandidas.
  • Para la modificación de una ficha maestra (Clientes, Proveedores, Inversores): se muestra la lista de campos que cambiaron, con tres datos por campo — Propiedad (el nombre del campo, en castellano: "Límite de crédito", "Teléfono", "Condición de IVA"), Anterior (el valor que tenía) y Nuevo (el valor que quedó). Si en el guardado no cambió ningún campo, no se genera registro.

  • Para Clientes_Percepciones: se muestra el registro de la alícuota con los campos Id_Cliente, Id_Clientes_Percepciones, Accion, Tipo_Impuesto, Provincia, Alicuota_Anterior, Alicuota_Nueva, Activa_Anterior, Activa_Nueva y Origen. En un alta, los valores "Anterior" quedan vacíos.

En el alta y en la baja/reactivación de una ficha el detalle es más breve: deja constancia del usuario y del identificador de la ficha, porque los datos completos ya están en la propia ficha. El detalle campo por campo aplica solo a las modificaciones.

Acción del detalle Descripción
Imprimir Vista previa de impresión del resultado.
Exportar PDF Exporta el detalle a archivo .pdf.
Exportar XLS Exporta el detalle a archivo .xls.
Aceptar Cierra la ventana de detalle.

Ejemplo práctico

Un cliente reclama que le cambiaron el límite de crédito y hay que averiguar quién fue y qué valor tenía antes:

  1. Herramientas → Log de Auditorías.
  2. Ajustar el rango de fecha al período en que pudo haber ocurrido (por defecto viene el día de hoy).
  3. En Tipo Log, elegir "Clientes". Buscar.
  4. Ubicar el registro por Tipo_Log_Id (id del cliente); la columna Destino dirá "Modificar". Revisar Id_User_Add (quién) y Fecha_Add (cuándo).
  5. Doble clic sobre la fila: el detalle lista los campos que cambiaron en ese guardado. Buscar la fila "Límite de crédito" y leer Anterior y Nuevo.
  6. (Opcional) Exportar PDF/XLS desde el detalle para adjuntar a un ticket.

Si en el paso 4 el Destino dice "Nuevo", ese registro es el alta de la ficha, no una modificación. Y si dice "Eliminar" o "Reactivar", corresponde a la baja o la reactivación del cliente.

Caso: averiguar de dónde salió la alícuota de IIBB de un cliente.

  1. Herramientas → Log de Auditorías, rango de fecha amplio y Tipo Log = "Clientes_Percepciones". Buscar.
  2. Filtrar la columna Tipo_Log_Id por el Id del cliente.
  3. Leer la Descripcion de cada registro: muestra la alícuota anterior y la nueva (por ejemplo IIBB - Buenos Aires: 1,50 % -> 3,00 %) y el Origen del dato (padrón importado con su vigencia, padrón online, alícuota default, carga manual, importación o actualización masiva).
  4. Id_User_Add y Fecha_Add indican quién y cuándo. Con doble clic se ve el detalle completo (anterior/nuevo, estado activo y origen).

Consejos útiles

  • El rango arranca en hoy: si buscás una operación vieja, ampliá el rango de fecha antes de Buscar.
  • Acotá por Tipo Log para no recorrer todos los tipos cuando ya sabés qué operación buscás.
  • Usá Tipo_Log_Id para encontrar el log de un registro concreto (por ejemplo, el id del crédito o del cliente).
  • El doble clic es la forma de abrir el detalle; desde ahí exportás a PDF/Excel para evidencia.
  • En las fichas maestras, la columna Destino te dice de una si el registro es un alta ("Nuevo"), una modificación ("Modificar"), una baja ("Eliminar") o una reactivación ("Reactivar"). Filtrando por esa columna aislás rápido lo que buscás.
  • Si una ficha se guardó sin cambiar nada, no vas a encontrar un registro: la modificación solo se audita cuando algún campo cambió realmente.
  • Para seguir la historia de percepciones de un cliente, usá el tipo Clientes_Percepciones y filtrá Tipo_Log_Id por el Id del cliente. Si buscás una actualización masiva online de percepciones anterior a este cambio, esos registros viejos están bajo el tipo InfoAPI.

Preguntas frecuentes

No veo una operación que sé que ocurrió, ¿por qué? Por defecto el rango es el día de hoy. Ampliá el rango de fecha y verificá el Tipo Log (poné "Todos" si no estás seguro), luego Buscar.
¿Cómo veo el detalle completo de lo que cambió? Doble clic sobre la fila abre la ventana de detalle con el objeto serializado en JSON (clave/valor). Para cierres automáticos muestra el desglose del proceso.
¿Puedo exportar la auditoría? Sí, desde la ventana de detalle: botones Imprimir, Exportar PDF y Exportar XLS. La grilla principal admite además filtrado/ordenamiento estándar.
¿Qué significa el estado "Modificado" / "Sin modificar"? Es el Estado_Operacion del log: indica si la operación implicó modificación del objeto auditado o no.
Modifiqué un cliente y no aparece ningún registro, ¿se perdió? No. La modificación de una ficha se audita solo si algún campo cambió. Si se abrió la ficha y se guardó sin tocar nada, no se genera registro. Verificá también el rango de fecha y que el Tipo Log sea el correcto ("Clientes", "Proveedores" o "Inversores" según la ficha).
¿Se audita todo lo que se edita desde la ficha del cliente? Se auditan los campos de la ficha propiamente dicha. Las solapas que administran otras entidades relacionadas — adherentes, aportes, límites y solicitudes — se guardan en sus propias tablas y no forman parte de este detalle campo por campo. El alta de los límites de crédito sí queda registrada, pero bajo el tipo Clientes_LimitesDeCredito.
¿Por qué el alta no muestra el detalle de todos los campos cargados? Porque en un alta todos los campos son "nuevos" y el estado completo de la ficha ya se puede consultar en la ficha misma. El registro del alta deja constancia de quién la creó y cuándo. El detalle campo por campo tiene sentido en las modificaciones, donde importa el valor que había antes.
¿Cómo sé de dónde salió la alícuota de percepción que tiene un cliente? Buscá con Tipo Log = "Clientes_Percepciones" y filtrá Tipo_Log_Id por el Id del cliente. La descripción de cada registro termina con "Origen: …", que indica si la alícuota vino de un padrón importado (con su vigencia), del padrón online AGIP/ARBA, de una alícuota default, de una carga manual, de la importación de solicitudes o de una actualización masiva.
Actualicé las alícuotas por padrón y no aparece un registro por cada cliente, ¿por qué? En la actualización masiva por padrón sólo se registran los clientes a los que se les dio de alta la alícuota o cuya alícuota cambió. Si el cliente ya tenía la misma alícuota que informa el padrón, no hay cambio y no se genera registro.
Las actualizaciones online de percepciones de clientes, ¿siguen apareciendo como InfoAPI? No. Ahora se registran bajo Clientes_Percepciones, con el origen "Actualización masiva online - …". Bajo InfoAPI quedan las retenciones de proveedores y los registros anteriores a este cambio.

Permisos

El formulario FormPlenarioAuditoriasLog no ejecuta validaciones IsAllowedObject en su código: la búsqueda y el detalle se ejecutan directamente. El control de acceso se da por la visibilidad de la opción en el menú.

Operación Objeto de permiso
Acceso al módulo (por visibilidad de la opción en el menú)
Buscar / Ver detalle / Exportar (sin validación de permiso dentro del form)

Información técnica

Basada en el análisis del formulario real de la v14.

Formularios principales

Form Rol
FormPlenarioAuditoriasLog.cs (C#, VPNET_WinForms/Common) Hereda de FrmSearch. Visor de Plenario_Operaciones_Log: filtro por rango de fecha + tipo de log, grilla de resultados; doble clic abre el detalle.
FormPlenarioAuditoriasLog_Detalle.cs (C#, Common) Hereda de FrmAddMod. Muestra el objeto serializado (JSON) o, para Tipo_Log=13, el desglose del proceso de cierre. Imprime y exporta a PDF/XLS.

Formularios que generan la auditoría de fichas maestras

Form Qué registra
frmClientes_AddMod.vb (VB, Common) Alta y modificación de la ficha de Cliente (169 campos comparados).
frmClientes.vb (VB, Common) Baja lógica, reactivación y bloqueo/desbloqueo del Cliente.
frmProveedores_AddMod.vb (VB, Common) Alta y modificación de la ficha de Proveedor (24 campos comparados).
frmProveedores.vb (VB, Common) Baja lógica y reactivación del Proveedor.
frmInversores_AddMod.vb (VB, Common) Alta y modificación de la ficha de Proveedor Financiero (31 campos comparados).
frmInversores.vb (VB, Common) Baja lógica y reactivación del Proveedor Financiero.

Las bajas de las tres fichas son lógicas (marcan el registro como eliminado), no borrados físicos; por eso existe la operación inversa "Reactivar".

Cómo se arma el detalle campo por campo

Al abrir la ficha para editar se toma una copia de los valores previos. Después de guardar con éxito, se comparan los campos uno a uno y se serializa en Objeto_Serializado solo la lista de los que cambiaron, con la forma Propiedad / Anterior / Nuevo. Si la lista queda vacía no se graba nada.

La lista de campos a comparar es explícita en cada formulario: al agregar un campo nuevo a una ficha hay que sumarlo también a esa lista, o el campo no se auditará (y no habrá ningún error que lo advierta).

La auditoría corre dentro de un Try/Catch propio que deriva a Functions.LogError: si algo fallara al registrar, no interrumpe ni revierte el guardado de la ficha.

Permisos reales

Permiso Acción
(sin IsAllowedObject en el form) Ni el visor ni el detalle validan un objeto de permiso propio.

Tablas de base de datos principales

Tabla Uso
Plenario_Operaciones_Log Tabla auditada: tipo, origen, destino, estado, usuario/fecha de alta, fecha de trabajo, entorno y objeto serializado (JSON).
Clientes Ficha auditada por el tipo Clientes (3).
Proveedores Ficha auditada por el tipo Proveedores (43).
Inversores Ficha de Proveedor Financiero, auditada por el tipo Inversores (42).
Clientes_Percepciones Alícuotas de percepción asignadas a cada cliente, auditadas por el tipo Clientes_Percepciones (45).

Relación con otros módulos / manuales

Manual relacionado Vínculo operativo
ABM de Usuarios y Permisos - Plenario v14 Amplía el circuito, la configuración o los datos que utiliza esta funcionalidad.
ABM de Clientes - Plenario v14 Ficha cuya alta, modificación y baja se auditan bajo el tipo Clientes.
Cargar, editar y administrar Proveedores - Plenario v14 Ficha cuya alta, modificación y baja se auditan bajo el tipo Proveedores.
Actualización de Alícuotas de IIBB Las actualizaciones masivas de percepciones de clientes (Online y por padrón) se auditan bajo Clientes_Percepciones; las de retenciones de proveedores (Online), bajo InfoAPI.

Notas para soporte

  • El filtro de la consulta es: Tipo_Log (0 = Todos) y rango de Fecha_Add desde/hasta; orden descendente por Fecha_Add.
  • Los tipos provienen del enum Tipo_Log del manager (1=Asientos, 3=Clientes, 4=Crédito, 10=Cierre, 11=Factoring, 13=Cierre_Dia_Automatico, 18=Transferencias, 26=Tickets, 33=LogError, 41=Clientes_LimitesDeCredito, 42=Inversores, 43=Proveedores, 45=Clientes_Percepciones, etc.).
  • El detalle campo por campo de las fichas se serializa con Save_Plenario_Operaciones_Log1Async, pasando la lista de diferencias como modelo; no usa Save_Plenario_Operaciones_Log_ByIdAsync, así que no depende del switch de Get_Object_ById.
  • En estos registros, la acción va en Destino ("Nuevo" / "Modificar" / "Eliminar" / "Reactivar") y el identificador de la ficha en Tipo_Log_Id. El Origen lleva el módulo ("Clientes", "Proveedores", "Prov. Financiero").
  • Auditoría de fichas incorporada en los changesets 23505 (Prov. Financiero), 23506 (Proveedores) y 23556 (Clientes).
  • El tipo 41 (Clientes_LimitesDeCredito) lo genera SaveLimites() en frmClientes_AddMod.vb y es independiente de la auditoría de la ficha: registra el alta del límite de crédito inicial del cliente.
  • Tipo 45 Clientes_Percepciones (CS 23692, Ticket#117048). Lo registra clsClientes_percepciones (ClassVisualPlenarioNET\Common\clsClientes_percepciones.vb) al grabar (Alta/Modificación) y al eliminar (Baja), con Save_Plenario_Operaciones_Log1Async(Tipo_Log.Clientes_Percepciones, modelo, "Alícuotas de percepción del cliente", ok, Id_Cliente, accion, descripcion). El modelo serializado es Auditoria_Clientes_Percepciones (Id_Cliente, Id_Clientes_Percepciones, Accion, Tipo_Impuesto, Provincia, Alicuota_Anterior, Alicuota_Nueva, Activa_Anterior, Activa_Nueva, Origen). El origen lo informa quien graba en la propiedad Origen_Auditoria ("Sin especificar" si no se informa). Si la modificación no cambia Id_Percepciones_Alicuotas ni Is_Percepcion_Activa, no se registra. La auditoría va en un Try/Catch propio y nunca interrumpe la grabación. La actualización masiva por padrón (clsPagoFacil.Actualizacion_Alic_Percepcion_IIBB) no pasa por la clase: captura el antes/después con OUTPUT … INTO @Cambios y hace un INSERT INTO Plenario_Operaciones_Log en el mismo SQL, sólo para altas y cambios de alícuota; si ese insert falla no revierte la actualización. La masiva online de clientes (Actualizacion_Online_Alic_Percepcion_IIBB) dejó de usar Tipo_Log.InfoAPI; las retenciones de proveedores lo siguen usando.
  • El detalle parsea Objeto_Serializado: con GetDetalle (JsonDataSource clave/valor) para casos normales, y con GetDetalleCierre (lista de Proceso) cuando Tipo_Log == 13.
  • El título de diseño del form es "Registro de auditoria"; el caption funcional/menú es "Log de Auditorías". Verificar contra el binario instalado ante diferencias.
¿Te resultó útil este manual?