The 1C:Enterprise database model used by the developer of an applied solution has a number of features that make it different from classic DBMS models (e.g., based on relational tables) with which the developers in standard systems work.
The developer of the applied solutions works directly with 1C:Enterprise platform and can do the following:
- describe data structures in Designer;
- manipulate data with the help of script objects;
- create data queries.
The corresponding software layer of the 1C:Enterprise platform core supports query execution, data structure description, and data manipulation by transmitting these to the appropriate Microsoft SQL Server/IBM DB2/Oracle Database/PostgreSQL commands (for client/server mode) or to the commands of its native database management engine (for file mode).
Object-based and table-based data access methods
By default, 1C:Enterprise supports two methods for accessing data: an object-based method (for reading and writing) and a table-based method (for reading only). The developer of the applied solution can manipulate objects stored in a database as well as references to these objects and call data by using a table paradigm.
- In the object model, the developer operates with script objects. If this model is used for calling an object (e.g., a document), this object is called as a single whole: it is uploaded to the memory in full, together with the nested tables which you can call by means of a script as a collection of entries, etc. When data is manipulated in the 1C:Enterprise object model, it ensures the integrity and caching of objects and calls the appropriate event handlers.
- In a table model, a set of objects of a certain class is presented as a collection of tables that are related to each other and that can be called with the help of queries, either to a single table or to several connected tables.
Data types system integrated into the development environment
This is an important difference between the 1C:Enterprise domain-specific platform and generic software tools. Third-party DBMS are usually used in business applications created with generic development tools. Therefore, the developer will have constantly to monitor conversions between the data types supported by certain DBMS and the types supported by the programming language. 1C:Enterprise implements an end-to-end system of types: the developer uses the same methods to define database fields and script variables and to operate these.
Support of fields with composite types
1C:Enterprise supports a very important data model functionality – the ability to define several data types that can be stored in a single database field. At the same time, the system will only store one value at a time, but this value can be of different types: both reference and primitive ones (number, string, date, etc.). This option is very important for handling economic tasks: for instance, you can specify a legal entity from the organizations catalog or a physical person from the catalog of individuals as a Buyer in an invoice. Therefore, when a database is designed, the developer can define a field that will store values of any of these types.
Support for object tabular sections
This standard 1C:Enterprise functionality can be used to effectively and easily support a data arrangement method which is widely used in different economic tasks and to describe documents and catalogs with tabular sections, such as an invoice’s inventory description.
Dynamic selection mechanism
The system makes use of a powerful dynamic selection feature that can be used to view large lists that cannot otherwise be read into the memory in full with the minimum number of database calls. This is necessary if you need to set up user interaction with large catalogs or document lists. At the same time, no legacy methods that create a selection of database dynamic cursor types are used, as the mechanism provided by 1C:Enterprise is much more flexible, and the developer can use this mechanism to implement dynamic selections with search, filtering, and sorting capabilities (these can be set both interactively and with the help of a script).