Administrador de tablas temporales
Creación de tablas temporales
Uso de tablas temporales
Eliminación de tablas temporales
Puede crear tablas temporales con consultas de script de 1C:Enterprise. Las tablas temporales mejoran el rendimiento de las consultas y simplifican el texto de la consulta.
Hay dos componentes principales:
- El objeto TempTablesManager que almacena los datos de las tablas temporales,
- y la sintaxis del lenguaje de consulta que permite crear nuevas tablas temporales y reutilizar las tablas temporales actuales.
Administrador de tablas temporales
Un administrador de tablas temporales se utiliza para gestionar las tablas temporales durante las operaciones de la aplicación.
Cada aplicación admite múltiples instancias de administradores de tablas temporales. Cada instancia almacena su propio conjunto de tablas temporales. Dentro de un único administrador de tablas temporales, cada tabla temporal debe tener un nombre único que también es un ID de tabla temporal.
Cree una instancia de administrador de tablas temporales con un constructor Nuevo. Ejemplo:
TempTablesManager = Nuevo TempTablesManager; |
Cada tabla temporal existe hasta que exista la instancia principal del administrador de tablas temporales. Al eliminar una instancia de administrador de tablas temporales, también se eliminan todas las tablas temporales secundarias.
Forzar el cierre de un administrador de tablas temporales con el método Close(). Se eliminarán todas las tablas temporales secundarias. Ya no podrá operar con esta instancia de administrador de tablas temporales.
Creación de tablas temporales
Cree una tabla temporal utilizando el objeto Query del lenguaje 1C:Enterprise.
Una tabla temporal está vinculada a una instancia de administrador de tablas temporales a través de la propiedad TempTablesManager de la consulta. Ejemplo:
TempTablesManager = Nuevo TempTablesManager; Consulta = Nuevo Consulta ; Consulta .TempTablesManager = TempTablesManager; |
Se puede crear una tabla temporal a partir de datos de la base de datos o de una fuente de datos externa (por ejemplo, una tabla de valores).
Cree una tabla temporal a partir de datos de la base de datos especificando un administrador de tablas temporales en un objeto Query y ejecutando la consulta con la palabra clave INTO y un nombre de tabla temporal. La palabra clave INTO debe colocarse después de la lista de selección de la consulta. Ejemplo:
SELECCIONAR
Código,
Nombre
INTO TablaTemporal
DESDE Catálogo.Productos
Esta consulta devolverá una sola fila con una sola columna de Cantidad con el número de registros colocados en la tabla temporal.
Si no se especifica o se abre un administrador de tablas temporales, se lanzará una excepción.
Si un administrador de tablas temporales ya incluye la tabla temporal con el nombre especificado, se lanzará una excepción.
Para crear un índice para una tabla temporal, agregue la palabra clave INDEX BY a la consulta y especifique los campos para construir el índice después de esta palabra clave.
Ejemplo:
SELECCIONAR
Código,
Descripción
INTO TablaTemporal
DESDE Catálogo.Productos
INDEX BY Código
Los campos utilizados para construir el índice deben incluirse en la lista de selección.
Utilice la función del lenguaje de consulta RECORDAUTONUMBER() para crear una columna en una tabla temporal que se llenará con un número único.
Utilice la cláusula TO CHANGE para crear una tabla temporal y bloquear las tablas de origen.
Ejemplo:
SELECCIONAR
Factura.Ref,
Factura.Número,
Factura.Fecha
INTO TablaTemporal
DESDE
Documento.Factura COMO Factura
WHERE
Factura.Ref EN(&Docs)TO CHANGE
Cree una tabla temporal basada en la fuente de datos externa especificando el nombre del parámetro donde se almacena la fuente externa en la lista de origen de la consulta. Luego, cree una tabla temporal como de costumbre. Las siguientes fuentes de datos externas están disponibles:
- Una tabla de valores,
- una sección tabular,
- un resultado de consulta.
Un ejemplo con una tabla temporal basada en la fuente de datos externa:
SELECCIONAR
Código,
Nombre
INTO TablaTemporal
DESDE &FuenteExt Como FuenteExt
Esta consulta devolverá una tabla temporal TablaTemporal con sus columnas Código y Nombre llenas desde la fuente de datos externa. Por ejemplo, desde una tabla de valores almacenada en el parámetro FuenteExt.
Si se creó una tabla temporal a partir de la fuente de datos externa, no se puede unir o unir a ella. No hay acceso a los atributos de la tabla que se utilizó para crear una tabla temporal.
Uso de tablas temporales
Puede acceder a las tablas temporales existentes. Especifique un administrador de tablas temporales para un objeto Query, y esta consulta podrá acceder a las tablas temporales por nombres, como las tablas comunes.
Eliminación de tablas temporales
Elimine una tabla temporal de un administrador de tablas temporales utilizando la palabra clave DROP seguida del nombre de la tabla temporal. Ejemplo:
DROP TablaTemporal
Si la tabla eliminada no existe, se lanzará una excepción.