1c correspondencia de tablas y objetos sql. Estructura de almacenamiento de la base de datos (formularios administrados). Diferencias con las implementaciones existentes
La estructura en el lenguaje de programación 1C 8.3 y 8.2 es un conjunto de pares de "Clave" y "Valor". El campo "Clave" tiene un tipo de cadena, mientras que el "Valor" puede tomar cualquier tipo de datos. Por lo general, se utiliza para almacenar y transferir entre procedimientos un conjunto de parámetros.
Una estructura en el lenguaje de programación 1C se puede crear de dos maneras utilizando la construcción "Nuevo".
Primera forma:
Estructura = Nueva Estructura;
Structure.Insert("ParameterKey1", "Valores de parámetro #1");
Structure.Insert("ParameterKey2", "Valores de parámetro #2");
Segunda forma:
Estructura = Nueva estructura ("ParameterKey1, ParameterKey2", "Valores de parámetro #1", "Valores de parámetro #2");
Ambos métodos crearán una estructura que se puede ver en la captura de pantalla de la depuración:
Obtenga lecciones en video de 267 1C gratis:
El cambio
Puede agregar o cambiar una estructura utilizando el método "Insertar ()".
Estructura.Insertar("NombreClave", ValorClave);
Si desea cambiar el valor de la clave anterior, ingrese su nombre. si agregar nueva llave, agregue un nombre único relativo a todas las claves de estructura.
Para eliminar un elemento de la colección, debe usar el método "Eliminar", donde pasar el nombre de la clave:
Estructura.Eliminar("NombreClave");
También es posible borrar todos los objetos de la colección:
Estructura.Clear();
Travesía de la estructura
Para iterar sobre una colección de estructuras, debe usar la construcción "Para cada clave y valor de bucle de estructura".
Por ejemplo:
Para cada clave y valor del bucle de estructura
…… //procesamiento, por ejemplo, cambio de valores
FinCiclo;
En cada ciclo se verá que tenemos a nuestra disposición los siguientes campos:
Los datos que determinan la lógica de funcionamiento del sistema basado en 1C:Enterprise se refieren a la base de datos. Almacenamiento base de información se lleva a cabo en una base de datos como un conjunto de tablas, para las cuales 1C:Enterprise 8.1 puede usar uno de los cuatro sistemas de administración de bases de datos (DBMS):
* Incorporado en 1C:Enterprise 8.1 (versión de archivo de la base de datos). En este caso, todos los datos de la base de datos se almacenan en un archivo llamado 1Cv8.1CD. Este archivo tiene un formato binario y es esencialmente una base de datos para el DBMS integrado 1C:Enterprise 8.1.
*Microsoft servidor SQL
(versión cliente-servidor de la base de datos). Todos los datos de la base de datos se almacenan en la base de datos. datos de microsoft Servidor SQL.
* PostgresSQL(versión cliente-servidor de la base de datos). Todos los datos de la base de datos se almacenan en la base de datos. datos PostgreSQL.
* IBM DB2(versión cliente-servidor de la base de datos). Todos los datos de la base de datos se almacenan en una base de datos IBM DB2.
A nivel de los objetos de la base de datos (tablas, campos, índices, etc.), las versiones de archivo y cliente-servidor de una base de datos tienen un formato similar (que difiere en detalles menores). A continuación se proporciona información sobre este formato.
Toda la base de datos se representa en la base de datos como un conjunto de tablas. Entre ellos hay varias tablas que necesariamente están presentes en la representación de cualquier base de datos:
*Configuración- Configuración básica de la base de datos. Esta configuración corresponde a la estructura de datos real y la utiliza 1C:Enterprise 8.0 en modo Enterprise.
*Guardar configuración- configuración editada por el Configurador. La configuración de ConfigSave se sobrescribe en Config cuando se realiza la "Actualización de la configuración de la base de datos" en el Configurador y viceversa, cuando se realiza la operación "Configuración - Configuración de la base de datos - Volver a la configuración de la base de datos" en el Configurador.
* Archivos contiene servicio de información, por ejemplo, sobre cómo trabajar con el almacén de configuración.
*Parámetros contiene parámetros de la base de datos. Entre ellos:
=>
Lista de usuarios de la base de datos.
=>
Configuración de la base de datos nacional.
=>
Tabla de correspondencia de objetos de metadatos y objetos de base de datos (tablas, campos, índices).
=>
Alguna otra información.
*_Desplazamiento de año- cambio de fechas en la base de datos. Esta tabla solo se crea cuando usando microsoft Servidor SQL.
*DBSchema contiene información sobre la estructura de la base de datos 1C:Enterprise y define otros objetos de base de datos utilizados por esta base de información.
Al comienzo de 1C:Enterprise, verifica la presencia de las tablas enumeradas en la base de datos y, si falta alguna de ellas, se muestra el mensaje "la base de datos está destruida". La ausencia de todas las tablas enumeradas significa que la base de datos está vacía. En este último caso, se crearán estas tablas.
La lista y la estructura de otras tablas de la base de datos están determinadas por una configuración específica, a saber, los objetos de metadatos definidos en ella. Cada nombre de tabla consta de un prefijo de letra seguido de un número. El prefijo define el propósito de la tabla y el número le permite distinguir entre tablas del mismo propósito que pertenecen a diferentes objetos de metadatos. Si se utiliza IBM DB2 como DBMS, la estructura descrita no son los nombres de las tablas, sino sus alias.
Si se define al menos un plan de intercambio en la configuración con el indicador "Base de información distribuida", se crearán las siguientes tablas:
*_ConfigChangeRec- tabla de registro de cambios de objetos de configuración.
* _ConfigChangeRec_ExtProps- tabla de nombres de archivo de propiedades externas modificadas de objetos de configuración.
Los siguientes son los diversos objetos de metadatos a los que puede corresponder cada tabla.
* Constantes
=>
_Consts contiene los valores actuales de todas las constantes definidas en la configuración.
=>
_ConstsChangeRec - tabla para registrar cambios en constantes. Se crea si al menos una constante participa en al menos un plan de intercambio.
* Intercambio de planes
=>
_Nodo
=>
_Nodo
* Manuales
=>
_Referencia
=>
_Referencia
=>
_ReferenceChangeRec
* Documentación
=>
_Documento
=>
_Documento
=>
_DocumentChangeRec
* Secuencias de documentos
=>
_Secuencia
=>
_Límite de secuencia
=>
_SequenceChangeRec
* Diarios de documentos.
=>
_Diario de documentos
* Enumeraciones
=>
_Enumeración
* Planos de tipos de características
=>
_Chrc
=>
_Chrc
=>
_ChrcChangeRec
* Planes de cuentas
=>
_Cuenta
=>
_Cuenta
=>
_Cuenta
=>
_AccChangeRec
* Planos de tipos de calculo
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKindDN
=>
_CalcKind
=>
_CalcKindChangeRec
* Registros de información
=>
_InfoReg
=>
_InfoRegChangeRec
* Registros de acumulación
=>
_AccumReg
=>
_AccumRegTotals
=>
_AccumRegTurnovers
=>
_AccumRegChangeRec
=>
_AccumRegOptions - tabla de configuraciones para almacenar los totales de los registros de acumulación, uno para todos los registros de acumulación.
* Registros contables
=>
_RegCuenta
=>
_RegCuenta
=>
_AccTtl0
=>
_AccTtl
=>
_AccTtlC
=>
_AccntRegChangeRec
=>
_AccntRegOptions: tabla de configuraciones para almacenar totales, una para todos los registros contables.
* Registros de cálculo
=>
_CalcReg
=>
_CalcRegActPer
=>
_CalcRegChangeRec
=>
_CalcRegRecalc
=>
_CalcRegRecalcChangeRec
* Procesos de negocios
=>
_BPRoutePoint
=>
_Procesos de negocio
=>
_Procesos de negocio
=>
_BusinessProcessChangeRec
* Tareas
=>
_Tarea
=>
_Tarea
=>
_TareaCambioRec
Cuando se utiliza IBM DB2, los prefijos de alias de tabla no comienzan con un guión bajo, sino inmediatamente con una parte de letra.
El número de estas tablas depende de la funcionalidad de la configuración y puede ser bastante grande. En modo normal, 1C:Enterprise no verifica su presencia, así como la integridad y consistencia de los datos contenidos en ellos. Por lo tanto, es importante que la base de datos que aloja la base de datos de 1C:Enterprise 8.1 esté protegida contra accesos no autorizados y que se modifique únicamente con las herramientas de 1C:Enterprise. Para verificar, debe utilizar la función "Administración - Prueba y Corrección" integrada en el configurador.
También es importante que la base de datos que almacena la base de datos se respalde y restaure solo en su totalidad. Para ello, se recomienda utilizar Copia de reserva bases de datos integradas en el DBMS utilizado. Se puede hacer una copia de seguridad de la versión del archivo de la base de datos copiando el archivo 1Cv8.1CD.
El configurador tiene funcion especial: Administración - Descargar infobase. Se puede usar para subir a archivo especificado(subir archivo) todos los datos relacionados con la base de datos, y nada más. La función inversa "Cargar base de datos" le permite cargar todos los datos del archivo de carga en la base de datos actual en lugar de las existentes. Estas funciones también se pueden utilizar para realizar copias de seguridad de los datos de la base de datos tanto en versiones de archivo como de cliente-servidor.
La plataforma 1C es una herramienta de alto nivel para trabajar con bases de datos. En el caso general, el desarrollador no necesita pensar en qué y cómo sucede en el lado del DBMS, ya que la plataforma misma decide cuántas tablas creará y qué campos estarán dentro de ellas.
Sin embargo, en proyectos grandes, existe la necesidad de trabajar con datos directamente, por ejemplo, para analizar información con herramientas de terceros o, como en mi caso, integrar una base de datos con aplicaciones externas. En tal situación, es necesario tener una idea en qué campos de las tablas físicas buscar la información que necesitamos.
La función incorporada está diseñada solo para tal caso. Obtener Estructura de Almacenamiento de Base de Datos () que devuelve todos los datos necesarios como una tabla de valores. Además, algunos detalles (Campos e Índices) de esta tabla son en sí mismos tablas de valores.
Por un lado, es conveniente tener todos los datos en una estructura, pero, por otro lado, existen dificultades adicionales para transferir esta tabla al cliente (el método Load(), desafortunadamente, no carga tablas anidadas) . En vista de esto, es necesario recorrer todas las filas de la tabla en un ciclo, lo que, con grandes volúmenes, conduce a una ralentización del trabajo.
Debido a esto, la mejor opción sería pasar los nombres de los objetos de metadatos a la función para reducir la cantidad de datos devueltos. Sin embargo, no todas las tablas DBMS están asociadas con metadatos de configuración, por lo que la capacidad de ver Lista llena me fui
Funcionalidad de procesamiento
Cuando se activa un elemento del árbol de metadatos, se completará la lista de tablas, campos e índices. Al hacer doble clic en la raíz del árbol, se muestran todas las tablas, incluidas las tablas de servicio (no se recomienda, ya que aumenta la cantidad de datos que se buscan).
V partes tabulares los comandos estándar de búsqueda y lista funcionan.
Diferencias con las implementaciones existentes
Hay varias publicaciones similares, por ejemplo, y. Sin embargo, su desventaja es la falta de un árbol de metadatos, lo que dificulta la navegación. La búsqueda también se realiza nombrando tablas y campos en la base de datos, y no al revés.
El más cercano en funcionalidad a la publicación del autor (). A diferencia de ella, este procesamiento contiene el árbol más completo metadatos (planes de intercambio, constantes, registros de documentos, etc.). es más la estructura de datos se presenta más claramente: la lista de tablas del objeto de metadatos, la lista de campos y la lista de índices se muestran en partes tabulares separadas.
UPD-2018-01-06 (v1.3). Se corrigió un error que ocurría en el modo de compatibilidad 8.3.7 y superior (el comportamiento de la plataforma ha cambiado).
UPD-2012-08-17 (v1.2). Se ha realizado un parche para el correcto procesamiento de las tareas programadas, se ha solucionado el punto de visualización de planos de tipos de cálculo, se ha corregido el comportamiento al cambiar el tipo de estructura en la raíz de configuración.
PD Algunos empleadores preguntan sobre la cantidad de mesas físicas y virtuales para registros al solicitar un trabajo. Sería bueno saber las respuestas a estas preguntas, especialmente porque este es el nivel 1C: Profesional. Si desea no solo aprender esta respuesta, sino también "sentir" estas tablas, ¡entonces este procesamiento es para usted!