Menu
Is free
registration
home  /  ON/ We need a server 1c of the enterprise. Solutions

We need a server 1c of the enterprise. Solutions

To date, the 1C financial product has grown from an accounting software application for accounting into a wide-format complex for accounting and maintenance of almost any type of business, claiming to compete with the world "monsters" SAP R / 3 and Microsoft Dynamics AX (Axapta).

Russian companies are increasingly organizing their business processes using modern configurations 1C 8.3 "Trade Management", "Production Management", "ERP Enterprise Management" and the like. The departments of accounting, marketing, production, sales are transferred to 1C, integration with IP-telephony and workflow systems is being carried out. However, immediately after the intentions “let's work in 1C” questions arise - on what resources will the central 1C base work, what “hardware” will show the optimal result for a reasonable budget? It is easier for giants of the public sector in this situation - a clear command has been given to numerous full-time IT integrators and architects, mechanisms of large-budget tenders have begun, with the obligatory condition of providing a "turnkey" concept and further support of the system by certified specialists. But what about companies that want to purchase and install one of the 1C: Enterprise products themselves, spending the budget wisely?

The most basic mistake, if you do not take into account the use of pirated or unverified software, is saving on hardware for 1C. These trends are especially common in startups and small companies. There is an opinion that it is not necessary to buy expensive server equipment with Intel Xeon processors, there is no need to pre-calculate the amount of RAM, the load on the CPU and the disk subsystem, that there is no need to create redundancy of disk arrays (Raid), use professional disk controllers with Cache-RAM and etc. Errors in the calculations of IT architecture for 1C lead to sad consequences, which the company learns about after stopping business processes. Therefore, it is very important to pay attention to each hardware node of the server platform for 1C.

Examples of typical problems due to improper construction of IT architecture for 1C:
  • "Slowdown" of the base and 1C interfaces due to excessive load on key resources (usually RAM or disk subsystem).
  • Errors and "crashes" of the 1C program due to the instability of the incorrectly selected equipment.
  • Downtime of the company due to the failure of the central hardware.
  • Partial or complete loss of 1C data due to random failures of hardware components or software.

1C server hardware resources

Consider below the most key hardware resources, a mistake in the choice of which can ruin the entire enterprise automation project when you create a server for 1C on your own.

Central processing unit (CPU)

The number of physical CPU cores. The topic of eternal disputes on all kinds of forums on 1C - which is more important CPU frequency or multicore. The roots of these contradictions go back to 1C 8.0 or even 1C 7.7. Indeed, the 1C executable processes of earlier versions were purely single-core, i.e. no matter how many cores the central processor provides - the 1C 8.0 enterprise server service or the 1C 7.7 thick client always occupied only one “zero” core in the operating system. Today the picture has changed - the operating system boldly distributes the tasks of one 1C: Enterprise process (rphost) across several CPU cores (see Figure 1).




Figure 1 - CPU load during 1C server processes.


But this does not mean at all that if you buy a processor with the maximum number of cores, then a 1C server paired with a DBMS (most often a DBMS means MS SQL) will show fantastic performance and rewriting accounting periods in 1C will be a matter of a few minutes. You need to understand the difference between the speed of performing one operation and the process of simultaneous processing of a large amount of information. The number of physical cores just allows you to solve the issue of stability and performance of simultaneous work with many different tasks by the 1C: Enterprise server and the DBMS. Hence the conclusion - the more the number of 1C users, the more the required number of cores will play a role for the comfortable simultaneous work of these same users. The dependence of the number of users on the number of cores for the 1C server is shown in Table 1.


The number of concurrent users on the 1C: Enterprise server Processor type and model Number of cores used
Up to 10 users Custom Intel Core from 3.1Ghz No more than 2-4
Up to 20 users Server Intel Xeon from 2.4 Ghz 4 to 6
Up to 30 users Server Intel Xeon from 2.6 Ghz 6 to 8 cores
Up to 50 users Server Intel Xeon from 2.4 Ghz - in the amount of 2 pieces 4 for each processor

Table 1 - The ratio of the number of users on the 1C server and the recommended number of CPU cores.


CPU frequency. In contrast to the number of cores, the frequency of the central processor affects exactly the processing speed of one piece of the job at one time, which is the most popular criterion for end users of 1C. The processor frequency is exactly the parameter, with an increase in which, for an individual user, the speed of processing requests by the 1C server and the DBMS will increase and the time during which the system will provide the final result to the end user will decrease. In confirmation of this, the well-known specialist Gilev, in one of his articles, based on practical tests, made an unambiguous conclusion - "the speed of 1C is much more influenced by the frequency of the central processor than its other parameters, whether it is an end client 1C or a server 1C: Enterprise." This is the architecture of the 1C program.

Cache, virtualization and hyper threading. In the past, when multi-core processors were not yet so widespread, Intel invented a special CPU technology that mimics multi-core, the so-called "hyper-threading". Once enabled, one physical processor (one physical core) is defined by the operating system as two separate processors (two logical cores). We recommend disabling hyper-threading for the 1C server. This technology does not bring any acceleration of the work of 1C.

When using virtual machines for a 1C: Enterprise server and a DBMS, you need to take into account that virtual machine kernels are "weaker" than real physical kernels, although they are called the same - "kernels". There are no exact official coefficients, but articles on Microsoft technical portals recommend counting 4-6 processor cores in a virtual machine per physical core.

Cache is cache memory used by the processor to reduce the average access time to computer memory. In fact, it is an integral part of the processor, since it is located on the same die and is part of the functional blocks. Everything is very clear here - the larger the cache size, the larger "pieces" of information the processor can process. Usually the size of the cache depends on the processor model - the more expensive the model, the more cache memory there is usually. However, we do not believe that the size of the processor's cache dramatically affects the performance of the 1C server and the DBMS. Rather, it refers to the area of ​​"fine tuning".

Processor type. Everyone knows that hardware is divided into server and user. Is it possible in some cases to use an inexpensive custom CPU as an alternative to a professional but expensive server CPU? It turns out - you can. Let's consider a table comparing the main parameters of two variants of Intel central processors (see table 2).

Custom Intel® Core ™ i7-6700T Processor (8M Cache, up to 3.60 GHz) Server Intel® Xeon® Processor E5-2680 v2 (25M Cache, 2.80 GHz)
Cache memory 8 MB 25 MB
System bus frequency 8 GT / s DMI3 8 GT / s QPI
Command set 64-bit SSE4.1 / 4.2, AVX 2.0 64-bit AVX 2.0
Number of Cores 4 10
CPU base clock speed 2.8 GHz 2.8 GHz
Max. amount and type of RAM 64 GB non-ECC 768 GB ECC
Estimated cost 354$ 1 280$

Table 2 - Comparison of the main parameters of a home and server CPU from Intel.


As we can see, the server processor has much higher values ​​in the number of cores, in the amount of cache, support for more RAM and, of course, at a higher price. However, the server CPU practically does not differ from the user CPU in support of certain processor commands (instructions) and in the clock frequency. Hence, we can conclude that for small organizations it is quite acceptable to use a custom CPU for the 1C: Enterprise server. The only question is that a custom processor cannot be installed in a socket on a server motherboard and support server RAM with parity check (ECC), and the use of custom components entails risks of stability of the entire system as a whole.

Random access memory (RAM)

RAM type. The RAM (RAM) bar differs in its purpose - for multi-user server systems or for personal devices - PCs, laptops, nettops, thin clients, etc. As in the case of the CPU - the main parameters of the RAM modules are roughly equivalent - modern PC RAM practically does not lag behind the server RAM either in the amount of one bar, or in the clock frequency, or in the type of DDR modules. Differences between server RAM and "home" RAM in the use and purpose of the hardware platform - hence its higher cost is formed:

  • Server RAM has ECC parity (Error Correction Code) - an encoding / decoding technique that allows you to correct errors in information processing directly by the RAM module
  • The server motherboard has many more connectors for installing RAM modules than a regular PC
  • Server RAM contains registers (buffers) that provide data buffering (partial Registered or full Full Buffered), thereby reducing the load on the memory controller with many simultaneous requests. Buffered FB-DIMMs are incompatible with unbuffered.
  • Register memory modules also allow for increased memory scalability - the presence of registers makes it possible to install more modules in one channel.

We can conclude that the use of server RAM modules makes it possible to install large amounts of RAM in one system, and ECC parity control techniques and the use of buffers allow the server operating system to work stably and quickly.

The amount of RAM. One of the key factors for the high performance of the 1C server and the DBMS is a sufficient amount of RAM. Of course, the actual needs for RAM depend on many factors - the type of 1C configuration, the number of 1C: Enterprise server processes, the size of the DBMS database, and so on. However, you can deduce an approximate dependence of the amount of RAM on the number of users (see table 3).


The need for RAM for server 1c and DBMS Up to 10 users Up to 20 users Up to 30 users Up to 50 users
Server 1c: Enterprise 4-6 GB 6-8 GB 12-14 GB 18-24 GB
MS SQL Server 4-6 GB 8-10 GB 16-18 GB 24-28 GB

Table 3 - The approximate ratio of the number of users of the 1C server and the recommended RAM for the processes of the 1C: Enterprise server and the MS SQL server.


Regarding the processes of the 1C server: Enterprise (rphost.exe) - modern 1C platforms do not allow manually specifying the number of 1C server processes. Instead, the system requires setting parameters, such as the number of infobases and the number of users per rphost.exe process, after which it automatically determines the optimal number of 1C: Enterprise server processes. You can also configure the smooth release of RAM by the rphost.exe process if its volume exceeds a predetermined threshold. At the same time, the 1C server creates a new rphost.exe process, which gradually takes over the 1C tasks, allowing to unload the required 1C process.

It should also be noted that the amount of RAM allocated to the SQL service is considered sufficient if the SQL data hit in the cache is at least 90%. This metric is quite convenient because you cannot simply see the amount of RAM consumed by the SQL server - the latest releases of SQL have dynamically consumed RAM - the maximum possible amount of RAM is captured and freed as other processes request RAM.

RAM frequency. In short, this is the bandwidth of the channels through which data is transmitted to the motherboard, and from there to the processor. It is desirable that this parameter coincides with the permissible frequency of the motherboard or exceeds it, otherwise the RAM transmission channel risks becoming a "bottleneck". Within the framework of one type of DDR, increasing / decreasing the frequency does not drastically affect the performance of the 1C server and refers more to the area of ​​"fine tuning".

RAM timings. This is Latency or Latency of RAM. This parameter is characterized by the data delay time when switching between different modules of the RAM microcircuit. Smaller values ​​mean faster performance. However, the impact on the overall performance of the server system, and even more so on the 1C: Enterprise server, is not high. Usually, only gamers and overclockers pay attention to these parameters, for whom every extra drop of performance is the most expensive.

Disk subsystem and hard drives HDD

Hard disk controllers. The main device for connecting and organizing hard drives in a hardware system is the hard drive controller. It is of two types:

1. Built-in - the controller module is built into the system, the hard drive cage is connected directly to the motherboard. It is considered a more economical solution.

2. External - is a separate printed circuit board (device) that is connected to the motherboard connector. It is considered a more professional solution due to the fact that it has separate chips for conducting and controlling operations with hard drives HDD. Recommended for important server systems, such as 1C: Enterprise server and DBMS.

There is also a third type - a device for receiving / transmitting block data via iSCSI, FiberChanel, InfiniBand, SAS channels. However, in this embodiment, the disk subsystem is "taken out" on a separate storage device (DSS), which is connected to the server via an optical or copper cable. In our article, we analyze the requirements for an autonomous server for 1C, so we will not consider this type.

Types and levels of RAID arrays. It is a data virtualization technology that combines multiple disks into a logical unit for redundancy and improved performance. Let's take a look at the most popular levels of the RAID specification:

  • RAID 0 (“Striping”) it has no redundancy, and distributes information at once over all disks included in the array in the form of small blocks ("stripes"). This significantly improves performance, but compromises reliability. We do not recommend using this array type despite the performance improvements.
  • RAID 1 (“Mirroring”). It has protection against failure of half of the available hardware (in the general case, one of the two hard drives), provides an acceptable write speed and a gain in read speed due to parallelization of requests. This type of array will quite "pull" a 1C + DBMS server up to 25-30 users, especially if SAS 15K drives or SSDs are used.
  • RAID 10. The mirrored pairs of drives are arranged in a "chain", so the resulting volume can exceed the capacity of a single hard drive. In our opinion, the most successful type of disk array, since it combines the reliability of RAID1 and the speed of RAID 0. In combination with 15K SAS drives or SSD it can be used for 1C servers from 40-50 users.
  • RAID 5. Famous for its economy. By sacrificing the capacity of just one drive from the array for the sake of redundancy, we get protection against failure of any of the hard drives in the system. (Its RAID 6 variation requires two extra hard drives to accommodate the checksums, but retains data even if two drives fail). This type of array is economical, reliable and has a fairly noticeable read performance. Unfortunately, the bottleneck of this array is the low write speed, which makes it comfortable to use with 1C server configurations for up to 15-20 users. It is also optimal for applied purposes - storing file data, document flow archives, etc.

Hard disk interface types. By the type of connection, hard drives are divided:

  • HDD Sata Home. The cheapest version of hard drives designed for use in home PCs or networked media centers. It is strongly discouraged to use such devices in 1c servers due to the low fault tolerance and stability of operation - the components of these drives are simply not designed for 24/7 operation and quickly fail.
  • HDD Sata Server. This name usually refers to hard drives with a Sata interface and a spindle rotation speed of 7,200 rpm. The "Server" prefix means that such drives have been tested for operability in server systems and are designed to operate stable 24/7. They are usually used in 1C servers to store large amounts of information that does not require high processing speed. For example - 1c archive databases, exchange folders, office documents upload files, etc.
  • HDD SAS Server. There are several differences between the SAS interface (the modern analogue of SCSI) and the Sata interface. This is the average disk response time, and work in a shared disk shelf, and work with the HDD controller at higher data exchange rates - up to 6 Gb / s (compared to Sata 3 Gb / s). But the main advantage is the existence of SAS-disk models with a spindle rotation speed of 15,000 rpm. It is this design feature that allows SAS drives to perform almost 3 times more I / O operations per second compared to HDD Sata Server. Such SAS disks have a small volume and are recommended to be used for basic 1c databases with a constantly high workload.
  • SSD drives. These disks differ from the previous ones not in the connection interface, but in their design - they are solid-state and have no moving parts, i.e. in their essence are analogs of "flash drives". Such technologies allow SSD-disks to produce "prohibitive" number of I / O operations per second (from 10,000 operations on the simplest SSD models). However, this advantage also has a downside - the higher price of SSD-drives and the "threshold of their life", which depends on the limit of the number of writes to the SSD blocks. However, every year these discs are becoming more affordable and durable. Since the cost of SSD disks increases many times depending on the volume, it would be most reasonable to use them for small, but super-loaded 1c databases, requiring high access speed, as well as for temporary databases of the TempDB DBMS.

IOPS is the number of input-output operations per second. In fact, IOPS is the number of blocks of information that can be read or written to a medium in 1 second of time. That is, in its pure form - this is the key parameter of the speed of information processing by the hard disk, affecting the performance of the 1C server. If we take for comparison a standard block of information 4kb, then we can roughly single out the following IOPS indicators (see table 4).


HDD IOPS Interface
7,200 rpm SATA drives ~ 75-100 IOPS SATA 3Gb / s
10,000 rpm SATA drives ~ 125-150 IOPS SATA 3Gb / s
10,000 rpm SAS drives ~ 140 IOPS SAS
15,000 rpm SAS drives ~ 175-210 IOPS SAS
SSD drives From 8,000 IOPS SAS or SATA

Table 4 - Indicators of IOPS on various types of hard disks when working with a 4KB data block.


Of course, in its pure form, IOPS is not very useful for calculating the final calculations and requirements for the disk subsystem of the 1C server. After all, the total performance of a disk subsystem is made up of the type of RAID array, disk types and indicators of the speed of its interface, response time (Latency), random access time, the percentage of read and write operations, and many other factors. However, this parameter, in our opinion, is a key indicator of the speed of the disk subsystem and at the stages of developing a server architecture, it helps to determine which type of hard disks will generally be most suitable for certain needs. (see RAID calculator)

Practical test

What is the relationship between the number of 1C users and the number of iops? Our team conducted a practical test (see table 5) to measure the load on the disk subsystem with a certain number of 1C sessions. Since the 1C system is a programmable environment and each company can have its own set of business processes in 1C, we needed to be linked to a certain reference configuration for testing. In this capacity, a specialized configuration of the MCC 1C, developed for testing and debugging, was chosen. On its basis, our 1C programmers have added a number of requests that simulate the normal operation of an ordinary enterprise, with the formation of accounting inquiries, postings, drawing up reports and conducting operational documents.


System disk Database disk
Iteration Users IOPS write IOPS read IOPS write IOPS read
Average values
1 12 9,1 0,1 13,1 1,5
2 20 7,9 0,1 21,8 0,4
3 32 5,2 0,006 36,1 5,2
4 40 7,7 0,013 27,52 1,3
5 52 7,7 0,006 32,04 0,94

Table 5 - Results of a practical test on the load on the disk subsystem.


The test results show that the lion's share of the load on the disk subsystem occurs when 1C is written to the DBMS server database and to the operating system disk (on which the 1C: Enterprise cache server files are located by default).

In parallel, we carried out practical measurements of already operating bases of 1C UPP 8.2 during the test period - 5 working days. They show that, on average, a 1C + DBMS server consumes twice as much iops “for writing” as “for reading”. This difference between synthetic tests and statistics for monitoring a real 1C server is due to both periodic sampling of information data from the database during the working day, and regular reading of the database when backing up or replicating the DBMS.

Other parts of the hard drive to look out for.

  • Physical size (form factor). Today, almost all known drives for personal computers and servers are 3.5 or 2.5 inches in size. Note that 2.5-inch disks are not produced in large volumes.
  • Random access time- the time during which the hard disk is guaranteed to perform a read-write operation on a certain area of ​​the magnetic disk. As a rule, server drives have better results. This is a rather important parameter when building an array of disks for a 1C DBMS server.
  • Spindle speed- the number of revolutions of the hard disk spindle per minute. Everything here is simple and clear - the access time and the average data transfer rate of the hard disk depend on the speed of rotation of the spindle with magnetic platters.
  • Hard disk buffer size- a buffer is a temporary memory designed to smooth out differences in the read / write speed of the hard disk and data transfer via the interface.
  • Reliability- is defined as mean time between failures (MTBF). Typically, reliability directly depends on the manufacturer, price and environment of use of the hard drive. We consider reliability to be an important parameter of a hard disk that affects the quality of 1C server operation.

The right choice: home or server hardware

The cheapening of hardware components and the active growth of the potential capacities of "home computers" lead to yet another pernicious delusion - small businesses are actively using workstations as a platform for collaboration with 1C databases. At the same time, without realizing that in addition to the parameters of the core frequency, memory size and the possibility of using budget SSD-drives in a regular PC, there are more systemic, deeper and more important requirements for the operation of hardware in a commercial structure (see Table 6).

To resolve the issue of organizing a 1C server, we offer rental of 1C cloud servers in Tier III data centers. The economic feasibility of choosing a server lease can be found in the article.


Options Server Personal Computer
Sufficiency of computing power V V
Guaranteed system uptime 24/7 V X
Reliability and stability of key hardware components V X
Remote Power & Console Management (IPMI) capability V X
Budget cost of hardware platform X V

Table 6 - Comparison of home and server hardware according to the criteria required for high-quality 1C server operation.

Fail-safe operation of 1C

Undoubtedly, one of the important requirements for the server part of 1C is the stability of its operation and resilience to failures. Microsoft and 1C itself have made a lot of efforts in this direction, creating technologies for clustering their services at a fairly serious level (see table 7).


Fault tolerance of SQL servers Based on the concept of a single shared data warehouse. Built-in SQL Server clustering technology combines two SQL servers into one cluster with a single virtual IP address and a single base. Thus, if the main SQL fails, the queries are automatically transferred to the backup.
The second option is the recently introduced AlwaysOn, a technology for automatic regular database replication between the primary and standby SQL servers. At the same time, the duplicate SQL server is physically located on a different storage, which increases resilience to risks
Fault tolerance of the 1C: Enterprise server service 1C Enterprise servers are combined into an active-active software failover cluster with automatic failover and saving current sessions.

Table 7 - Fault tolerance of SQL and 1C servers.


However, each technology has both pros and cons. In addition to the key advantages, you need to know some of the features of 1C and SQL () clustering in order not to end up with a deterioration in service performance:

  • SQL clustering uses virtual IP. This means that the interaction between the 1C: Enterprise server and MS SQL will always take place via the network interface, even if both services are in the same operating system. Which, accordingly, will lead to a slowdown in the work of 1C in comparison with the classic version of the architecture recommended by 1C itself - using shared memory Shared Memory. In principle, this hindrance can be "bypassed" by using, for example, the MS SQL Log Shipping technology. However, in this case, switching to the standby SQL server will no longer be automatic and this option cannot be considered a full-fledged cluster.
  • SQL Cluster is a big budget investment. If we are talking about classical clustering of MS SQL service, a unified database storage connected to the main and backup SQL servers is required. Usually, this role is played by expensive storage systems, which increases the budget by an order of magnitude. If we are talking about the newfangled AlwaysOn, then a unified database storage is not required, the technology works with local disks of the primary and backup servers over the network. Instead, it requires an Enterprise version of SQL Server, which costs 4 times more than a regular SQL Server StandarD license.
  • Number of licenses. Despite the fact that the second SQL server does not process data and is in reserve, licenses will need to be purchased for both servers - both the primary and the backup. Particularly budget painful are SQL Server Enterprise licenses for implementing a distributed cluster of AlwaysOn High Availability Groups.
  • You don't need to use cheap custom hardware for a service as important as an enterprise-wide accounting system. In this case, the price directly determines the quality, stability and durability of such a platform.
  • When choosing a server platform, we recommend that you pay attention to the presence of two power supplies, a remote IPMI card and the manufacturer's brand. Of course, everyone chooses a solution based on their budget, top brands are sometimes too expensive and not entirely appropriate, but you shouldn't really save on the manufacturer, this can lead to uncontrollable force majeure in working with 1C. We personally use Supermicro server platforms in conjunction with Intel server CPUs.
  • There is an opinion, confirmed by practice, that 1C performance depends more on a higher CPU frequency than on the number of cores provided.
  • There is no need to save on the amount of RAM allocated for the 1C server and the SQL service. At the moment, RAM is a fairly cheap resource, and its shortage (even by 10-15 percent) will lead to a strong drop in the performance of the 1C system, because the slower swap system will turn on. Plus, swap will put additional load on the disk subsystem, which will further worsen the situation.
  • EFSOL offers comprehensive services for the selection of a 1C server, which includes: 1C server design, purchase, configuration and maintenance.
  • An alternative to your own creation of a 1C server option is to rent a server for 1C. Cloud technologies allow, at low monthly costs, to get a reliable fault-tolerant service for comfortable work in 1C.

System integration. Consulting

When choosing which server is needed for 1C, it should be remembered that while users are working with it, many operations of reading and writing data per second will be performed.

Most likely, it is immediately clear why it is so important to correctly design a server for 1C - if the hardware was initially selected 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 for 1C, buying all the hardware and software for it can cost a significant amount for the company, so it is advisable to select equipment so as to avoid unnecessary costs.

Choosing a server for 1C

When our specialists need to make a choice of configuration for a 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 and how will administer the 1C servers. We are based on this information when creating a 1C server.

Server requirements 1C

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

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

  • operating system;
  • database server (most often it is);
  • server part of 1C (not for all cases, since a small company for 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 a 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 OS operation, 1-2 cores for the operation of the SQL database, another 1 for the operation of the application server and approximately 1 core for every 8-10 concurrent 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 as on the processor clock speed, and the number of cores has a greater impact on the stability of work with a large number of users and simultaneous tasks from them.

How much memory does 1C server need?

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

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

  • 2 GB is required for the operation of the operating system
  • at least 2 GB for the operation of the MS SQL Server cache, and it is better that this value be 20-30% of the real volume of the database - this will ensure a comfortable work of users 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

Let's give our approximate calculations of the parameters of the 1C 8.3 server:

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, it will be very noticeable during operation, therefore, when the question is, which 1C server to choose, always pay attention to the fact that it has enough RAM.

Server 1C: hardware for the disk subsystem

When choosing which server is needed for 1C, it should be remembered that while users are working with it, many operations of reading and writing data per second will be performed. This parameter - at what speed the hard disk can process data - is also one of the key parameters for the 1C server performance.

When designing a 1C server, the requirements for the hardware of the disk subsystem, we advise you to observe the following:

  • It doesn't matter what server you create for 1C, we in no case 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 the index files to a separate SSD for faster access to them.
  • TempDB - 1-2 (RAID 1) SSD.
  • Place OS and user data on RAID 1 from SSD / HDD.
  • Allocate a separate logical drive from the array or a physical SSD drive for log files.
  • Use a hardware controller whenever possible - we have seen situations when 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 rough calculations on how to choose a server for 1C, we hope they will be useful for you.

In conclusion, we add one more thing - you should not try to save money using a user computer for the 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 purchasing the right hardware does not fit your budget, you may need to consider deploying 1C in the cloud.

If you find it difficult to navigate which server to choose for 1C Enterprise 8.3, how to make a 1C server, because you have not faced this task before, you can always contact a system integrator company so that experienced technicians can help you design, buy, install and set up a server suitable for you for 1C.

In most cases, to install 1C: Enterprise 8.x in the "client-server" option, it is enough to run the 1C: Enterprise 8.x setup program. In this case, the 1C: Enterprise server receives the standard values ​​of the parameters necessary for its normal functioning.

Let's consider the installation of the 1C: Enterprise server in more detail. During the installation of the 1C: Enterprise 8.x server, the 1C: Enterprise 8.x installation program performs the following actions:

* Copies the load modules of the 1C: Enterprise server to the directory specified by the 1C: Enterprise installation program as the destination folder.
* If "Create user USR1CV81" is selected during the installation process, it creates user USR1CV81. On behalf of this user, the 1C: Enterprise 8.1 server works if it is launched as a service. It has access only to those resources that are needed by the 1C: Enterprise server. It is important that the 1C: Enterprise server needs two directories for operation: a common directory with server data (usually "C: \ Program Files \ 1cv81 \ server") and a temporary files directory (usually "C: \ Documents and Settings \ usr1cv81 \ Local Settings \ Temp "or" C: \ WINNT \ Temp "). User USR1CV81 gets rights to the shared directory with server data. The temporary files directory is usually available to all users.
* If during the installation process "Install 1C: Enterprise 8.1 server as a Windows service" is enabled, then it registers the 1C: Enterprise server agent service in Windows and starts it. At the first start, a 1C: Enterprise server cluster is created with default settings. It has one worker server and one worker process. The working server address is the same as the name of the computer on which the installation was performed.

USR1CV81 or USR1CV82 user and his rights

Server 1C: Enterprise is a server application whose operation should not depend on which user entered the server computer interactively, if anyone entered at all. Therefore, when installing a 1C: Enterprise server, it is advisable to create a special user USR1CV81, endowed with the minimum rights required for the 1C: Enterprise server, and not intended for interactive login. The 1C: Enterprise server is presented to the Windows system by the USR1CV81 user.

Let's take a closer look at the rights assigned to the USR1CV81 user. Server 1C: Enterprise uses the following directories:

* The directory of loading modules is located in the directory specified by the 1C: Enterprise installation program as the destination folder. It contains the load modules of the 1C: Enterprise server. User USR1CV81 needs rights to read data and run programs from this directory and its subdirectories. He gets these rights implicitly, thanks to being included in the Users group.
* The server data directory is usually named "C: \ Program Files \ 1cv81 \ server". USR1CV81 needs full rights to this directory. The 1C: Enterprise installation program, when creating a user USR1CV81, gives him the rights to this directory.
* The temporary directory is usually named "C: \ Documents and Settings \ usr1cv81 \ Local Settings \ Temp" or "C: \ WINNT \ Temp", which is determined by the value of the user's TEMP variable or the system environment TEMP variable. You can view the value of this variable in the System Properties dialog (Start -> Settings -> Control Panel -> System -> Advanced -> Environment Variables). The 1C: Enterprise installation program gives the USR1CV81 user full rights to this directory. Typically, when installing Windows, the temp directory is available to all users by including the CREATOR OWNER group on its ACL. However, this access is not complete. In particular, the operation of searching for files in this directory is not available to all users. Setting the USR1CV81 user full rights to the temporary files directory allows the 1C: Enterprise server to perform all the operations it needs. You can view the access list in the directory properties dialog on the Security tab. The presence of the CREATOR OWNER group allows any user who creates any files in this directory or owns any files in this directory to access the directory. In this case, the user who created the file will be recorded in the access list of the created file instead of the CREATOR OWNER group. Among the users who are allowed access to this directory, there must also be user USR1CV81, who has full rights to this directory.
It is important to keep in mind that the directory of temporary files for a specific user (including the user USR1CV81) is determined by a combination of that user's environment variables and system environment variables. To find out this directory, the 1C: Enterprise installation program asks for the user context USR1CV81. To do this, in Windows 2000, the user on whose behalf the 1C: Enterprise setup program is launched may need the following privileges: Act as part of the operating system and Bypass traverse checking. You can check user privileges using the Local Sequrity Settings utility in the Local Policies -> User Rights Assignment branch. During the installation of new software, the installer usually gains these privileges automatically.

Registration of 1C: Enterprise server as a Windows service


Server 1C: Enterprise is a simple Windows console application and can be launched interactively. However, for permanent use, this is inconvenient, since it makes the 1C: Enterprise server start from the input of an inactive user into the server computer. To eliminate this dependence, the 1C: Enterprise server can run as a Windows service. To do this, it must be registered in the Windows Service Manager.

To view the list of Windows services and their parameters, use the Component Services utility (Start -> Settings -> Control Panel -> Administrative Tools -> Services). The 1C: Enterprise server is represented in the list of services by the "1C: Enterprise 8.1 Server Agent" service. The service parameters determine the launch of the 1C: Enterprise Server Agent (ragent) process, the user on whose behalf it is launched, and the method of restarting in emergency situations.

In the properties dialog of the "1C: Enterprise 8.1 Server Agent" service, on the General tab, the line for starting the ragent process, which is the Agent of the 1C: Enterprise server, is shown. Usually this line looks like:


It states that:

* the Server Agent process is the load module "C: \ Program Files \ 1cv81 \ bin \ ragent.exe";
* the ragent process starts as a Windows service and must be managed by a service manager (-srvc);
* used as the Agent of the 1C: Enterprise server (-agent);
* when the service is started for the first time, a cluster must be created with default parameters and the main IP port number 1541 (-regport 1541). Client applications must use this port to connect to infobases registered in the cluster;
* Server agent IP port must be 1540 (-port 1540). On this port, the Cluster Console must connect to the central server to perform administrative functions;
* when starting cluster processes on this server, they will be dynamically assigned IP ports from the range 1560-1591 (-range 1560: 1591).
* general cluster data will be located in the "C: \ Program Files \ 1cv81 \ server" directory (-d "C: \ Program Files \ 1cv81 \ server").

The 1C: Enterprise 8.1 Server Agent service can be added or removed not only when installing or uninstalling 1C: Enterprise using the 1C: Enterprise 8.1 setup program, but also manually. To do this, you can run the ragent utility from the command line by specifying the appropriate parameters.

To create a service, you need to specify the -instsrvc parameter and the following parameters: -usr is the username on whose behalf the service should be launched, -pwd is the password for this user. In this case, the rest of the parameters will become the parameters of the line for launching the Agent of the 1C: Enterprise server as a service. For example, for standard registration of the 1C: Enterprise Server Agent service in debug mode, the set of parameters should be as follows:

"C: \ Program Files \ 1cv81 \ bin \ ragent.exe" -instsrvc -usr. \ USR1CV81 -pwd Password -regport 1541 -port 1540 -range 1560: 1591 -d "C: \ Program Files \ 1cv81 \ server" - debug

To remove a service, you need to specify the -rmsrvc parameter. For example:
"C: \ Program Files \ 1cv81 \ bin \ ragent.exe" -rmsrvc

Sometimes it is too easy to change the Server Agent launch line or other parameters of the Agent service, for example, enable debug mode, or create several services of different versions. The service properties dialog does not allow editing the service application launch line and some other parameters, for example, the service identifier. To edit, you need the regedit utility, designed to view and edit the Windows registry.

Attention!
Editing the Windows registry requires extreme caution, as erroneous changes to it can render the operating system unusable.

Run the regedit utility (open Start -> Run and type regedit) and select the branch:


Among its parameters there is the ImagePath parameter, the value of which is the line for launching the Agent of the 1C: Enterprise server. Here you can add new parameters to the launch line or change the values ​​of existing ones. A complete list of possible parameters is given in the book "1C: Enterprise 8.1 Client-Server" documentation.

If you need to register several independent services of the Agent of the 1C: Enterprise server, you need to specify them different load modules, different ports and different data directories of the cluster. You also need to register them with different service identifiers. You can do it like this:

* Create first service:
"C: \ Program Files \ 1cv81 \ bin \ ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560: 1591 -d "C: \ Program Files \ 1cv81 \ server"

* Change the registered service identifier using the regedit utility. To do this: select a branch
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ 1C: Enterprise 8.1 Server Agent

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ 1C: Enterprise 8.1 Server Agent First
* Create a second service:
"C: \ Program Files \ 1cv81_10 \ bin \ ragent.exe" -srvc -agent -regport 1641 -port 1640 -range 1660: 1691 -d "C: \ Program Files \ 1cv81_10 \ server"

* Maybe change its ID too. To do this: select a branch
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ 1C: Enterprise 8.1 Server Agent
and change its name, for example to:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ 1C: Enterprise 8.1 Server Agent Second

What cannot the 1C: Enterprise installation program do?

As already mentioned, the 1C: Enterprise installation program copies the 1C: Enterprise load modules and performs the necessary registration in COM and in the Windows service manager. The above is the information you need to understand the internal mechanisms of this registration. If not only the server, but also the 1C: Enterprise client part is installed on the server computer, then it is ready to work immediately after installation (and connection of protection keys).

In order for the 1C: Enterprise server to be accessible from other computers in the local network, it is necessary to check the network settings on the server and client computers, as well as for the network as a whole. TCP / IP is used to transfer data between client applications and the 1C: Enterprise server, as well as between server cluster processes. The operation of 1C: Enterprise in the client-server version depends on the correctness of its configuration.

Processes of a 1C: Enterprise server cluster are connected to each other at the addresses specified as the values ​​of the "Computer" property of the properties dialog of working servers. The cluster requires that the value of the "Computer" property is either an IP address in dot notation, or a symbolic address that can be used to determine the IP address using the gethostbyname function defined in the TCP API. The IP address is determined either from the local symbolic address table (C: \ WINNT \ system32 \ drivers \ etc \ hosts), or from the address tables in available DNS servers. If the symbolic address of the working server does not determine its IP address or is determined incorrectly (for example, the IP address does not match the actual IP address of this computer), then the cluster will not work. It is important that the computer names and their addresses defined in Windows on each of the production servers in the cluster do not conflict with their names in DNS.

On each working server, cluster processes use the following ports: IP port of the working server (usually 1540); IP ports from the workflow IP port ranges (usually 1560-1591). In addition, the cluster's central server uses the cluster port (usually 1541). If the system uses firewalls, then the data transfer on these ports must be allowed. Instead of allowing ports from the above list, you can allow data transfer to cluster processes (ragent, rmngr, rphost).

The connection of the 1C: Enterprise client application to the server is performed in 2 stages. It first establishes a connection to the cluster manager. This uses the address of the central server (symbolic or numeric) and the cluster port (usually 1541). Next, the client application establishes a connection with one of the worker processes. The value of the "Computer" property of the corresponding working server and the port of the working process, which is selected from the range of IP ports of the working server, are used as its address. Data transfer to these ports must be allowed in all firewalls on the route from the client application computer to the computers of the 1C: Enterprise server cluster. The IP address of the server processes is determined using the gethostbyname function on the client computer. It is important that the names of the central and production servers and their addresses defined in Windows on each of the cluster servers do not conflict with their names in the DNS available to the client computer.

And the last thing. Obviously, for successful access to the 1C: Enterprise server from other computers, it must be on the network and the necessary settings must be made for this. Network connection and setup methods are specific to Microsoft Windows-based network administration and are described in the related instructions.

Specifics of SQL Server Tuning

1C: Enterprise in the "client-server" version uses SQL-server for data storage. At the same time, only 1C: Enterprise Server addresses the SQL server. Clients of 1C: Enterprise do not have direct access to the SQL server. Installing and configuring SQL Server is described in detail in the Microsoft SQL Server documentation. For the successful operation of 1C: Enterprise Server with an SQL server, you need to pay special attention to the following settings.

* Required SQL Server components. To access the SQL server from the 1C: Enterprise Server side, the Microsoft Data Access 2.6 or later components must be installed on the 1C: Enterprise Server computer.
* User authentication by SQL server. The access rights to the SQL server databases are determined by the user on whose behalf the database is accessed. From the computer on which the SQL server is installed, launch the SQL Server Enterprise Manager utility, find the Local node (Console Root -> Microsoft SQL Servers -> SQL Server Group -> (Local)) and open its properties. On the Sequrity tab, you can see that SQL Server supports two ways to authenticate users: SQL Server and Windows and Windows only. Windows authentication will allow the 1C: Enterprise Server to access the SQL server only on behalf of the USR1CV81 user, which does not allow differentiating access rights to various infobases served by one 1C: Enterprise server. It is recommended to select SQL Server and Windows mode. In this case, access to a specific infobase will be performed on behalf of the user who was specified as the SQL server user when creating this infobase. It is important that this user must have not only full rights to the infobase database, but also the rights to create databases in the SQL server and to read the Master database tables.
* Network protocols for accessing SQL server. If the 1C: Enterprise Server and the SQL server are located on different computers, then it is necessary to configure the network protocols for accessing the SQL server. This can be done using the SQL Server Client Network Utility. On the General tab, you can select a list of network protocols used to access the SQL server. The fastest and most versatile is the use of the TCP / IP protocol. When using other protocols, keep in mind that some of them, for example Named Pipes, perform additional Windows authentication when communicating with the SQL server. In this case, in order to successfully work with the SQL server, the user USR1CV81 with the appropriate rights must be registered on the computer with the SQL server. The access protocol to this SQL server can be changed on the Alias ​​tab.

In addition to article

There is no doubt that the bundle MS SQL Server + server "1C: Enterprise 8" is the most demanded and frequently used bundle in its niche. An understanding of both products is desirable for its quality support. At the same time, in practice, a support specialist usually either specializes in administering MS SQL Server and does not know the specifics of the 1C: Enterprise 8 server, or, conversely, specializes in administering the 1C: Enterprise 8 server and does not know the specifics MS SQL Server.

This article is written to help both those and other specialists, is designed to save you time and draw your attention to the most important details when using these software products together.

To facilitate the perception of information, practical cases, notes and tips are provided (in italics).

Three-link scheme

As the reader may already know, the database in this case has a three-tier architecture:

Link 1: MS SQL Server DBMS. It "stores" and maintains the database, and ultimately performs all kinds of operations with the database. Thus, the performance of the database, the speed and parallelism of data read-write are largely determined by the performance of MS SQL Server.

Link 2: Server "1C: Enterprise 8". Serves as an intermediary in interaction between clients (users) and MS SQL Server. All client requests are sent to the server, which "translates" them into the MS SQL Server query language, receives the results of these queries, and sends the results to the client.

There is only a small part of the operations that are performed at the 1C: Enterprise 8 server level, without accessing MS SQL - in particular, tracking the so-called "managed locks", reading-writing "session parameters". In such cases, calls to the DBMS are not required, since these operations are performed not with the database data, but with the auxiliary information of the server.

Link 3: Client part "1C: Enterprise 8". It contacts the 1C: Enterprise 8 server, receives results from it (that is, for example, data samples), and is responsible for the user interface.

"I wanted the best."

After reinstalling the 1C: Enterprise 8 server, users complain about a sharp drop in performance. The 1C: Enterprise software implementation specialist who has been reinstalling is just surprised - they say he wanted the best, the system should start working faster ... The analysis of the situation showed that too many resources were allocated to the 1C: Enterprise 8 server: processes (see point 3) rphost took 15.5 GB of 16 GB of server RAM, as a result there is practically no available RAM for compliant MS SQL Server.

As a result - constant "swap", unnecessary load on the disk subsystem, and extremely slow execution of database operations due to the fact that MS SQL Server does not have time to process requests from the "overclocked" server "1C: Enterprise 8".

Product compatibility

For up-to-date data on the versions of MS SQL Server recommended for use in conjunction with "1C: Enterprise 8", follow the link http://v8.1c.ru/requirements/.

At the time of writing this article, the developers of the 1C company recommend the following options:

      1. SQL Server 2008 R2.
      2. SQL Server 2008, Service Pack 1 (SP1) is required.
    3. SQL Server 2005, Service Pack 3 (SP3) is required.



It is technically possible but not recommended to use MS SQL Server 2000, it requires the installation of Service Pack 2 (SP2), and it is desirable to install Service Pack 4 (SP4).

Please note that this version is currently discontinued, and also does not have a 64-bit version for the x86-64 architecture.

Note:

It is necessary to pay attention to the settings of the operating system: for example, for the M SQL Server 2008 to work efficiently under the Server 2008R2 OS, you need to turn off the balanced power supply mode and switch to the maximum performance mode.

Installing the client-server version of "1C: Enterprise 8"

"1C installed"

One of the customers installed "1C: Enterprise 8" by a system administrator who has no experience in working with "1C: Enterprise 8". And although, according to him, he "installed 1C" - there was no client side on the user computers, and the server side on the server. Analysis of the situation clarified the picture - in the "1C: Enterprise 8" set there were 2 disks - installation of the platform and installation of database templates. The administrator did not delve into the installation procedure - and installed the database templates, and not the executable files, platform components.

Of course, this is an atypical example of an extremely inattentive attitude to work.

When installing "1C: Enterprise 8", it should be borne in mind that the following are installed separately:

      Platform "1C: Enterprise 8" is an executable application, an integrated environment for the development and operation of databases. When it starts, one of two modes of operation is selected - "Enterprise" (user-defined database shell) or "Configurator" (integrated development environment). A more complete description can be found at the link
      Configuration templates "1C: Enterprise" is a file of the platform's internal format, with the help of which the platform can create a clean or demo database of the structure that is included in the template. Also, using the update template, you can update the structure of an existing database already filled with data.
      When installing the platform, you should pay attention to the choice of components:





The 1C: Enterprise component may not be installed on the server (s).

In this case, the server will provide client computers with access to the 1C: Enterprise databases, but it will not be possible to work with the database in user mode directly from the server.

Note:

The 64-bit version of the platform does not contain the client part. Therefore, during installation, 64-bit server components are installed on the server separately, and 32-bit components of the client application are separately installed.

The 1C: Enterprise Server component is needed to connect to MS SQL Server - this is an application server that connects the platform on client workstations and MS SQL Server.

It is possible to install the component in the mode of a simple application or system service, and, of course, the second option is recommended.

When installed "as a service", this component will be launched and executed on behalf of the selected user:




After the component is loaded, it spawns several processes, such as: "server agent", "server cluster manager", "server worker processes".

Database queries are executed by worker processes, and the server cluster manager distributes the load between them.

Server working processes can be managed (add, delete, limit the use of RAM, declare primary or backup) if the "1C: Enterprise Server Administration" component is installed.



Note:

For the 32-bit version of the server, it is recommended to install working processes in such a quantity so as not to leave the RAM unused - each of them has a noticeable limitation on the use of RAM, from 2 to 4 GB, depending on the system configuration.

For a 64-bit version of the server, theoretically, two worker processes are sufficient - one worker and one backup. However, in practice, to ensure the reliability and stability of connections on a significant (several hundred) number of users, a larger number is required, it depends on many factors - on the number of users, the database filling and the volume of queries performed, therefore the authors believe that the number of processes in this case should be selected experimentally.

"Ouroboros"

After unsuccessful optimization of the 1C: Enterprise 8 server settings, users signaled that the system was extremely slow, and the system administrator noted a constant 100% CPU load on the server.

An analysis of the situation showed the source of the problem - when setting up, a too small limit on the use of RAM by worker processes was set.

And the fact is that this restriction works as follows:

When a server cluster manager sees that a worker process has exceeded the RAM limit, the work of this process is terminated, it is disconnected, a new worker process is created, and connections and user requests are redistributed between worker processes.

The set limit was so small (300MB) that the worker process could not fully service even one intensively working user - as a result, the server cluster manager was constantly restarting worker processes and reconnecting users. As soon as a new process was created and users connected to it, the RAM limit was almost instantly reached and caused the next restart. This took 100% of the processor load.

The 1C: Enterprise Server component is not needed on client workstations, and it will not be able to start there, since it requires a physical security key.

If the number of connected users is small (less than 50), the application server is usually installed on the same computer where MS SQL Server is running.

For systems with a large number of users and / or a large volume of information flows, a separate installation is recommended, as well as the use of a server cluster.

The 1C: Enterprise Server Administration component can also be useful on clients - for example, with its help you can see a list of infobases connected to a given 1C: Enterprise server.

It is highly recommended to install it on the server itself.

Access

Note:

To check that access is provided, it is not enough to use the 1C: Enterprise server administration utility, and even more so the presence of the server in the "Network Neighborhood" is not enough!

It is necessary on each client to log into the database installed on the server - only this will give 100% confidence that access is provided.

1. Depending on the security policies, for MS SQL Server, either Windows account authentication or MS SQL Server account authentication is used.




In the latter case, when creating the 1C: Enterprise database, the system will ask for the login and password of the MS SQL Server account (for example, sa); in the first case, the login and password should be left blank:



and that user of the system, on whose behalf the 1C: Enterprise server is launched, must be given rights in MS SQL Server, namely:

      full rights to the database in which the infobase is located
      access to the master database (public role)
      recommended - the rights to create a database, otherwise each new database will need to first be created using MS SQL Sever, and only then connected to the 1C: Enterprise server
      recommended - the right to delete your database



For example, you can assign the user in question to the predefined role processadmin or sysadmin.

Advice.

If all users have lost access to the working database at the same time, you need to double-check the user's rights and roles in MS SQL Server, including those set for a specific database, that is, User mapping:




2. The 1C: Enterprise server accesses MS SQL Server through the Microsoft Data Access mechanism, so its components must be installed, and the 1C: Enterprise server user (see the previous paragraph) must have rights to launch them.

3. Communication between clients and server is supported by TCP protocol, therefore it is necessary that this protocol is supported by both sides. There may be problems with matching the server name and its IP address, for example, if a peer-to-peer network is used. In this case, you should record the correspondence in the file [C: \ WINDOWS \] system32 \ drivers \ etc \ hosts.

Advice.

If the network is peer-to-peer - to ensure a permanent connection to the server, create a network drive that accesses any of the folders on this server.

4. If the Named Pipes protocol is used, and if MS SQL Server and the 1C: Enterprise server are installed on different computers, the user on whose behalf the 1C: Enterprise server is running must be registered in the list of users of the computer on which MS SQL Server is running.

5. In some cases, additional configuration of Windows Firewall may be required, that is, adding exceptions.

6. Some antiviruses can block "unwanted" network traffic, so you may need to add their exclusion lists.

7. The release of the 1C: Enterprise 8 platform must be exactly the same on the client and on the server.

"Twins"

"One of the customers used two database servers, each of which had one working database. Users worked - each one simultaneously with both databases. Support services updated the 1C: Enterprise 8 platform on servers and clients .... And then complaints started pouring in. on the impossibility of connecting to one or another base. The analysis of the situation showed that the update on clients and servers was done by several people, and the installation specialists did not double-check that they were installing the same release. Therefore, one server had one platform release, on the second - the other, half of the clients - the first of these releases, on the other half - the other.It turns out that each user has access to only one of the databases.

To quickly solve the problem, I had to install both platform releases for each user and create separate shortcuts to enter each database.

Initial settings of MS SQL Server and database

"And so it works"

MS SQL Server is distinguished by its simplicity of initial installation, so not all administrators are puzzled by its additional configuration - after the installation, by default, the database is working, users are logged into it - the job is done. This approach almost always entails the emergence of problems after about a month or two - and, of course, suddenly and at the most inconvenient moment.

For example, if the base is intended for accounting, before submitting tax returns, it is often necessary to urgently recalculate certain data, and recalculate in large quantities, say, "all receipts of fixed assets from the beginning of the year." Moreover - during the working day, without stopping the work of other users of the database.

And, of course, it is at this moment that it will be discovered that the base "freezes" or "crashes" with such recalculation, or does not allow other users to work.

This kind of "Murphy's Law" applies to each of the points below.

Before starting to use MS SQL Server as a DBMS for 1C: Enterprise, it is recommended:

1. Set the value of the max degree of parallelism parameter to 1.

That is:

      after connecting to the server, enter the server properties via the context menu, the Properties item
      then select the Advanced page and edit the max degree of parallelism parameter






Otherwise, some queries generated by the 1C: Enterprise server may cause the error "Intra-query parallelism caused your server command (process ID #XX) to deadlock. Rerun the query without intra-query parallelism by using the query hint option (maxdop 1 ) ". After this error, the client side often crashes.

The error will not manifest itself stably, since the query plan is formed differently depending on the accumulated statistics - it will manifest itself on large and complex queries, that is, at the most unfortunate moment.

2. Create a Maintance Plan that shrinks the tempdb temporary table database. The database of temporary tables is not always cleared automatically by the 1C: Enterprise server, and sometimes, as a result of an unsuccessfully written query, a temporary table of, for example, 50 GB in size may be generated and not cleared. As a result, disk space may run out, as a result of which, both the client and server parts may crash, and there is also a small risk of data integrity violation.

That is, you need:

      go to MS SQL Management Studio
      after connecting to the server open the "Maintance plans" section
      create a new (or supplement the existing) Service Plan,
      add the item "Execute T-SQL Statement task" to it (since the tempdb database cannot be selected in the "Shrink database" task) with the code




1.USE
2.
3.GO
4.
5.DBCC SHRINKFILE (N "tempdev", 0, TRUNCATEONLY)
6.
7.GO
8.
9.DBCC SHRINKFILE (N "templog", 0, TRUNCATEONLY)
10.
11.GO

Note that the file name of the temporary table database may not be "tempdev". To check this name, you can use the script

1.USE tempdb
2.
3.GO
4.
5.EXEC sp_helpfile
6.
7.GO




"Pot, don't boil"

The most common way in practice to overflow tempdb and thus crash the server is to forget to specify a condition when joining tables.

Namely, let's say we have two tables in the database, each with a size of 20 thousand records. Let's say that a one-to-one correspondence can be established between their records, and we write a query that creates a temporary table that contains 20 thousand records with the fields of both original tables. But if we forget to specify the join condition, every record in the first table will join with every record in the second! That is, the resulting table will be 20'000 * 20'000 = 400 million records. Etc.

3. For the sake of reducing the load on the disk subsystem, it is recommended, if possible, to spread the working database and tempdb, logs, and the system paging file across different physical disks.

It is better to set the necessary path for storing the files of the working base when creating it by editing the Path column:




To change the physical location of the temporary table database files, use the ALTER DATABASE command, that is, in MS SQL Management Studio, you need to execute the following script ("New query" command)

1.USE master
2.
3.GO
4.
5.ALTER DATABASE tempdb
6.
7.MODIFY FILE (NAME = tempdev, FILENAME = "New_Drive: \ New_Directory \ tempdb.mdf")
8.
9.GO
10.
11.ALTER DATABASE tempdb

12.
13.MODIFY FILE (NAME = templog, FILENAME = "New_Drive: \ New_Directory \ templog.ldf")
14.
15.GO

4. The "growth" of the working database and its log should not be impeded - there should be no size limit, the "Autogrowth" property should be set as a percentage, the recommended value is 10%. Otherwise, adding data to the database, restoring from an archive, and other operations may take an unreasonably long time.

To set this property, you need to go to the database properties through the context menu, select the Files section, open the file properties editing:



5. It is recommended to enable support for the TCP / IP network protocol in MS SQL Server and disable all others, otherwise the joint work of MS SQL Server and 1C: Enterprise server will be less stable.




6. In the same place - clear the Alias ​​section, since its installation leads to errors in the interaction between MS SQL Server and the 1C: Enterprise server.

Before starting to operate the database, it is recommended:

1. When creating a database from "1C: Enterprise" set the "date offset" 2000, otherwise an attempt to record the date earlier than 01.01.1753 (which is possible due to the human factor) will cause the database to malfunction.

Attention! The date offset cannot be changed for an existing database!



2. Set the Recovery model to Simple, or create a Maintance Plan that will back up the database on a daily basis and truncate the transaction log (log file). Otherwise, during some operations, the transaction log (log file) will grow very quickly: for example, when the database is restructured, the growth of the log file size can exceed the size of the database itself by several times.




3. Create a Maintance Plan that performs the following scheduled tasks at least once a week:

      Creating a backup copy of the database.
      Updating database statistics and clearing the procedural cache (note that the autoupdate statistics property does not purge the procedural cache).
      Clearing the procedural cache - not included in the standard operations of the Maintenance Plans, this step must be defined as the execution of a script (Execute T-SQL Statement) with the following content:
      DBCC FREEPROCCACHE
      Re-indexing database tables.






Of course, it makes sense to set up automatic sending of emails about successful / unsuccessful completion of tasks.




Conclusion

The issues that most often cause difficulties for system administrators and implementers of "1C: Enterprise 8", in connection with the joint use of MS SQL Server and the client-server version of "1C: Enterprise 8".

The author hopes that he has highlighted "both sides of the coin" fairly consistently and easily.

P.S. Make backups more often!

A server for 1C is an important technical element when building an IT infrastructure. We are ready to sell server hardware with an excellent configuration at an adequate cost, without huge markups. Only appropriate configurations to meet your needs. Leave a request and you will receive a device that can meet the technical needs of the organization.

We are ready to provide server equipment of any complexity with a configuration that meets the requirements. There is a convenient delivery. Self-pickup is available in Moscow. In general, if you want to purchase, then you just need to call, fill out the calculation form or write by e-mail. We offer a variety of components, assembly options, we will make a commercial offer. We will build on the budget and collect the most expedient 1C servers.

If you came for information, then it is located below. We tried to post a full-fledged material capable of giving, albeit not an exhaustive, but a voluminous answer to a question. We warn you right away, information about hardware rather than software.

  • 1C server for 5-10 users
  • 1C server for 10-20 users
  • 1C server for 20-30 users
  • 1C server for 30-50 users
  • 1C server for 50-100 users
  • 1C server for 200+ users

In this case, an individual configuration is required. It makes little sense to make a configuration at random, since the load can vary greatly depending on the tasks of the users. In some cases, it will not work to be limited to one device; a cluster is required. Leave a request so that the specialist can contact you and clarify the details.

Any assembly can be configured individually for your needs!

By the way, preliminary parameters can be selected in the form below. This will allow specialists to quickly form a commercial proposal.

Get an individual calculation of the 1C server:

What is 1C server?

The software package "1C: Enterprise 8.3" is a set of business tools for bookkeeping, inventory, reporting in automatic mode. There are many opportunities for sharpening for any segment of activity. The software is quite flexible in settings, but, unfortunately, very demanding.

Actually, the complex is now used everywhere. Large organizations, budgetary institutions, government. And not only in Russia, but also abroad.

The appearance of the product on the market happened at a very opportune moment, which had a good effect on the widespread adoption of the product. At first, there was a minimal set of tools for accounting, gradually the software was developed, improved, new functions and capabilities were added.

Today the product has become a full-fledged tool for automating many aspects of a business and has a well-deserved popularity. Despite the shortcomings, the software is constantly evolving, making innovations and correcting the shortcomings of previous versions.

Implementation types

Most small organizations do not buy a server for 1C. They see no point in such a waste. After all, it is enough to deploy the complex on a personal computer, then give access to other PCs. This option is called "File Mode".

It is not capable of providing decent performance, it is only suitable for use in a local network (of course, remote access is also available, but ineffective). When the number of simultaneous calls to the database exceeds 5, it starts to seriously slow down. Freezes periodically. In addition, the size limit for one table in the database is 4 GB; large companies, it should be said, often make such voluminous tables. Of course, the disadvantage of the file mode is the following factor: the higher the database size, the more serious the hardware resource requirements. Unfortunately, if a lot of people work in this software, or if you have to create large tables, it is better to choose a different way of implementing the IT structure.

And DB management systems come to the rescue, which work in a client-server type of execution. Server 1C supports the following types of DBMS:

    MS SQL Server is a DBMS developed by Microsoft. Reliable, functional, but requires an OS of the Windows family. There are certain drawbacks: he loves RAM, occupies it completely, therefore, you have to set limits manually, RAM leaks periodically occur when interacting with table arrays.

    PostgreSQL is a free distribution. In places slow, which has been proven empirically. Suitable for a small staff, a large staff may not work. But, despite the shortcomings, there are no restrictions on support e processors, and there is no RAM plateau.The main requirement is the direct hands of the system administrator. Shows excellent results when configured correctly.

    Oracle Database is a versioned DBMS with good functionality, and at the same time, it is very nimble, it allows writing and reading at the same time. The weakness is the requirement for RAM.

    IBM DB2 Universal Database. Well suited for handling large arrays. Has extensive functionality. Unfortunately, this DBMS has a lot that is superfluous to maintain compatibility with outdated computers, which reduces the effectiveness of the DBMS. It is undemanding to RAM, but because temporary tables are limited. The maximum number of supported cores is 16, which imposes some restrictions.

The most efficient DBMS in terms of tests are MS SQL Server, Oracle. If there are limitations in the budget, then the choice should be stopped on PostgreSQL, it is a free DBMS, but keep in mind that only the version that is made specifically for the target software works. IBM DB2 Universal Database is rarely used, because there are more productive analogs, but in support of outdated hardware and assemblies from IBM is the best.

We come to the conclusion what to implement in the client-server execution much more efficient... Otherwise, we get brakes and serious restrictions. I hope we have decided on the choice of a DBMS, but in fact I will say that the most convenient and popular is MS SQL Server.It is best supported by the software package in question.

And I will immediately answer one more question. Other SQL interpreters are not supported. At least officially.

Accordingly, it will become more complicated. Single machines turn into clusters, the staff expands and is divided into groups. But, the base looks something like the diagram. For the number of users over 50, you will definitely have to use two devices. One for databases, the other as a terminal server. Otherwise, the capacity will not be enough.

A terminal node is needed to provide power to a thin client. A specialized device, a PC, even a smartphone can act as a thin client. Accordingly, all operations are performed centrally, on one machine. That makes powerful devices in the role of TC unnecessary. There are enough non-productive devices that are responsible for displaying the results of executing instructions on the screen.

Databases require equipment that can process the entire volume at a time and transmit information to the terminal node, which must be very powerful, since it is responsible for virtualizing applications and providing technical resources.

The larger the organization, the wider the number of users, the more productive equipment will be required. In some situations, a cluster is needed. It looks like the costs are high, in fact, buying a server for 1C and low-power PCs is cheaper than trying to establish an IT infrastructure without them.

Equipment

So, what kind of hardware do we need to implementserver for 1C ? Good question, first you need to decide on the parameters in accordance with which we will set the requirements:

    number of users;

    volume DB;

    required resiliency;

    type of implementation.

Substitute a question mark for each item. Answer them. In fact, this is how the task is formed. Now let's try to help navigate. Let's start with our favorite users.

The number of queries to SQL is a key point in preparing a technical problem. Each person or program is capable of generating a certain number of requests and takes up part of the hardware resources. So a build for 5 users might not work for 10, for 50 the requirements will look different too. About 100, 200 is the same. Of course, software that will automatically work with 1C is a separate topic that requires more detailed consideration.

Now the second point. There is a database, accordingly, it must be placed somewhere, given the necessary amount of resources for functioning. The task is only seemingly easy. You will have to select appropriate drives that can provide the speed and the required volume. It is recommended to predict the potential size of the database, then it will be easier to formulate the requirements.

Fault tolerance is designed to ensure uninterrupted operation. To keep backups running, one about device duplicated by others. The higher the level of fault tolerance, the more complex and expensive the configuration.

The type of implementation - in fact, how we will use it, for what purposes. Nothing complicated. If only accounting, then the power will be less fundamental, but if all the tools are used, then a more powerful technique is required.

Let's go through the accessories.

CPU

Cpu with a performance of at least 1700 MHz, although the value is lower in the requirements, but should focus on him, and in the end buy a processor even more powerful. Ideal for Intel Cor e i3-8100, Xeon E3-1220 v6 or AMD Ryzen 3 1200. Of course, the most NS productivity will give Xeon, but he is the most expensive of all. This is for 5-10 human ... If you plan to increaselivestock of "users", then it is definitely worth choosing Xeon.

For 10-20 people, Intel Xeon E3-1230 v6 is already useful, unlike its younger brother, it has a higher clock frequency and multithreading. Although it is not so fundamental, the CPU turns out to be an order of magnitude more powerful. The less expensive ones are the Core i5-8500 and AMD Ryzen 5 1500X. But the latter will not be able to show the same performance as the Xeon. So choose the latter.

If the server for 1C is planned for 20-50 people. Then the assembly needs a productive one. It's better to forget about processors in the user segment and look at the server segment. So. Here you will need at least Intel Xeon E5-1650 v4 with 6 cores 12 threads and a base frequency of 3.6 GHz is quite good. From AMD, the EPYC 7261 CPU with 8 cores, 16 threads and a base frequency of 2.5 GHz is suitable. Of course, it will show lower performance, but a little cheaper. But not by much.

For 50-100 users, it is worth taking a look at the Xeon E5-1680 v4 from Intel, it is noticeably more powerful than the previous CPU. Has 8 cores, 16 threads and 3.4 GHz frequencies. AMD EPYC 7351 with 16 cores, 32 threads, 2.4 GHz base frequency can also be used. But it is significantly worse than Intel. But it is also noticeably cheaper.

For more serious solutions, you can even use dual-processor systems, or segment devices. For example, for a dual-processor system, the Xeon E5-2643 v4 is ideal. But segmenting devices is much more expedient. That is, to implement the solution on two devices at once.

In general, it should be noted that the number of cores in the server for 1C does not play a decisive role. More emphasis should be placed on clock speed and sequential performance. Therefore, safely discard multi-core CPUs. In the reviewed software package, support for multithreading and multiprocessing is implemented very poorly. Numerous kernels do not provide significant advantages.

Storage devices

The bottleneck in the system is traditionally HDD. Let's start with the interfaces. SATA only suitable for sequential requests. Any kind of parallelization can only be done in RAID- array. Interface SAS better, up to 10 one-time requests, but the throughput of hard drives still leaves much to be desired. Most adequate choice - SSD. Solid state drives with SAS, from SATA we recommend to refuse, but also an option and they are a little cheaper. Perfectly - SSD NVMe. They are the fastest of the proposed ... But, unfortunately, they are very expensive. Start from the budget, but we recommend choosing SSD, then a more efficient system will be implemented.

RAM

Well, all sorts of little things like the motherboard (ha-ha, little thing), it is better to choose additional drives depending on the rest of the components. But the power supply should be given special attention, it is worth taking expensive versions with labels Bronze, Silver, Gold, Platinum. The latter is the best and most reliable, the former is less good, but better than the usual cheap ones.

Be sure to make RAID 1 or RAID 10 (1 + 0), the second option is much more efficient. They provide duplicate memory write. That is, the same thing is written to several disks at the same time. But note that 4 drives are required to create a RAID 10.

And the last point, be sure to take an uninterruptible power supply. In the event of a power outage, there will be time to save the data and carefully shut down the server.

No, perhaps there are still important points, just learn them when configuring and think carefully. The system may have to be made with a serious margin.

user takes up resources. But, reading takes much less resources than reading / writing. Therefore, one user can provide more workload than several others. When planning the IT infrastructure, this will also have to be taken into account in order to properly allocate capacity.

Protection. Backing up also takes up resources, so that it does not disrupt the work, additional resources must be allocated to it. Firewalls, antiviruses and other security tools also require a certain amount of power.

Fault tolerance. Hot-swappable drives or power supplies, system redundancy. Possibility of quick replacement of components. The higher the fault tolerance, the lower the chance that it will be simple to operate. The greatest fault tolerance is achieved in the cluster.Server for 1C by the number of users

This is a key parameter when choosing equipment. It is recommended that you familiarize yourself in order to have at least a rough idea of ​​what you may need in the process of forming a configuration.

1C server for 5 users

No high power required for 5 people, small business configurations are fine. If the office is small and you need a compact location, then you can use a mini-server . This option will allow you to compactly place the equipment and will be convenient for transportation.

The cost of such a device is from 30,000 rubles. The configuration, as a rule, does not differ in delicacies. An entry-level processor from the Intel Xeon E3 series or AMD Opteron is used. There are many ready-made assemblies for this task. But in the case of cheap devices, there are no solid state drives and headroom for peak loads.

1C server for 10 users

The configuration for 10 employees is similar to the previous solution, no special power is required, it is enough to use a mini-server. But the peak load must be taken into account, if there are automated actions, such as the automatic generation of reports from an online store, then the load can be much more serious.

Here you can also get by with a processor from the Intel Xeon E3 line, for example, model 1240. RAM is enough for 8 GB, but 16 is better, and it is also worth using an SSD to host the application and DB.

1C server for 20 users

Here you need more powerful equipment than in the previous version. The option for a medium-sized business is optimal. SSD in such a system must be present by default, and it is recommended to use the processor at least Intel Xeon E3-1280 v6. Otherwise, there will be no margin for peak power.

Server 1C for 50 users

In this configuration, it is recommended to take into account the complexity of the tasks. If they do not create a serious load, then high capacities are not needed. If there is a strong or large database volume, then equipment with a high resource intensity will be required, in some cases a cluster of devices is required.

Usually, for this task, a dual-processor system based on Intel Xeon E5-2643 v4 processors is assembled. 2 of these CPUs are capable of covering the needs of an application and even a database. But, ideally, creating the SQL server is a separate cost.

Of course, in this case, solid-state drives are no longer just recommended, but vital, otherwise the disk subsystem will turn into a bottleneck.

1C server for 100 users

In this case, one device is not enough. Often a cluster of 1C servers is required, capable of performing operations in parallel and jointly. Individual development is required.

But the approximate configuration would be like this:

  1. Terminal application server. 2 Intel Xeon Silver 4215 processors to accommodate high TDW SSD application, dual power supplies, disk subsystem for system state backups.

    Server SQL. Similar processors, SSD with high DWPD, also two power supplies and a disk subsystem with RAID 1 for storing backups.

This is conditional, the specifics will depend on the final technical infrastructure.

Server for 1C for 200 users and more

With such a number of users, advanced equipment is needed that can cope with tasks of any complexity. As in the previous version, one device will not be enough, you need a cluster. The higher the total number of database calls and the number of employees, the more powerful equipment will be required and, accordingly, more devices in the cluster. There are no universal solutions, each is worked out individually.

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 implementation goes beyond 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 the mouse and running to the server room, you should clearly master the required minimum of knowledge, namely, to have an idea of ​​the structure of the 1C Enterprise server and the purpose of its 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 the components are interconnected in a cunning way, known to one developer. However, this is not so, and today we will figure out what our server consists of and how it all works with each other.

I would like to emphasize once again the extreme importance of what will be discussed below. Without this knowledge, it will be problematic to achieve stable operation, not to mention diagnosing bottlenecks and increasing productivity. As a result, you may get a classic picture: the hardware seems to be powerful, everything was done according to the instructions, but it slows down. Unfortunately, most of the instructions for beginners (including ours) contain information only on how to do it, without focusing on what exactly is being done and why. Therefore, we will begin to improve.

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. They are completely independent components that can be combined in any acceptable combination to achieve the best result. Consider the following diagram:

Let's start with clients, the current version of the platform (8.2) provides for the use of three types of clients. Let's take a closer look at them.

Fat client

This is a classic 1C client application; before the release of platform 8.2, it was the only available type of client. The scheme of the thick client is as follows: the client application requests data from the 1C server, then, in turn, requests them from the database and transfers 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 an interlayer between the client and the database, all calculations take place on the client. This imposes increased requirements on client PCs. the computing power of the server is not used. It should be clearly understood that in the 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 come back to this later. The scheme of its operation is fundamentally different: the client requests data from the 1C server, which receives them from the database, processes and gives the client the result of the calculations. In this case, the main computing load falls on the server, so there are no special requirements for the client PC and the channel from the client to the server.

Also, a thin client can work both over the TCP / IP protocol in the local network, and over 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 work with the program, network traffic is also significantly reduced, which is very important for office networks.

Web client

Its existence logically follows from some properties of a thin client, indeed, if all requests are processed by the server, the transport is HTTP, then why not use a browser for work? The operation scheme of the web client is no different from the thin client, but today not all functions supported by the thin client are implemented and work correctly in the web client. This can be partly corrected in the configuration, partly the mechanism for displaying information to 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. The visually driven application can be distinguished by its new interface, which features tabs and hyperlinks:

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

Today, only a part of typical configurations work in the managed application mode, such as: Management of a small company, Trade management 11, Retail 2 and Salary 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

Whenever possible, you should use a thin client, since this allows you to shift all calculations to the server side, it is comfortable to work even on slow channels, incl. through the Internet. 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, and you should be prepared for the absence or incorrect operation of some functions.

1C server cluster

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

Also, the system does not impose any platform requirements. 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 a 1C server running on a Linux platform will work together with a database server running Windows Server and IIS and vice versa. In addition, you can use several DBMS servers (as well as web servers) with different databases on different servers.

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

And finally, the most interesting thing: a cluster of 1C Enterprise servers. Yes, that's right, not a single server, but a cluster of servers. Usually this is where confusion begins, 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, but this approach easily allows you to scale the scheme by increasing its performance or fault tolerance.

Any cluster consists of the 1C Enterprise Central server and working servers. In its simplest configuration, it 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 both Windows and Linux servers.

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

For example, if you have a light 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 own task.