Cómo usar el plugin BuscadorAcumulado en tus vistas y listados.
Añade un modo de búsqueda acumulativa a cualquier listado de FacturaScripts. Cuando está activo, cada búsqueda se suma a la anterior en lugar de reemplazarla, permitiendo acotar resultados de forma progresiva sin perder el contexto, y además sincronizable entre vistas y con operadores lógicos.
Muy útil para hacer busquedas en las vistas principales y también en sus listados asociados. Por ejemplo Facturas y sus líneas de Productos: Esto nos permite buscar por ejemplo con varios clientes que nos han comprado un rodamiento, entre fecha tal, estado tal, y que no sea el 6005 por ejemplo. Hacemos las busqueda en cada vista que sea necesario, Clientes en la vista principal y el resto de la busqueda en líneas, cada vez que pulsamos enter el sistema va acotando y reduciendo la busqueda de forma acumulada hasta llegar al resultado final. Pudiendo además buscar por campo Todos ó por uno específico: por ejemplo el campo Comentario Privado o Descripción
Funciona en todos los listados del sistema (facturas, albaranes, pedidos, clientes, proveedores, artículos, etc.) sin necesidad de configuración.

Búsqueda acumulativa:
- Pulsa el botón de capas (🗂) junto al buscador para activar el modo. El botón se pone en amarillo cuando está activo.
- Escribe tu primera búsqueda y pulsa Enter.
- Escribe una segunda búsqueda. Los resultados mostrarán solo los registros que contengan ambos términos.
- Debajo del buscador aparece un badge con todos los términos acumulados y sus operadores.
- Pulsa el botón de limpiar (🗂✕) para borrar la acumulación y volver al listado completo.

Operadores lógicos:
- AND (por defecto) — el resultado debe contener ambos términos. Reduce el conjunto.
- OR — el resultado puede contener cualquiera de los términos. Amplía el conjunto buscando sobre el total de registros.
- NOT — el resultado no debe contener este término. Excluye registros.
Selecciona el operador desde el desplegable junto al buscador antes de escribir el siguiente término.

Agrupación con paréntesis:
- Usa los botones
(y)para agrupar términos explícitamente. - Sin paréntesis, la lógica es automática: AND y NOT se acumulan en el grupo actual, OR abre un nuevo grupo.
- Permite construir expresiones complejas:
("fábrica" AND "norte") OR ("taller" AND "6005").

NOT global:
- Un NOT colocado después de cerrar un grupo
)excluye el término de todos los grupos simultáneamente. ("azul") OR ("verde") NOT "rojo"excluye rojo de ambos grupos a la vez.
Sincronización de vistas relacionadas:
- En listados con pestañas relacionadas, las vistas se sincronizan automáticamente al buscar en la vista principal.
- Filtras la vista principal → las vistas relacionadas muestran automáticamente solo los registros de los resultados filtrados.
- Las vistas relacionadas muestran un badge con el contador de registros ("Recibos: 12 de 180", "Variantes: 5 de 43"...).


Tipos de vista relacionada:
| Vista | Comportamiento | Ejemplos |
|---|---|---|
| Líneas de documento | Buscador acumulado completo + sincronización bidireccional | Líneas de pedido, factura, albarán |
| Detalle con FK* | Solo botón limpiar 🗂✕ — reciben el filtro del padre automáticamente | Recibos, Variantes, Stock, Direcciones, Cuentas bancarias |
| Detalle sin FK* | Solo botón limpiar 🗂✕ — vista independiente en el mismo controlador | Grupos de clientes |
*FK (Foreign Key): clave foránea en base de datos. Es el campo que relaciona una tabla hija con su tabla padre. Por ejemplo idfactura en recibos apunta a la factura padre, idproducto en variantes apunta al producto padre.
Selector de campo:
- Con el modo activo, aparece una fila de casillas con los campos buscables del listado.
- Por defecto está marcado Todos — busca en todos los campos como siempre.
- Marca una casilla para limitar la siguiente búsqueda a ese campo. La casilla activa aparece en negrita.
- El campo seleccionado persiste hasta que lo cambies, permitiendo acumular términos en el mismo campo o combinar campos distintos:
[Cliente] "norte" AND [Observaciones] "urgente". - Sin modo activo las casillas no aparecen — no afectan al funcionamiento normal del buscador.
Compatible con el plugin Comentarioprivado:
- Si tienes instalado el plugin Comentarioprivado, el campo "Comentario privado" aparece como columna buscable en los listados de albaranes, facturas, pedidos y presupuestos de venta.
- BuscadorAcumulado lo detecta automáticamente e incluye ese campo en todas las búsquedas acumuladas — sin ninguna configuración adicional.
- Permite buscar y cruzar anotaciones internas con cualquier otro campo del documento usando AND, OR y NOT.
Coordinación con los botones del core:
- "Todos" y cargar un filtro guardado limpian también la acumulación.
- "Limpiar filtros" y la papelera solo limpian los filtros del panel — el stack acumulado se mantiene.## DOCUMENTACIÓN
Activar y desactivar el modo acumulativo
Cada listado tiene su propio botón de capas (🗂) junto al campo de búsqueda. El estado se guarda en el navegador por listado — puedes tener el modo activo en pedidos y desactivado en clientes al mismo tiempo.
- Botón gris → modo acumulativo OFF. Las búsquedas funcionan con normalidad.
- Botón amarillo → modo acumulativo ON. Cada búsqueda se añade al contexto anterior.
Al activar el modo, el campo de búsqueda se selecciona automáticamente para escribir el siguiente término sin borrar el anterior.
Operadores AND / OR / NOT
Con el modo activo aparece un desplegable junto al buscador con tres operadores. El operador seleccionado se aplica al próximo término que escribas y se resetea a AND automáticamente tras cada búsqueda.
| Operador | Color | Efecto |
|---|---|---|
| AND | Gris | El resultado debe contener ambos términos. Reduce. |
| OR | Azul | El resultado puede contener cualquiera. Amplía sobre el total. |
| NOT | Rojo | El resultado no debe contener este término. Excluye. |
Ejemplos:
AND simple — pedidos de rodamientos de fábrica:
Acumulado: "fábrica" AND "rodamiento"
"fábrica" Enter "rodamiento" Enter
→ pedidos que contienen ambos términos
AND con tres términos — rodamientos de fábrica norte pendientes:
Acumulado: "fábrica" AND "norte" AND "rodamiento"
"fábrica" Enter "norte" Enter "rodamiento" Enter
→ pedidos que contienen los tres términos a la vez
NOT desde el principio — todo excepto lo cancelado:
Acumulado: NOT "cancelado"
[NOT] "cancelado" Enter
→ todos los registros que NO contienen cancelado
NOT — rodamientos excluyendo los de referencia norte:
Acumulado: "rodamiento" NOT "norte"
"rodamiento" Enter [NOT] "norte" Enter
→ pedidos con rodamiento que NO son del norte
OR — dos referencias distintas:
Acumulado: ("6005") OR ("6205")
"6005" Enter [OR] "6205" Enter
→ todos los pedidos con 6005 MÁS todos los de 6205 sobre el total
OR con tres grupos — varias referencias:
Acumulado: ("6005") OR ("6205") OR ("6305")
"6005" Enter [OR] "6205" Enter [OR] "6305" Enter
→ todos los pedidos de cualquiera de las tres referencias
AND + OR — dos proveedores con distintas referencias:
Acumulado: ("fábrica" AND "norte") OR ("taller" AND "6005")
"fábrica" Enter "norte" Enter [OR] "taller" Enter "6005" Enter
→ (pedidos de fábrica norte) MÁS (pedidos de taller con referencia 6005)
OR con NOT local en un grupo:
Acumulado: ("fábrica") OR ("taller" NOT "cancelado")
"fábrica" Enter [OR] "taller" Enter [NOT] "cancelado" Enter
→ todos los de fábrica + los de taller que no están cancelados
→ los pedidos de fábrica cancelados sí aparecen (NOT solo afecta al grupo taller)
OR dentro de paréntesis — se muestra tal como se escribió:
Acumulado: ("6005" OR "6205") NOT "cancelado"
[(] "6005" Enter [OR] "6205" Enter [)] [NOT] "cancelado" Enter
→ (todos los de 6005 + todos los de 6205) sin los cancelados
Agrupación con paréntesis
Con el modo activo aparecen también los botones ( y ).
- Botón
(— se activa (amarillo) y marca que el próximo término abrirá un grupo. Se deshabilita si ya hay un grupo abierto sin cerrar (los paréntesis no son anidables). - Botón
)— cierra el paréntesis después del último término añadido.
Sin paréntesis — lógica automática: AND y NOT se acumulan en el grupo actual. OR abre automáticamente un nuevo grupo. El badge muestra los paréntesis implícitos para que la agrupación sea visible.
Con paréntesis explícitos:
Acumulado: ("fábrica" AND "norte") OR ("taller" AND "6005")
[(] "fábrica" Enter "norte" Enter [)] [OR] [(] "taller" Enter "6005" Enter [)]
→ (pedidos de fábrica norte) MÁS (pedidos de taller con referencia 6005)
OR dentro de paréntesis — forma natural:
Acumulado: ("6005" OR "6205") NOT "cancelado"
[(] "6005" Enter [OR] "6205" Enter [)] [NOT] "cancelado" Enter
→ (todos los de 6005 + todos los de 6205) sin cancelado
El resultado es equivalente a escribir dos grupos separados — internamente el sistema los trata igual:
✓ Forma A — paréntesis separados:
Acumulado: ("6005") OR ("6205") NOT "cancelado"
[(] "6005" [)] [OR] [(] "6205" [)] [NOT] "cancelado"
✓ Forma B — OR dentro del paréntesis (más natural):
Acumulado: ("6005" OR "6205") NOT "cancelado"
[(] "6005" [OR] "6205" [)] [NOT] "cancelado"
Selector de campo
Con el modo acumulativo activo, aparece bajo los operadores una fila de checkboxes con los campos buscables de la vista. Permite limitar la búsqueda a un campo específico en lugar de buscar en todos.
Por ejemplo en el listado de Pedidos aparecería:
Campo: ☑ Todos ☐ Código ☐ Número 2 ☐ Cliente ☐ Observaciones ☐ Comentario privado
Los campos varían según el listado — cada vista muestra únicamente los campos que tiene configurados como buscables.
Por defecto está marcado "Todos" — la búsqueda funciona exactamente igual que siempre. La casilla del campo activo aparece en negrita.
Si el usuario marca un campo específico, la siguiente búsqueda se limita a ese campo y el campo activo persiste hasta que se cambie. Esto permite construir expresiones muy precisas:
Acumulado: [Cliente] "norte" AND [Observaciones] "urgente"
Marco [Cliente] → "norte" Enter → Marco [Observaciones] → "urgente" Enter
→ registros donde el campo Cliente contiene "norte"
Y el campo Observaciones contiene "urgente"
Acumulado: [Cliente] "norte" OR [Cliente] "fábrica"
Marco [Cliente] → "norte" Enter [OR] → "fábrica" Enter
→ registros donde el cliente es norte O fábrica
(mucho más preciso que buscar "norte" en todos los campos)
Sin campo marcado ("Todos") el comportamiento es el del buscador estándar del core — busca el término en todos los campos buscables del listado simultáneamente.
Los checkboxes solo aparecen cuando el modo acumulativo está ON — sin él no tienen sentido porque la búsqueda funciona como el core sin ningún cambio.
¿Qué campos aparecen?
Solo los campos que el listado tiene configurados como buscables (searchFields). Son los mismos campos que usa la búsqueda normal del core — si un campo no aparece en la búsqueda estándar, tampoco aparecerá como opción en el selector.
Ejemplos con casilla de campo específico:
AND con campos distintos — cliente Y observación específica:
Acumulado: [Cliente] "norte" AND [Observaciones] "urgente"
Casilla: Cliente → "norte" Enter → Casilla: Observaciones → "urgente" Enter
→ Pedidos donde el cliente es "norte" Y las observaciones contienen "urgente"
→ Mucho más preciso que buscar "norte" en todos los campos
OR con el mismo campo — dos clientes distintos:
Acumulado: [Cliente] "norte" OR [Cliente] "fábrica"
Casilla: Cliente → "norte" Enter [OR] → "fábrica" Enter
→ Pedidos donde el cliente es "norte" O el cliente es "fábrica"
→ Sin casilla, "norte" y "fábrica" podrían coincidir con otros campos
NOT con campo específico — excluir solo en ese campo:
Acumulado: [Referencia] "rodamiento" NOT [Referencia] "6005"
Casilla: Referencia → "rodamiento" Enter [NOT] → "6005" Enter
→ Pedidos con referencias de rodamientos que no son la referencia 6005
Cambio de campo entre términos:
Acumulado: [Cliente] "norte" AND [Código] "PED2026"
Casilla: Cliente → "norte" Enter → Casilla: Código → "PED2026" Enter
→ Pedidos del cliente norte con código que contiene "PED2026"
Sin casilla (Todos) combinado con casilla específica en el mismo stack:
Acumulado: "urgente" AND [Cliente] "norte"
Casilla: Todos → "urgente" Enter → Casilla: Cliente → "norte" Enter
→ Pedidos que contienen "urgente" en cualquier campo Y cuyo cliente es "norte"
Un NOT colocado después de cerrar un grupo ) actúa sobre todos los grupos simultáneamente.
Acumulado: ("fábrica") OR ("taller") NOT "cancelado"
[(] "fábrica" Enter [)] [OR] [(] "taller" Enter [)] [NOT] "cancelado" Enter
→ (todos los de fábrica MÁS todos los de taller) excluyendo los cancelados
Sin paréntesis explícitos, NOT siempre actúa solo dentro de su grupo:
Acumulado: ("fábrica") OR ("taller" NOT "cancelado")
"fábrica" Enter [OR] "taller" Enter [NOT] "cancelado" Enter
→ cancelado solo excluye al grupo taller, no al grupo fábrica
Para excluir un término de todos los grupos sin paréntesis, usar NOT en cada grupo:
Acumulado: ("fábrica" NOT "cancelado") OR ("taller" NOT "cancelado")
"fábrica" Enter [NOT] "cancelado" Enter [OR] "taller" Enter [NOT] "cancelado" Enter
Sincronización con vistas relacionadas
En cualquier listado que tenga pestañas relacionadas, estas se sincronizan automáticamente sin configuración adicional. Al filtrar en la vista principal, las vistas relacionadas muestran solo los registros que corresponden al resultado filtrado.
Vistas que se sincronizan:
| Vista principal | Vistas relacionadas | Comportamiento |
|---|---|---|
| Pedidos, Facturas, Albaranes, Presupuestos | Líneas | Buscador completo + sincronización bidireccional |
| Facturas de cliente y proveedor | Recibos | Recibos de las facturas filtradas |
| Productos | Variantes, Stock | Variantes y stock de los productos filtrados |
| Clientes | Direcciones, Cuentas bancarias, Grupos | Datos del cliente filtrado |
| Proveedores | Direcciones | Direcciones del proveedor filtrado |
Las vistas de detalle (Recibos, Variantes, Stock, Direcciones, Cuentas bancarias, Grupos) no tienen buscador acumulado propio — solo el botón limpiar 🗂✕. La búsqueda significativa siempre se hace desde la vista principal y las vistas de detalle se filtran automáticamente. El flujo correcto es buscar "tornillo" en productos y las variantes y stock se filtran solos.
Contadores:
Debajo del buscador de cada pestaña aparece un contador X de Y indicando cuántos registros están en el resultado actual respecto al total. Siempre visible aunque no haya búsqueda activa. La etiqueta se adapta al tipo de vista: "Documentos", "Líneas", "Recibos", "Variantes", "Stock", "Direcciones", "Cuentas bancarias".
Documentos → Líneas:
Filtrar pedidos por "norte"
→ Pedidos: 11 de 66
→ Líneas: 45 de 653 (solo las líneas de esos 11 pedidos)
Documentos → Recibos:
Filtrar facturas por "norte"
→ Facturas: 8 de 66
→ Recibos: 12 de 180 (solo los recibos de esas 8 facturas)
Documentos → Variantes/Stock:
Filtrar productos por "tornillo"
→ Productos: 5 de 120
→ Variantes: 12 de 340 (solo las variantes de esos 5 productos)
→ Stock: 8 de 340 (solo el stock de esos 5 productos)
Documentos → Direcciones/Cuentas bancarias:
Filtrar clientes por "Talleres Norte1917"
→ Clientes: 1 de 66
→ Direcciones: 3 de 180 (solo las direcciones de ese cliente)
→ Cuentas bancarias: 2 de 45 (solo las cuentas de ese cliente)
Líneas/Recibos → Documentos (solo en líneas — refinamiento mutuo):
Filtrar recibos por "cobro aplazado"
→ Recibos: 15 de 180
→ Facturas: 10 de 66 (solo las facturas con esos recibos)
Refinamiento mutuo (solo en líneas de documento): Si hay filtros activos en la vista de docs y en la de líneas al mismo tiempo, el sistema calcula la intersección — solo los documentos que cumplen su filtro Y tienen líneas que cumplen el filtro de líneas.
Iteración entre pestañas: Al alternar entre pestañas y añadir nuevas búsquedas, el contexto cruzado se respeta siempre.
Paginación: La paginación en las pestañas relacionadas respeta siempre el filtro activo en la vista principal, independientemente de la página. Tanto el filtro AND simple como las expresiones con OR, NOT y paréntesis se mantienen al navegar entre páginas.
Limpiar: El botón limpiar 🗂✕ en cualquier pestaña borra la acumulación de todas las pestañas relacionadas simultáneamente.
Limitación — búsqueda por nombre en vistas de detalle: Las tablas de recibos, variantes y stock no almacenan el nombre del cliente/proveedor/producto directamente — solo el código. Para filtrar por nombre, hacerlo desde la vista principal donde sí existe ese campo y las vistas de detalle se sincronizan automáticamente.
Acumulación con filtros del panel
Los filtros activos del panel forman parte del contexto acumulado. No aparecen en el badge porque ya son visibles en la barra de filtros del listado, pero sí actúan sobre los resultados.
Con OR, cada grupo de búsqueda respeta el filtro del panel de forma independiente. La sincronización de líneas también respeta los filtros del panel activos.
Limpiar la acumulación
| Acción | Stack | Badge |
|---|---|---|
| Botón limpiar 🗂✕ | Vacía (esta vista y relacionadas) | Oculto |
| Desactivar el modo 🗂 | Vacía automáticamente | Oculto |
| Botón "Todos" del listado | Vacía | Oculto |
| Volver desde un registro (GET) | Se conserva | Visible |
| Recarga directa de la página | Se conserva | Visible |
| Cargar filtro guardado | Vacía (nuevo punto de partida) | Oculto |
| Botón "Limpiar filtros" | Se mantiene | Sin cambios |
| Papelera de filtro guardado | Se mantiene | Sin cambios |
Al volver desde un registro: Al entrar en un pedido y volver al listado con el botón "Todos" del Edit, la página carga por GET mostrando todos los registros sin filtrar. El badge sigue mostrando los términos del stack en todas las pestañas — indica que hay búsquedas acumuladas pendientes de aplicar.
Práctica recomendada — usar el botón atrás del navegador:
Si se quiere conservar la búsqueda acumulada activa al volver desde un documento, lo más cómodo es usar el botón atrás del navegador en lugar del botón "Todos" del Edit. El navegador restaura la página anterior desde su caché, incluyendo el resultado filtrado y el badge, sin necesidad de pulsar Enter.
✓ Botón atrás del navegador:
→ Resultado filtrado restaurado directamente ✅
→ Badge con los términos activo ✅
→ No hay que pulsar Enter en ninguna pestaña ✅
✗ Botón "Todos" del Edit (GET):
→ Resultado muestra todos los registros sin filtrar
→ Hay que pulsar Enter en docs y luego en líneas/recibos
para reaplicar el acumulado completo
Para reaplicar el acumulado con el botón "Todos" del Edit:
1. Pulsar Enter en la pestaña de documentos (pedidos, facturas...)
→ Se filtran los documentos y las líneas/recibos se sincronizan automáticamente
mostrando solo las que pertenecen a esos documentos.
2. Ir a la pestaña de líneas o recibos y pulsar Enter
→ Se aplica el filtro propio de esa pestaña dentro del contexto de documentos.
→ Si no se pulsa Enter en líneas/recibos, se muestran todas las líneas de los
documentos filtrados pero sin aplicar el filtro específico de líneas/recibos.
Si solo hay búsqueda en documentos (sin filtro en líneas ni recibos), basta con pulsar Enter en la pestaña de documentos — las líneas/recibos se sincronizan automáticamente sin necesidad de pulsar Enter en ellas.
Compatibilidad con Comentarioprivado
Si tienes instalado el plugin Comentarioprivado, dispones de un campo adicional "Comentario privado" en albaranes, facturas, pedidos y presupuestos de venta. Este campo es interno y no imprimible — sirve para anotaciones de uso interno como recordatorios, instrucciones de entrega, condiciones especiales, etc.
BuscadorAcumulado detecta automáticamente este campo porque Comentarioprivado lo añade a los searchFields de cada vista de listado. No requiere ninguna configuración adicional.
Casos de uso con búsqueda acumulada:
Buscar pedidos con anotación "urgente" que además sean de Talleres Norte1917:
Acumulado: "norte" AND "urgente"
"norte" Enter "urgente" Enter
→ pedidos de Talleres Norte1917 que tienen "urgente" en el comentario privado
Buscar facturas con anotación "revisar" O "pendiente cobro":
Acumulado: ("revisar") OR ("pendiente cobro")
"revisar" Enter [OR] "pendiente cobro" Enter
→ facturas con cualquiera de las dos anotaciones internas
Buscar pedidos de un cliente excluyendo los que tienen anotación "cancelar":
Acumulado: "norte" NOT "cancelar"
"norte" Enter [NOT] "cancelar" Enter
→ pedidos de Talleres Norte1917 sin la anotación "cancelar" en el comentario privado
Combinando con sincronización de líneas — buscar pedidos con anotación "urgente" y ver qué líneas tienen:
1. Pedidos: "urgente" Enter → pedidos con comentario privado "urgente"
2. Pestaña líneas → muestra automáticamente las líneas de esos pedidos
3. Líneas: "pendiente" Enter → solo las líneas pendientes de los pedidos urgentes
→ Pedidos: solo los urgentes que tienen líneas pendientes
Ejemplos de uso real
Los ejemplos usan términos de un entorno industrial habitual: clientes (Talleres Norte1917 S.L., Fábrica Sur123 S.A., Técnica Central678 S.L.), referencias (rodamiento, tornillo, 6005, 6205) y anotaciones (urgente, cobro aplazado, cancelado).
Nota: todos los ejemplos de este apartado usan la casilla Todos (comportamiento por defecto) — el término se busca simultáneamente en todos los campos buscables del listado. Los ejemplos con casilla de campo específico están en la sección Selector de campo.
AND simple — cliente con referencia:
Acumulado: "norte" AND "rodamiento"
Casilla: Todos
"norte" Enter "rodamiento" Enter
→ Pedidos de Talleres Norte1917 S.L. que contienen "rodamiento" en cualquier campo buscable
Acumulado: "fábrica" AND "6005"
Casilla: Todos
"fábrica" Enter "6005" Enter
→ Pedidos de Fábrica Sur123 S.A. con la referencia 6005
Varios clientes a la vez (OR):
Acumulado: ("norte") OR ("fábrica")
Casilla: Todos
"norte" Enter [OR] "fábrica" Enter
→ Pedidos de Talleres Norte1917 S.L. MÁS pedidos de Fábrica Sur123 S.A.
Acumulado: ("norte") OR ("fábrica") OR ("técnica")
Casilla: Todos
"norte" Enter [OR] "fábrica" Enter [OR] "técnica" Enter
→ Todos los pedidos de los tres clientes
Excluir con NOT:
NOT solo funciona sobre campos buscables — los mismos que encuentra la búsqueda normal. No sirve para excluir estados del sistema (usar el filtro del panel para eso).
NOT excluye únicamente los registros que contienen el término en algún campo buscable. Los registros con ese campo vacío o sin valor siguen apareciendo en el resultado — lo cual es el comportamiento correcto.
Acumulado: "norte" NOT "urgente"
Casilla: Todos
"norte" Enter [NOT] "urgente" Enter
→ Pedidos de Talleres Norte1917 S.L. sin la palabra "urgente" en observaciones
Acumulado: "rodamiento" NOT "cancelado"
Casilla: Todos
"rodamiento" Enter [NOT] "cancelado" Enter
→ Pedidos con rodamientos que no contienen "cancelado" en ningún campo buscable
Acumulado: "tornillo" NOT "inox"
Casilla: Todos
"tornillo" Enter [NOT] "inox" Enter
→ Pedidos con tornillos excluyendo los de acero inoxidable
Combinaciones AND + OR:
Acumulado: ("norte" AND "rodamiento") OR ("fábrica" AND "6005")
Casilla: Todos
"norte" Enter "rodamiento" Enter [OR] "fábrica" Enter "6005" Enter
→ Pedidos de Talleres Norte1917 con rodamientos MÁS pedidos de Fábrica Sur123 con referencia 6005
Acumulado: ("norte" AND "rodamiento" NOT "cancelado") OR ("fábrica" AND "rodamiento" NOT "cancelado")
Casilla: Todos
"norte" Enter "rodamiento" Enter [NOT] "cancelado" Enter [OR] "fábrica" Enter "rodamiento" Enter [NOT] "cancelado" Enter
→ Pedidos de Norte o Fábrica con rodamientos que no están cancelados
Con paréntesis explícitos:
Acumulado: ("norte" AND "rodamiento") OR ("fábrica" AND "6005")
[(] "norte" Enter "rodamiento" Enter [)] [OR] [(] "fábrica" Enter "6005" Enter [)]
→ Pedidos de Norte con rodamientos MÁS pedidos de Fábrica con referencia 6005
Acumulado: ("norte") OR ("fábrica") NOT "urgente"
[(] "norte" Enter [OR] "fábrica" Enter [)] [NOT] "urgente" Enter
→ (Talleres Norte1917 + Fábrica Sur123) sin ningún pedido con la palabra "urgente"
Acumulado: ("norte" AND "tornillo") OR ("fábrica" AND "tornillo") NOT "inox"
[(] "norte" Enter "tornillo" Enter [OR] "fábrica" Enter "tornillo" Enter [)] [NOT] "inox" Enter
→ Pedidos de Norte o Fábrica con tornillos, excluyendo los de acero inoxidable en ambos grupos
Con filtros del panel:
Los filtros del panel (estado, fecha, almacén...) actúan como contexto base. No aparecen en el badge pero sí actúan sobre los resultados. Con OR, el filtro del panel se aplica en cada grupo independientemente.
Acumulado: "norte" AND "rodamiento"
Panel: Estado = Pendiente
"norte" Enter "rodamiento" Enter
→ Solo los pedidos pendientes de Talleres Norte1917 que contienen rodamientos
Acumulado: ("norte") OR ("fábrica")
Panel: Fecha desde = 01/01/2025
"norte" Enter [OR] "fábrica" Enter
→ Pedidos de Talleres Norte1917 o Fábrica Sur123 desde enero de 2025
Acumulado: ("norte") OR ("fábrica") NOT "urgente"
Panel: Estado = Pendiente + Fecha desde = 01/01/2025
[(] "norte" Enter [OR] "fábrica" Enter [)] [NOT] "urgente" Enter
→ Pedidos pendientes desde enero de 2025, de Norte o Fábrica, sin la palabra "urgente"
Sincronización Pedidos ↔ Líneas — Ejemplo 1: Partir de un cliente y ver sus líneas automáticamente.
Pestaña Pedidos: "norte" Enter
→ Pedidos de Talleres Norte1917 S.L.: 11 de 66
→ Pestaña Líneas: muestra automáticamente las líneas de esos 11 pedidos
Badge Líneas: Líneas: 135 de 653
Sincronización Pedidos ↔ Líneas — Ejemplo 2: Buscar una referencia en líneas y ver los pedidos que la contienen.
Pestaña Líneas: "6005" Enter
→ Líneas con referencia "6005": 38 de 653
→ Pestaña Pedidos: muestra automáticamente los pedidos con esas líneas: 12 de 66
Sincronización Pedidos ↔ Líneas — Ejemplo 3: Partir de un cliente en pedidos y filtrar sus líneas por referencia.
Pestaña Pedidos: "norte" Enter
→ Pedidos de Talleres Norte1917 S.L.: 11 de 66
→ Pestaña Líneas: 135 líneas de esos 11 pedidos
Ir a pestaña Líneas: "6005" Enter
→ Líneas con "6005" dentro de los 11 pedidos de Talleres Norte1917: 18 de 135
→ Pestaña Pedidos: se actualiza mostrando solo los pedidos de Norte con referencia 6005: 7 de 11
Sincronización Pedidos ↔ Líneas — Ejemplo 4: Partir de una referencia en líneas y acotar por cliente.
Pestaña Líneas: "rodamiento" Enter
→ Líneas con "rodamiento": 38 de 653
→ Pestaña Pedidos: 12 pedidos con rodamientos
Ir a pestaña Pedidos: AND "norte" Enter
→ Pedidos de Talleres Norte1917 con rodamientos: 4 de 12
→ Pestaña Líneas: las líneas de rodamiento de esos 4 pedidos
Con filtro del panel y sincronización:
Panel: Estado = Pendiente
Pestaña Pedidos: "norte" Enter → pedidos pendientes de Talleres Norte1917: 5 de 11
Pestaña Líneas: muestra las líneas de esos 5 pedidos
Pestaña Líneas: "rodamiento" Enter [NOT] "cancelado" Enter → rodamientos no cancelados de esos 5 pedidos
Pestaña Pedidos: AND "6005" Enter → pedidos de Norte pendientes con rodamientos no cancelados Y referencia 6005
Sincronización Facturas ↔ Recibos — Ejemplo 1: Ver los recibos de las facturas de un cliente.
Pestaña Facturas: "norte" Enter
→ Facturas de Talleres Norte1917 S.L.: 8 de 66
→ Pestaña Recibos: muestra automáticamente los recibos de esas 8 facturas
Badge Recibos: Recibos: 12 de 180
Sincronización Facturas ↔ Recibos — Ejemplo 2: Ver las facturas de varios clientes y sus recibos.
Acumulado: ("norte") OR ("fábrica")
Pestaña Facturas: "norte" Enter [OR] "fábrica" Enter
→ Facturas de Talleres Norte1917 o Fábrica Sur123: 13 de 66
→ Pestaña Recibos: los recibos de todas esas facturas automáticamente
Sincronización Facturas ↔ Recibos — Ejemplo 3: Partir de recibos con una anotación y ver las facturas relacionadas.
Pestaña Recibos: "cobro aplazado" Enter
→ Recibos con "cobro aplazado" en observaciones: 15 de 180
→ Pestaña Facturas: muestra automáticamente las facturas que tienen esos recibos
Sincronización Facturas ↔ Recibos — Ejemplo 4: Refinamiento mutuo — facturas de un cliente con recibos con anotación específica.
Pestaña Facturas: "norte" Enter → 8 facturas de Talleres Norte1917 S.L.
Pestaña Recibos: "cobro aplazado" Enter → solo los recibos con "cobro aplazado" de esas 8 facturas
Pestaña Facturas: AND "rodamiento" Enter → solo las facturas de Norte con rodamientos QUE ADEMÁS tienen recibos con "cobro aplazado"
Con filtros del panel en Recibos:
Acumulado: ("norte") OR ("fábrica")
Panel Recibos: Pagado = No
Pestaña Facturas: "norte" Enter [OR] "fábrica" Enter
→ Recibos NO pagados de Talleres Norte1917 o Fábrica Sur123
→ Pestaña Facturas: las facturas de Norte o Fábrica que tienen recibos pendientes de pago
Panel Recibos: Pagado = No + Vencimiento hasta = 31/12/2025
Pestaña Facturas: "técnica" Enter
→ Recibos impagados de Técnica Central678 S.L. que vencen antes de fin de año
→ Pestaña Facturas: las facturas de Técnica con esos recibos
Consejos de búsqueda
AND es útil entre campos distintos, no entre valores del mismo campo
AND busca registros que contengan ambos términos — pero si los dos términos están en el mismo campo, el resultado puede ser vacío o inesperado. El caso más habitual: no tiene sentido buscar dos empresas con AND porque el campo nombrecliente no puede contener dos nombres a la vez.
✗ No funciona como se espera:
"norte" AND "fábrica"
→ busca registros que contengan "norte" Y "fábrica" en los mismos campos
→ probablemente 0 resultados si son dos clientes distintos
✓ Para buscar dos clientes distintos usar OR:
"norte" OR "fábrica"
→ pedidos de Talleres Norte1917 MÁS pedidos de Fábrica Sur123
AND sí tiene sentido cuando los términos están en campos distintos:
✓ Cliente + referencia (campos distintos):
"norte" AND "rodamiento"
→ campo nombrecliente contiene "norte" Y campo descripcion contiene "rodamiento"
→ pedidos de Talleres Norte1917 que tienen rodamientos ✅
✓ Cliente + anotación interna:
"norte" AND "urgente"
→ pedidos de Talleres Norte1917 que tienen "urgente" en el comentario privado ✅
✓ Referencia + código:
"rodamiento" AND "6005"
→ pedidos con "rodamiento" en descripción Y "6005" en referencia ✅
NOT no filtra por estado del sistema
NOT solo actúa sobre los searchFields — los mismos campos que usa la búsqueda normal. No sirve para excluir estados como "Pendiente", "Cancelado" o "Enviado" porque esos valores son códigos internos gestionados por el sistema, no texto en los campos de búsqueda.
✗ No funciona para excluir estados:
"norte" NOT "cancelado"
→ NO excluye los pedidos cancelados de Talleres Norte1917
→ solo excluye los que tienen la palabra "cancelado" en los campos buscables
✓ Para filtrar por estado usar el panel de filtros:
Panel: Estado = Pendiente → solo pedidos pendientes
Después: "norte" AND "rodamiento" → combina con el filtro del panel
Para buscar en un campo que no aparece en la búsqueda normal, ir al listado correcto
Cada listado solo busca en sus propios searchFields. La tabla de recibos, por ejemplo, no almacena el nombre del cliente — solo el código. Si intentas buscar un cliente en recibos no encontrarás nada.
✗ No funciona:
Pestaña Recibos: "norte"
→ 0 resultados — "norte" no está en los campos buscables de recibos
✓ Flujo correcto:
Pestaña Facturas: "norte" → facturas de Talleres Norte1917
→ Pestaña Recibos se sincroniza automáticamente mostrando sus recibos
OR amplía siempre sobre el total, no sobre el resultado anterior
A diferencia de AND (que reduce el resultado actual), OR siempre busca sobre el total de registros de forma independiente. Cada grupo OR es una búsqueda nueva desde cero.
Pedidos totales: 66
"norte" → 11 pedidos de Talleres Norte1917
[OR] "fábrica" → NO busca "fábrica" dentro de los 11, sino en los 66
→ resultado: 11 (norte) + 8 (fábrica) = 19 pedidos en total
Combinar filtros del panel con búsqueda acumulada
Los filtros del panel (fecha, estado, almacén...) actúan como contexto base antes de la búsqueda acumulada. Con OR, el filtro del panel se aplica en cada grupo de forma independiente.
Panel: Estado = Pendiente ← contexto base
"norte" OR "fábrica"
→ pedidos PENDIENTES de Talleres Norte1917
MÁS pedidos PENDIENTES de Fábrica Sur123
→ el filtro "Pendiente" se aplica a ambos grupos ✅
El modo acumulado se guarda por listado y por navegador
El estado ON/OFF y el stack de búsqueda se guardan en el navegador (localStorage). Cada listado tiene su propio estado independiente — puedes tener el modo activo en pedidos y desactivado en clientes al mismo tiempo. Al recargar la página el estado se restaura automáticamente. Si cambias de dispositivo o de navegador, el stack no se transfiere.
Solo busca en los campos visibles en la búsqueda normal
BuscadorAcumulado usa exactamente los mismos campos que el buscador estándar del core — los searchFields definidos para cada listado. Si un campo no aparece en la búsqueda normal del listado, tampoco estará disponible en la búsqueda acumulada.
Esto significa que buscar por un campo que no está en los searchFields (por ejemplo el nombre del cliente en la vista de recibos, donde la tabla no almacena ese dato) no producirá resultados. La forma de identificar qué campos son buscables es comprobar qué términos encuentra la búsqueda normal del listado.
Si necesitas buscar por un campo que no está disponible, el flujo correcto es filtrar desde un listado que sí incluya ese campo y usar la sincronización automática entre vistas para ver los resultados relacionados.
Paréntesis no anidables
El botón ( se deshabilita automáticamente si ya hay un grupo abierto sin cerrar. No es posible hacer paréntesis dentro de paréntesis:
✗ No permitido:
( "norte" ( "rodamiento" AND "6005" ) )
✓ Alternativa — reformular con grupos al mismo nivel:
( "norte" AND "rodamiento" ) OR ( "norte" AND "6005" )
→ los de norte con rodamiento MÁS los de norte con 6005
OR dentro de paréntesis — se muestra tal como se escribió
OR dentro de paréntesis se muestra en el badge tal como el usuario lo escribió — de forma natural:
Acumulado: ("6005" OR "6205") NOT "cancelado"
[(] "6005" Enter [OR] "6205" Enter [)] [NOT] "cancelado" Enter
→ (todos los de 6005 + todos los de 6205) sin cancelado ✅
Internamente el sistema lo trata como dos grupos separados ("6005") OR ("6205"), pero el badge refleja la expresión natural del usuario. El resultado es el mismo.
Lo que no es posible es combinar OR y AND en el mismo grupo:
✗ No existe como expresión única:
( "norte" OR "fábrica" ) AND "rodamiento"
✓ Alternativa equivalente con dos grupos:
Acumulado: ("norte" AND "rodamiento") OR ("fábrica" AND "rodamiento")
[(] "norte" Enter "rodamiento" Enter [)] [OR] [(] "fábrica" Enter "rodamiento" Enter [)]
→ los de norte con rodamiento MÁS los de fábrica con rodamiento
NOT sin paréntesis actúa solo dentro de su grupo
En lógica automática (sin paréntesis explícitos), NOT se acumula en el grupo actual y no afecta a los otros grupos. Este ejemplo puede dar un resultado inesperado:
Acumulado: ("norte") OR ("fábrica" NOT "cancelado")
✗ Resultado inesperado:
"norte" Enter [OR] "fábrica" Enter [NOT] "cancelado" Enter
→ "cancelado" solo excluye al grupo fábrica
→ los de norte cancelados SÍ aparecen en el resultado
✓ Para excluir "cancelado" de todos los grupos usar paréntesis y NOT global:
Acumulado: ("norte") OR ("fábrica") NOT "cancelado"
[(] "norte" Enter [)] [OR] [(] "fábrica" Enter [)] [NOT] "cancelado" Enter
→ "cancelado" excluye de ambos grupos simultáneamente
La sincronización de líneas requiere el nombre estándar del core
La detección automática de la relación documento-línea se basa en la convención de nombres del core: la vista de líneas debe contener "Linea" o "Line" en su nombre. Los listados del core siguen esta convención (ListLineaPedidoCliente, ListLineaFacturaCliente, etc.). Listados de plugins de terceros con nombres no estándar pueden no sincronizarse automáticamente.
Las vistas de detalle no tienen buscador acumulado propio
Las vistas de detalle (recibos, variantes, stock, direcciones, cuentas bancarias) solo muestran el botón limpiar 🗂✕ — no tienen buscador acumulado independiente. Son detalles del padre: la búsqueda significativa siempre se hace desde la vista principal. Si buscas "tornillo" en variantes sin tener ningún producto filtrado, el resultado no tendría contexto. El flujo correcto es buscar "tornillo" en productos y las variantes se filtran automáticamente.
Los filtros del panel se acumulan como contexto base
Los filtros activos del panel forman parte del contexto acumulado. Con OR, cada grupo respeta el filtro del panel de forma independiente — el filtro no se aplica solo al primer grupo sino a todos.
Compatibilidad
Funciona en todos los listados List* del sistema sin configuración adicional. No modifica ningún archivo del core ni de otros plugins. Compatible con FacturaScripts 2025 y superior.