Server and clients
In the previous lesson you created a single procedure for handling multiple events and stored it to the common module named DocumentProcessing. You selected the Client and Server check boxes in the properties of this common module. Now let us discuss why 1C:Enterprise has clients and servers.
1C:Enterprise supports two operation modes: file mode and client/server mode.
The file mode is intended for a single user or a small number of users in a local network. In this mode all the infobase data (configuration, database, and administrative data) is located in a single file (fig. 5.46).
Fig. 5.46. File mode
The main purpose of the file mode is quick and easy installation and start. You might need it to review something or work on a specific task at home on a laptop. The file mode supports performing actual accounting operations but it does not offer the same level of scalability and data security options as offered by the client/server version. So if you handle accounting on your own or you have a small team, you do not need data protection from unauthorized use by other employees, and you have a relatively small volume of data, you can certainly work in the file mode. In other cases we recommend that you use the client/server mode.
The client/server mode is intended for use in workgroups or in the entire enterprise. This mode is based on a three-tier client/server architecture (fig. 5.47).
Fig. 5.47. Three-tier 1C:Enterprise architecture
The client/server mode is the primary mode in a multiuser environment with a large volume of data. It provides a complete range of features for scalability, administration, and data security. But it also requires significant installation and administration efforts.
Note that in physical sense the client and server parts of 1C:Enterprise can be located either on different computers or on a single one. The most important part is that a user does not have direct access to the database server, which ensures data security. And in the file mode the database is located in a shared network location available to all users.
1C:Enterprise is primarily intended for running in the client/server mode. And while right now you are developing your training configuration in the file mode, it will also work in the client/server mode without any extra efforts.
All applied solutions are capable of working in both modes and this does not require additional configuration modifications.
This is possible because a configuration is always developed for the client/server architecture. In 1C:Enterprise you simply cannot develop a configuration that cannot work in a client/server mode. And in the file mode the system emulates a server on a client computer.
The client/server architecture divides the entire system into three parts that interact with each other: client, 1C:Enterprise server, and database server.
A client application is a program that is a part of 1C:Enterprise. Its main purpose is providing the user interface and displaying data that users can modify. Besides, a client application can execute 1C:Enterprise script algorithms (custom developer-created algorithms) but it can handle a very limited range of 1C:Enterprise script types. This approach makes client applications very lean and not resource-consuming, they are capable of browsing the Internet and even running in a web browser environment.
Client applications interact with 1C:Enterprise server. 1C:Enterprise server is also a program and a part of 1C:Enterprise.
One of the main goals of this program is transferring requests from a client application to the database server and returning the results to the client.
Another server goal is execution of the vast majority of 1C:Enterprise script algorithms, preparation of data for displaying it in forms, reports, and so on. Hence, all the complicated calculations that involve direct operations with data are executed on the server. Note that almost the entire range of 1C:Enterprise script types is available on the server (interface-specific types are a natural exception because the server has no interface part as it does not interact with users, it only exchanges data with other programs: the client applications and the database server).
A database server is a program as well. But this program is not a part of 1C:Enterprise, it is a third-party software. Its major goal is arrangement and maintenance of databases where a database is a structured and organized data set that describes characteristics of some physical or virtual systems.
Currently 1C:Enterprise supports the following database servers:
- Microsoft SQL Server
- IBM DB2
- Oracle Database