Modelo de base de datos
El modelo de base de datos de 1C:Enterprise utilizado por un desarrollador de una aplicación tiene una serie de características que lo diferencian de los modelos clásicos de DBMS (por ejemplo, basados en tablas relacionales), habituales para los desarrolladores de sistemas estándar.
Desarrolladores de aplicaciones interactúan directamente con la plataforma 1C:Enterprise y pueden realizar lo siguiente:
- describir estructuras de datos en el Designer;
- manipular datos mediante objetos de script;
- crear solicitudes de datos.
La capa de software correspondiente del núcleo de la plataforma 1C:Enterprise admite la ejecución de solicitudes, la descripción de la estructura de datos y la manipulación de datos, transmitiendo estas operaciones a los comandos respectivos de Microsoft SQL Server/IBM DB2/Oracle Database/PostgreSQL (para el modo cliente/servidor) o a los comandos de su propio motor de gestión de bases de datos (para el modo de archivo).
Métodos de acceso basado en objetos y en tablas
Por defecto, 1C:Enterprise admite dos métodos de acceso a datos: método basado en objetos (para lectura y escritura) y método basado en tablas (solo para lectura). El desarrollador de la aplicación puede manipular los objetos almacenados en la base de datos, así como las referencias a estos objetos, y consultar datos utilizando el paradigma de tablas.
- En el modelo de objetos el desarrollador opera con objetos de script. Si este modelo se utiliza para llamar a un objeto (por ejemplo, un documento), dicho objeto se llama como un todo único: se carga en la memoria por completo, junto con las tablas anidadas a las que se puede acceder mediante un script como una colección de registros, etc. Al manipular datos en el modelo de objetos de 1C:Enterprise, el sistema garantiza la integridad y el almacenamiento en caché de los objetos, llamando asimismo los respectivos manipuladores de eventos.
- En un modelo de tablas un conjunto de objetos de cierta clase se presenta como una colección de tablas relacionadas entre sí, a las cuales se puede acceder mediante solicitudes, ya sea a una sola tabla o a varias tablas vinculadas.
Sistema de tipos de datos integrado en el entorno de desarrollo
Es una diferencia importante entre la plataforma especializada de 1C:Enterprise y las herramientas de software genéricas. Los DBMS de terceros se utilizan habitualmente en las aplicaciones de negocio creadas con herramientas de desarrollo genéricas. Así, el desarrollador tendrá que controlar constantemente las conversiones entre los tipos de datos admitidos por cierto DBMS y los tipos admitidos por el lenguaje de programación. 1C:Enterprise implementa un sistema de tipos de extremo a extremo: el desarrollador utiliza los mismos métodos para definir los campos de la base de datos y las variables de script, así como para manipularlos.
Soporte de campos de tipos compuestos
1C:Enterprise admite una función del modelo de datos muy importante: la capacidad de definir varios tipos de datos que pueden almacenarse en un solo campo de la base de datos. Al mismo tiempo, el sistema solo guardará un valor a la vez, pero este valor puede ser de diferentes tipos: tanto de referencia como primitivo (número, línea, fecha, etc.). Esta opción es muy importante para gestionar tareas económicas: por ejemplo, en una factura se puede especificar como Comprador a una entidad empresarial del catálogo de organizaciones o a una persona física del catálogo de particulares. Así, al diseñar una base de datos, el desarrollador puede definir un campo que guardará valores de cualquiera de estos tipos.
Soporte de secciones tabulares de objetos
Esta función estándar de 1C:Enterprise puede utilizarse para admitir de manera eficaz y sencilla un método de organización de datos que se usa ampliamente en diferentes tareas económicas, así como para describir documentos y catálogos con secciones tabulares, tales como la descripción del inventario en una factura.
Mecanismo de selección dinámica
El sistema utiliza una potente función de selección dinámica que puede usarse para ver listas extensas, las cuales de otro modo no podrían cargarse por completo en la memoria, con el mínimo número de llamadas a la base de datos. Resulta indispensable si se requiere configurar la interacción del usuario con catálogos o listas de documentos extensos. Al mismo tiempo, no se utilizan métodos heredados que crean una selección de tipos de cursores dinámicos de base de datos, ya que el mecanismo ofrecido por 1C:Enterprise es mucho más flexible, y el desarrollador puede usar este mecanismo para implementar selecciones dinámicas con capacidades de búsqueda, filtrado y ordenación (se puede configurarlas tanto interactivamente como mediante un script).