Therefore, 1C:Enterprise provides a script for programming the business logic within the context of the 1C:Enterprise object model. The script is used to program the handlers of various events that change the state of system objects, i.e., user command handlers, document posting handlers, etc.
It is important to note that the script’s structural features correspond directly to the data structure design model implemented in 1C:Enterprise. Since the whole configuration development is based on standard system objects, the developer of applied solutions can use script objects that correspond to these system objects and are very functional and flexible.
Among the most important technological features of the script are the following:
- precompilation. Modules are converted to the native code before execution;
- caching compiled modules in the memory;
- soft typing: you can change the type of variables in the course of work;
- no programmatic description of configuration objects: the applied solution can manipulate objects integrated into the 1C:Enterprise platform as well as objects described by the developer in the process of visual construction of the system as metadata objects.
Designer: a workbench for application development
1C:Enterprise includes Designer — a powerful workbench for quick development and modification of applied solutions. Designer is included with almost all 1C:Enterprise products, and the users of these products have access to the same toolset as 1C staff.
The applied solution development tools supported by Designer include the following:
- Configuration tree, properties palette and configuration object editors: tools for describing metadata objects visually, i.e., entities that form the structure of the applied solution.
- Syntax Assistant.
- The wizards that automate the creation of certain elements of the applied solution, including the following:
- Query Wizard.
- Output Form Wizard.
- Register Records Wizard.
- Print Wizards.
- Input on Basis Wizard.
- Form Wizards (for various configuration objects).
- Menu Wizard.
- Format String Wizard.
- Template Wizard.
- Data Composition Appearance Template Wizard.
- Various editors, including the following:
- Form Editor.
- Text Editor (also used as a module editor).
- Spreadsheet Document Editor.
- HTML editor.
- User Interface Editor.
- Picture Editor.
- Screen Forms Editor.
- Global Search and Replace Mechanism.
- Text Templates Mechanism.
- Configuration Comparison and Merging Mechanism.
- Configuration Save/Load Mechanism.
- Group Development Mechanism.
- Supply and Support Mechanism.
- Installation Package Development Mechanism.
- Configuration Verification Mechanism.
- Configuration Dump/Restore Mechanism.
- Performance Meter.
- Interface Text Edit Mechanism.
- A number of other tools.
Configuration development and modification tools are not just for professional programmers and can be used by anybody. A low learning curve and user friendliness were the key factors taken into account during their development. Experience has shown that an experienced user is able to modify certain parts of the applied accounting solution easily and effectively.
Updating applied solutions
Availability of technologies for downtime-free industrial support and for update of the installed solutions is of utmost importance for the developers and users of accounting and management automation systems. A great deal of attention is paid to this level of service within 1C:Enterprise.
If the user has not modified the applied solution, 1C:Enterprise will install the updates provided by the developer (new releases, editions, versions) in fully automated mode.
Synchronization of changes
If the user has modified the applied solution, these changes will be synchronized with the update provided by the supplier of the initial standard solution, but the changes introduced by the user will be preserved.
Support options setup
This is a useful feature implemented in 1C:Enterprise 8 for standard solution suppliers to control how users change certain configuration objects. The supplier can define objects critical in terms of further centralized support — for example, if such modification would conflict with the accounting methods supported by the supplier. 1C:Enterprise 8 allows user modification of such objects only after the user performs the "cancel support" operation on the objects.
Multilevel support for applied solutions
In practice, the user may employ any of several 1C:Enterprise applications supplied and supported by different providers, both independently or simultaneously. For instance, the developers of specialized industry applications usually base them on standard 1C solutions. Multilevel support option is provided for such scenarios.
Comparing and merging applied solutions
The "compare and merge configurations" feature is supported in applied solution update mode. When the applied solution is updated, both changes introduced by the user in relation to the configuration supplied and the changes introduced by the supplier in the new release (as compared with the previous one) are shown.
The "compare and merge configurations" feature is of vital importance in the process of the development of applied solutions. It can be used to easily and correctly incorporate elements from other configurations into the application being developed, to synchronize the solutions under development, etc. Among the options supported by this feature are the following:
- Item-by-item comparison of metadata from both configurations. The comparison can be performed to the level of properties and single elements (procedures and controls).
- Building comparison reports.
- Visual comparison of modules and forms.
- Setup of merge modes: the developer can specify the priority with which the objects are to be included in the united configuration.
User rights system
The 1C:Enterprise user rights editor can be used to perform visual customization (with no coding) of the access rights in the configuration, define sets of roles, and define user rights in Entity/Role/Action dimensions. Therefore, the developer can "construct" the roles (manager, accountant, salesperson) and specify the rights to access certain entities for each role (for instance, a manager can edit the inventory catalog, while a salesperson can only view the catalog, etc.). You can, however, select multiple simultaneous roles for each user in the system.
Another important aspect of 1C:Enterprise is the support for both low-level and interactive access rights. Through the interactive rights setting feature, the developer can limit interactive user access to certain system objects but allow program access to these objects in the event that the permitted user actions initiate corresponding data processor. With this feature, the developer does not have to tediously program interfaces (by disabling certain menu items, buttons, etc.). Low-level rights fully block user access to certain objects or functions, regardless of the algorithms called.
1C:Enterprise supports software-based role/rights verification (from the script). Through this, the developer can enhance the rights differentiation system in accordance with the requirements of a certain applied solution by creating (programming) verifications that are not provided by the system automatically.
1C:Enterprise supports broad integration with different systems. The following integration technologies are available:
- processing of XML documents,
- interaction via COM connection,
- interaction through the Automation feature (Client and Server),
- use of HTTP, HTTPS, and FTP protocols,
- working with e-mail,
- exchange via text files, including sequential read for large text files,
- data exchange via DBF files.
1C:Enterprise 8 also employs COM-based feature to extend script functionality by developing external components using Visual C++, MS Visual Basic, and Borland Delphi.
These tools are successfully used by 1C developers and third parties to create a wide range of 1C:Enterprise-compatible applications and develop external components performing various functions like connecting to various devices, using Internet technologies, etc.
Among the examples are the following:
- XML schema generator for quick setup of data exchange between 1C:Enterprise applied solutions (configurations) or between the applications and other information systems.
- CommerceML, a Russian standard for XML exchange of business information developed by Microsoft, Intel, 1C, and a number of other Russian Internet companies.
- A standard for exchanging data between 1C:Enterprise and online banking systems.
- A wide range of solutions to integrate 1C:Enterprise with various retail equipment (cash machines, POS terminals, electronic scales, etc.). This is one of the best examples of how the external component technology is used to develop tools for 1C:Enterprise integration with various systems and devices.
- Solutions that support data exchange between 1C:Enterprise accounting software and information systems of the Ministry of Taxation of the Russian Federation and other public authorities.
Queries in 1C:Enterprirse 8 are used to fetch information from databases. In fact, a query is a request to the system to select certain information from a database. Often some additional operations with data are requested: data sometimes needs to be grouped, filtered, or calculated. For instance, you can use queries to select all the employees in a specific job position or find out the sales turnover by item during a given year, detailed up to the month.
1C:Enterprise query language is an SQL-based language with a large number of extensions that reflect the specifics of financial and economic tasks and greatly simplify business application development.
Among the most useful options are the following:
- Dereferencing of reference fields, i.e., calling fields via a period ("."). If table fields have a reference type and store references to the objects from another table, the developer may reference them via a period in his or her query. It is important to note that the system does not limit the number of nested levels of such references.
- Calling nested tables (tabular sections of documents and reference elements). The system supports calling nested tabular sections as if they were separate tables or whole fields of a single table. For instance, if we call an invoice (a document that contains a tabular section with the description of the inventory shipped), we can work with a tabular section as a separate table (and obtain records from different objects), or consider the heading entry as an invoice itself where field values are all entries of a nested table that are subordinate to this object.
- Automatic sorting. To specify the optimal order of data on the screen or in the report, in most cases the developer can simply set automatic order.
- Multidimensional and multilevel totals formation. Totals and subtotals are formed with groups and hierarchies being taken into account. Levels can be iterated arbitrarily with a subtotals calculation and correct totals calculation by time dimensions.
- Virtual tables support. The virtual tables provided by the system can be used to obtain complete data for most business tasks without any need to create complex queries. For instance, such a virtual table may present data on inventory balances for different periods as of a particular moment in time. At the same time, virtual tables use the stored information as much as possible, i.e., previously calculated totals, etc.
- Of course, standard SQL operations, such as Union, Join, etc. are supported in 1C:Enterprise query language.