About two years ago we published material about the 1C Enterprise server on the Linux platform, interest in this topic is still great. At the same time, a lot has changed, the 1C platform does not stand still, and most often the implementation goes beyond the simple repetition of instructions. This is not surprising, the 1C Enterprise server is a complex product, so we decided to start this series of articles aimed at a deeper study of the subject.

Before picking up a mouse and running to the server room, you should clearly understand necessary minimum knowledge, namely to have an idea about the structure of the 1C Enterprise server and its purpose individual components. Most of the problems during implementation are due to the fact that the 1C Enterprise server is perceived as a kind of monolithic formation in which all components are interconnected in a cunning way known to one developer. However, this is not the case, and today we will figure out what our server consists of and how it all works together.

I would like to emphasize once again the extreme importance of what will be discussed below. Without this knowledge, it will be difficult to achieve stable operation, not to mention diagnosing bottlenecks and increasing performance. As a result, a classic picture may turn out: it seems that the iron is powerful, everything is done according to the instructions, but it slows down. Unfortunately, most instructions for beginners (including ours) contain information only on how to do it, without focusing on what exactly is being done and why. So let's start fixing it.

The client-server version of 1C Enterprise is a three-level structure (the so-called "three-link"), which includes: a client, a 1C Enterprise server and a DBMS server. These are completely independent components that can be combined in any valid combination to achieve best result. Consider the following diagram:

Let's start with clients Current version platform (8.2) provides for the use of three types of clients. Let's analyze them in more detail.

fat client

This is a classic 1C client application, before the release of the 8.2 platform, it was the only available type of client. The scheme of operation of a thick client is as follows: the client application requests data from the 1C server, then, in turn, requests them from the database and sends them back to the client, on which they are processed. As you can see, this scheme is not optimal: the 1C server is essentially just a layer between the client and the database, all calculations take place on the client. This imposes increased requirements on client PCs, as computing power servers are not used. It should be clearly understood that in thick client mode you will not get an increase in performance from switching to the client-server version, perhaps even vice versa.

Thin Client

It can be called the main type of client application for the 8.2 platform, in theory, in practice, not everything is so smooth and we will return to this. The scheme of its work is radically different: the client requests data from the 1C server, it receives them from the database, processes and gives the result of the calculation to the client. In this case, the main computational load falls on the server, so there are no special requirements for client PCs and the channel from the client to the server.

Also thin client can work both over TCP/IP protocol local network, and via HTTP over the Internet. This requires another intermediary - a web server that transmits client requests to the 1C server, no data processing is performed on the web server, it is used exclusively as a transport. The advantages of a thin client are clear, it allows, in the presence of a powerful server, to significantly speed up the work with the program, and network traffic is also significantly reduced, which is very important for office networks.

Web client

Its existence logically follows from some properties of the thin client, indeed, if all requests are processed by the server, the transport is HTTP, then why not use the browser for work? The web client operation scheme is no different from the thin one, however, today not all functions supported by the thin client are implemented and work correctly in the web client. In part, this can be fixed in the configuration, in part, the mechanism for displaying information in the browser imposes restrictions. However, 1C has a web client and it works, and no one bothers you (again in theory) to work in the program while lying on the beach with a tablet.

Now about a fly in the ointment in a barrel of honey. For normal operation in thin and web client mode, the configuration must work in managed application mode and support all functions in this mode. The managed application mode is the main one for the 8.2 platform and is quite radically different from what it was before, including externally. A visually driven application can be distinguished by a new interface that features tabs and hyperlinks:

At least, unusual, especially in comparison with the classic interface, but do not rush to rejoice when you see new interface, Besides appearance, the configuration must support the execution of all its functionality on the server, it may well turn out that not all features will be available in thin and web client mode.

Today, only a part of typical configurations work in the managed application mode, such as: Small business management, Trade management 11, Retail 2 and Payroll and personnel management. These solutions can take full advantage of the new platform. Enterprise Accounting 2.0 does not use the managed application mode and will not work in thin and web clients, the same applies to many third-party solutions, such as Fireplace, etc.

conclusions

If possible, you should use a thin client, as this allows you to shift all calculations to the server side to work comfortably even on slow channels, incl. through the Internet. At the same time, it should be remembered that working in the Configurator mode is possible only through a thick client, which will also have to be used to work with configurations that have not yet been transferred to the managed application mode.

The web client should be used when it is not possible to use a thin one, for example, from someone else's PC on a business trip, while you should be prepared for the absence or incorrect operation of some functions.

Server cluster 1C

Having dealt with the clients, let's move on to the servers. The system provides for the use of three types of servers: 1C server, DBMS server and web server. It is important to understand that server data is completely independent of each other, this gives the system flexibility and allows rational use of computing resources.

Also, the system does not impose any requirements on platforms. You can share both Windows and Linux servers, Apache and IIS can be used as a web server, PostgreSQL, MS SQL Server, IBM DB2 and Oracle are supported from the DBMS. Therefore, no one bothers you to create a scheme in which the 1C server running on the Linux platform will work together with the database server under Windows control Server and IIS and vice versa. In addition, you can use several DBMS servers (as well as web servers) by placing different databases on different servers.

This approach allows you to flexibly combine, expand and change the existing configuration depending on current needs, while everything will be as transparent as possible for the end user. For example, you can move resource-intensive information security to separate server DBMS by changing only the database connection parameters in the server settings without affecting the client settings.

And finally, the most interesting: a cluster of 1C Enterprise servers. Yes, that's right, not a single server, but a cluster of servers. Usually, this is where misunderstandings begin, especially if there is only one server. However, everything falls into place if we take into account that the concept of a server cluster is primarily logical, however this approach easily allows you to scale the circuit to increase its performance or fault tolerance.

Any cluster consists of the Central server 1C Enterprise and working servers. In the simplest configuration, this will be the same physical server. However, if necessary, we can add additional working servers, the load on which will be balanced by the central server. This allows users to quickly and transparently increase the computing power of the system and increase fault tolerance. The cluster also does not impose requirements for platform homogeneity; it can include servers running both Windows and Linux.

What conclusions can be drawn from the above? Firstly, the client-server system 1C Enterprise is very flexible and allows you to optimally use the available computing resources to obtain the best result. Which configuration to choose depends on the specific tasks and the funds allocated for their solution.

For example, if you have a small load and you use a thick client and a configuration that does not support the managed application mode, it makes sense to combine a 1C server cluster and a DBMS server on one physical server, since it is very wasteful to allocate a separate machine for the layer between the client and the database.

Conversely, when using a managed application in thin client mode, it is better to separate the DBMS server and the server cluster into different servers, each of which will be optimized for its task.

Client-server operation- one of the options for the operation of the 1C: Enterprise 8 system.

The client-server version of work is intended for use in workgroups or across the enterprise. It is implemented on the basis of a three-tier client-server architecture.

The client-server architecture divides the entire working system into three different parts that interact in a certain way with each other:

The user's program (client application) interacts with the 1C:Enterprise 8 server cluster, and the cluster, if necessary, accesses the database server.

At the same time, the 1C:Enterprise 8 server cluster and the database server can be physically located both on the same computer and on different ones. This allows the administrator to distribute the load between servers if necessary.

Using a 1C:Enterprise 8 server cluster allows you to concentrate on it the most extensive data processing operations. For example, when executing even very complex queries, the program running at the user will receive only the selection it needs, and all intermediate processing will be performed on the server. It is usually much easier to increase the capacity of a server cluster than to upgrade the entire fleet of client machines.

Another important aspect of using a 3-tier architecture is ease of administration and streamlining user access to the infobase. In this option, the user does not need to be aware of the physical location of the configuration or database. All access is through a cluster of 1C:Enterprise 8 servers. When accessing an infobase, the user must specify only the cluster name and infobase name, and the system prompts for the user's name and password, respectively.

1C:Enterprise 8 uses the capabilities of the database management system to efficiently select information:

  • the query mechanism is focused on the maximum use of the DBMS for performing calculations and reporting,
  • viewing large dynamic lists is provided without performing a large number of database calls; at the same time, the user is provided with the possibility of effective search, as well as settings for selection and sorting.

Deploying the client-server option and administering it is quite simple. For example, the creation of a database is performed directly during the launch of the configurator (same as for the file version).

Client Applications

Work in the client-server version is possible both directly with the cluster and through a web server. In this case, in the case of a direct connection to the cluster, the thick client and thin client use the TCP/IP protocol. When connecting through a web server, the thin client and web client use the HTTP or HTTPS protocol.

Server cluster

The 1C:Enterprise 8 server cluster is the main component of the platform that provides interaction between users and the database management system in a client-server mode of operation. The presence of a cluster allows you to ensure uninterrupted, fault-tolerant, competitive work of a large number of users with large information bases.

Database server

As a database server can be used:

Server cluster administration

The delivery of the platform includes a set of various tools that allow the administrator to manage the composition of the cluster, infobases, and user connection.

Performing basic functionality on the server

All work with application objects, reading and writing the database is performed only on the server. Forms and command interface functionality is also implemented on the server.

On the server, the preparation of form data, the arrangement of elements, the recording of form data after the change is performed. On the client, a form already prepared on the server is displayed, data is entered and server calls are made to record the entered data and other necessary actions.

Similarly, the command interface is formed on the server and displayed on the client. Also, reports are generated entirely on the server and displayed on the client.

At the same time, the platform mechanisms are focused on minimizing the amount of data transferred to client computer. For example, the data of lists, tabular sections and reports are not transferred from the server immediately, but as they are viewed by the user.

The server runs:

  • database queries,
  • data recording,
  • Carrying out documents
  • various calculations,
  • performing processing,
  • Formation of reports,
  • Preparing forms for display.

The client runs:

  • Getting and opening forms,
  • Form display,
  • “Communication” with the user (warnings, questions…),
  • Small calculations in forms that require a quick response (for example, multiplying the price by the quantity),
  • Working with local files
  • Work with commercial equipment.

Using the built-in language on the client

You can manage the functionality of forms not only on the server, but also on the client. The built-in language is supported on the client. It is used in cases where it is necessary to perform calculations related to the form displayed on the screen, for example, quickly (without contacting the server) calculate the amount of a document line based on price and quantity; ask the user a question and process the answer; read file from file system computer and send it to the server.

However, the work of the built-in language on the client is supported to a strictly limited extent. Client procedures in modules are explicitly separated from server procedures, and they use a limited composition object model built-in language.

On the client, direct work with the database is not allowed. It is not allowed to work directly with application objects, for example, such types of the built-in language as DirectoryObject.<имя> . Queries are not allowed. If you need to call actions with data in client code, you need to call server procedures that will already access the data.

1C happens - file, server and web. What is the difference?

What are the options for installing 1C

So, 1C is divided into platform and configurations. What's what, we have repeatedly analyzed in previous issues.

Based on the 1C configuration, we create a database. The database contains directories and documents that users contribute.

For January, 2010 there are three variants of work 1C:

  • file 1C
  • network 1C (server 1C and client 1C)
  • web 1C (thin client 1C).

Also additional options:

  • for developers
  • to use 1C web services or 1C web extensions.

There are file 1C and network 1C, each of them is needed in its own case, so it’s not right to say unequivocally that network 1C is better than file 1C.

File 1C

The oldest version of 1C. The database is located in a folder on the computer's hard drive.

The folder with the database files can be either on your computer drive or on any public drive on the local network (such public drives are also called "balls").

In this case, it is enough to install the 1C platform on users' computers.

Network 1C

Also called "client-server 1C". This means that you need to install separately "client 1C" and separately "server 1C".

The database is stored in special program for database management.

Programs for managing databases that are supported by 1C: Microsoft SQL, Postgre SQL, Oracle (only 1C 8.2 supports the latter).

In this case, part of the 1C platform is installed on the server - "1C server". In the same place put the program of management of databases. The 1C platform and the special component "Access to the 1C server" are installed on computers.

Thin client 1C (managed application 1C)

Most new version. In this case, in addition to the client-server option, a web server is required. Web servers supported by 1C: Microsoft IIS, Apache.

A “1C server”, a database management program, a web server, and a “1C web server extension” component are installed on the server.

There are two options for users' computers:

Option 1: do not put anything - use any regular browser.

Option 2: install "thin client 1C".

An example of working with 1C through a web browser can be viewed here.

This is a real 1C base, which is installed on a server in the 1C company.

Additional option - for developers

When a group of developers is working on the development of a 1C configuration at the same time, it is necessary to install an add-on - the 1C SQL repository.

By default, only 1 programmer can work with the configuration at the same time. The repository allows for collaborative development.

The repository must be installed on a server or one of the developers' computers must be used as a repository server.

Additional option - 1C web services and 1C web extension

For example, in your office, accounting is kept on 1C: Enterprise. You also have a website. You would like the website to dynamically take certain data from 1C. This can be done using Web services. it additional component platforms 1C. It is included in the platform, you must check this box.

Web extension - an alternative mechanism for Web services - came earlier.

Why network 1C is better than file 1C

1) In the file version, the database is in one file. The file size in theory can be limited by FAT. It's hard to imagine today operating system on FAT - NTFS is used everywhere.

2) The mechanism for working with a database file in 1C is greatly simplified compared to SQL. In particular, it performs worse when the file size or the number of users increases (“starts to slow down”).

Therefore, when it comes to three to five users and a small base, this is exclusively file version. Base from 4GB and more than 10 users - you might think. Even more - definitely a client-server.

For training, of course, the file version is enough for us.

1C platform installation

In any organization where the number of users 1C 8.3 (or 8.2) is 10 or more, it is recommended to use the client-server version of work with large amounts of data. This option is based on the use of a third-party DBMS, for example, MS SQL server. Naturally, the client-server mode is difficult to imagine without a stand-alone server. But each company is unique, each has its own needs, therefore, the choice of a server must be approached with responsibility. In this article we will try to answer the question of how to choose a 1C server - both software and hardware. Choice is a very important point in development information system companies.

Without software, any computer is useless. Especially high-quality software is important in server hardware. It must meet the latest safety and reliability parameters. The 1C client application is multi-platform and available in almost all operating systems, including mobile systems. The server application supports two platforms - Linux and Windows.

There are five variants of the DBMS with which the 1C platform works:

Get 267 1C video lessons for free:

  • built-in DBMS of 1C 8.3 itself, the so-called file mode. The easiest way to work, can not boast of high security. Works on Windows and Linux OS. The database size limit is about 6-10 gigabytes;
  • MS SQL Serverthe best DBMS for 1C available on the market. According to many experts, SQL Server is generally the best software Microsoft firm. Requires a Windows operating system;
  • IBM DB2 Universal Database is a fairly reliable and secure database management system. Its peculiarity is in some nuances of information processing and the operation of system methods (for example, case sensitivity of string data). The quality of work is significantly affected by the skills and knowledge of the administrator. Supports Windows, Mac OS X, Linux;
  • Oracle Database- versioned DBMS, which in some cases gives an increase in performance. Supports Windows, Mac OS X, Linux;
  • PostgreSQL- also versioned. The most important advantage is the free distribution of the program. The qualification of the administrator greatly affects the speed of work. Recommended for a small number of users. Works on Windows, Mac OS X, Linux.

The choice of iron for 1C

Unlike software, choosing hardware is not easy. Consider the choice of server components for different numbers of users. The number of users is an abstract concept, the average figures for the workflow are taken. When selecting equipment, be sure to consider the amount of paperwork.

Up to 10 users

  • CPU: Intel Core i3 or Intel Xeon E3-12xx.
  • RAM: 4 gigabytes, they include 2 GB for the operating system and 2 gigabytes for the DBMS cache.
  • Disk subsystem
  • Network interfaces

Server 10 to 40

  • CPU: similar to Intel Xeon E3-12xx or AMD Opteron 4xxx.
  • RAM A: Usually 8-12 gigabytes is enough.
  • Disk subsystem A: An SSD + HDD combination is ideally desirable. But if there is no possibility, you can get by with the HDD.
  • Network interfaces: Usually all server applications are installed on the same machine.

from 40 to 70

  • CPU
  • RAM: 16 gigabytes, and 32 is better.
  • Disk subsystem: A traditional array of HDD SAS 15K rpm is sufficient.
  • Network interfaces: If the servers are on different machines, use the network with throughput 10 GB.

from 70 to 120

With so many users, it makes sense to distribute server applications to separate server machines.

  • CPU: Intel Xeon E5-26xx or AMD Opteron 62xx.
  • RAM: from 32 gigabytes.
  • Disk subsystem: RAID 10 of reliable server SSDs with mandatory hardware RAID controller.
  • Network interfaces: It is desirable to link a chain of servers into a network with a bandwidth of 10 Gb. Index files are recommended to be moved to a separate SSD, the temporary table TempDB - to 1-2 (RAID 1).

from 120 users

When choosing which server is needed for 1C, it should be remembered that while users work with it, many data read and write operations per second will be performed.

Most likely, it’s immediately clear why competent server design for 1C is so important - if the “hardware” was initially chosen incorrectly and does not correspond to the load on the system, then there is a risk that or even work intermittently, that important data will be lost. On the other hand, creating a server under 1C, buying all the hardware and software for it can cost a significant amount for the company, so it is advisable to select equipment in such a way as to avoid unnecessary costs.

Server selection for 1C

When our specialists need to make a configuration choice for the 1C server, the first thing they ask is how many users will work with 1C in the company and what set of services they plan to use, what they will be, who will administer the 1C servers and how. We start from this information when creating a 1C server.

Requirements for the server 1C

In the hardware structure of the 1C server, the characteristics of the processor will be important for us, random access memory, disk subsystem and network interfaces.

It is necessary that they ensure stable and sufficiently productive operation of the following components:

  • operating system;
  • database server (most often it is);
  • 1C server part (not for all cases, since a small company with 2-10 users can work with 1C in file mode);
  • user work in Remote Desktop mode;
  • work of remote users through a thin client or web client.

Choosing a processor for a 1C server

The optimal number of processor cores is usually calculated based on the fact that 1-2 cores need to be reserved for the operation of the OS, 1-2 cores for operation SQL databases, 1 more for the operation of the application server and approximately 1 core for every 8-10 simultaneous user sessions (so that users do not complain later that the 1C server slows down).

Please note that the speed of request processing depends not so much on the number of cores, but on the clock speed of the processor, and the number of cores affects the stability of work more with a large number of users and simultaneous tasks from them.

How much memory does a 1C server need

In addition to the above, if you need a 1C server for 100 or more users, we recommend deploying a cluster of at least two 1C physical servers.

We propose to calculate the amount of required RAM based on the following indicators:

  • 2 GB will be required for the operation of the operating system
  • at least 2 GB for the MS SQL Server cache, and it is better that this value is 20-30% of the actual volume of the database - this will ensure a comfortable user experience with it
  • 1 - 4 GB for 1C application server
  • 100 - 250 MB will require one user terminal session, depending on the set of functions of the 1C server, the configuration used

Here are our approximate calculations of the parameters of the server 1C 8.3:

It is better to purchase RAM with a margin - this is one of the most important factors in the high performance of a 1C server and at the same time it is now one of the cheapest components. If there is not enough memory on the 1C Enterprise server, this will be very noticeable during operation, therefore, when it comes to the question of which 1C server to choose, always pay attention to ensuring that it has enough RAM.

Server 1C: equipment for the disk subsystem

When choosing which server is needed for 1C, it should be remembered that while users work with it, many data read and write operations per second will be performed. This parameter is how fast HDD allows you to process data - it is also one of the key to the speed of the 1C server.

When designing a 1C server, we recommend that you comply with the following requirements for the disk subsystem equipment:

  • It doesn’t matter which server you create for 1C, in no case do we recommend using single disks in servers - it is advisable to organize them into RAID arrays (RAID 10 for large or RAID 1 for small databases), where the database tables will be located.
  • We recommend moving index files to a separate SSD for more quick access to them
  • TempDB - on 1-2 (RAID 1) SSDs.
  • Place OS and user data on RAID 1 of SSD/HDD.
  • Allocate a separate logical disk from the array for log files or physical disk SSD.
  • Use a hardware controller whenever possible - we have seen situations where a powerful and expensive server slowed down due to insufficient controller performance.

Server selection for 1C

In this article, we have provided some tips and approximate calculations on how to choose a server for 1C, we hope they will be useful to you.

In conclusion, let's add one more thing - you should not try to save money by using a user computer for a 1C server (as is often done in small companies) - user hardware is much less reliable and fault-tolerant than server hardware of similar performance. It is not worth risking the accounting system of your enterprise. If the purchase of a suitable hardware does not fit into your budget, perhaps you should consider deploying 1C in the cloud

If it is difficult for you to figure out which server to choose for 1C Enterprise 8.3, how to make a 1C server, because you have not encountered this task before, you can always contact a system integrator company so that experienced technical specialists will help you design, buy, install and set up a suitable server for 1C.