Set up terminal access 1s. Licensing in terminal mode

Why does your company need a Terminal Server for 1C?

Terminal server is a server on which several users can simultaneously work with 1C:Enterprise 8 without interfering with each other.

Technically, a terminal server is a very powerful computer (or cluster) connected via a network to terminal clients - which, as a rule, are low-power or outdated work computers, or specialized solutions for accessing the terminal server.

The IPWAY company offers a service for creating and setting up a 1C terminal server in your office, and also, if necessary, will take care of all issues related to the system administration of servers, maintenance and updating of 1C.

Terminal server for 1C also allows you to organize joint work in 1C from anywhere in the world where there is Internet.
1C server turns your team into a well-coordinated team.

By installing Terminal server for 1C running Windows Server 2012R2, you can:

  • transfer all 1C databases to a protected resource and information (this will allow you and your employees to always have any necessary data at hand and access it through mobile devices while away from the office);
  • simplify the procedure updates of all 1C databases ;
  • reduce costs for maintaining and updating a fleet of office computers, due to the fact that to work with a terminal server you need minimal computer power;
  • provide prompt secure access to the terminal server remote employees or companies (incoming accountant, auditor);

Why is it worth ordering the implementation of a terminal server for 1C from us?

Our company's specialists have accumulated extensive experience in implementing and migrating 1C programs to a terminal server running the Windows Server 2008/2012R2 operating system.

A comprehensive server solution for working together with 1C in terminal mode and based on Windows Server 2012 Introduction of additional services to an existing server We implement non-standard terminal server protection systems for 1C One-time work on additional configuration of 1C 1C terminal server maintenance and other company servers on an ongoing basis Maintenance and updating of 1C on a regular basis Setting up systems 1C terminal server backup

When deploying a 1C terminal server based on our “cloud” , discounts on implementation work can reach 100% depending on the chosen payment scheme and the number of resources ordered, i.e. implementation of 1C terminal server for your organization it can be absolutely FOR FREE!

Advantages of working in 1C on a terminal server


1C performance increases

The terminal server allows several users to work with several instances of the 1C program, which are actually running on one server. When working in a terminal, users receive only an image from the server, and the users send signals from their keyboard and mouse to the terminal server.

Increased reliability of 1C operation

When using terminal access to the 1C database, a failure or disconnection does not cause financial harm to the campaign and will not lead to significant loss of time, since all information is stored on the server. After the failure is resolved, the user will immediately see the same information (the same open documents, reports, etc.) as before the failure.

Provides remote access to 1C

Your remote employees (remote office, warehouse, auditors, etc.) will be able to connect to the terminal server remotely via the Internet and work with the common 1C database in real time. To provide remote work security, we recommend installing and configuring separate Internet gateway with a configured VPN server , which provides VPN data encryption based on SSL security keys and certificates.

Costs are reduced

To work, you will need a fairly powerful computer (server), however, powerful user computers are not required to work with the 1C terminal. Users will be able to work on weak machines (for example, thin clients), since data processing and storage is carried out on the terminal server, and user computers receive only the image.

Scope of work for deploying and configuring a 1C terminal server

Deploying and configuring a terminal server for 1C based on Windows Server 2012 may include the following stages of work:

SERVER INFRASTRUCTURE PLANNING

At this stage, our specialists will select a suitable solution for you, analyzing the dynamics of your company’s development and your requirements for a 1C server. In addition to the server operating system, a set of necessary 1C licenses, a hardware solution will also be selected and a backup policy will be developed.

INSTALLATION AND PRIMARY CONFIGURATION OF WINDOWS SERVER

After detailed infrastructure planning, as well as the purchase of equipment and licenses, the Windows 2012 server is installed and its initial configuration of basic components and services is carried out.

CONFIGURING WINDOWS SERVER SERVICES FOR 1C

At this stage of deployment, our specialists install the necessary additional server network and terminal services, 1C software and configure them in accordance with the plan drawn up at the first stage.

SETTING UP TERMINAL SERVER SECURITY FOR 1C

After completing the settings necessary for the server to operate, it is necessary to carry out work to ensure the security of the server and the safety of the data and 1C databases stored on it. Work is being done to protect the server from power failures and unauthorized connections, and rights to access information or network services are distributed to users.

ORGANIZATION OF SECURE REMOTE ACCESS TO 1C

The article discusses the nuances of installing and configuring a terminal server using the RDP protocol for working with 1c databases on the 8.3 platform based on the Xubuntu 14.04 distribution, taking into account the capabilities of the latest version of the xrdp server and real-life operating experience.

Not long ago (at the end of December 2016), the next release of the xrdp server version 0.9.1 was released. At the same time, a stable version of one of the xrdp “backends” was released - xorgxrdp v 0.2.0. We will use these versions later during installation.

A small but important digression

Linux distributions mainly contain an outdated version of the xrdp server version 0.6.x, which has bugs that prevent it from working normally with 1c (for example, the clipboard with Russian characters does not work properly).

Basically, when we consider installing a terminal server based on the rdp protocol on Linux, we consider options for installing an xrdp server with an X11Rdp backend assembly using special scripts, for example, X11RDP-o-Matic (for ubuntu) - on Habré, on infostart.

Using the X11Rdp backend has several disadvantages:

  • Quite a long build time
  • It is difficult to solve the problem with switching languages. After reconnecting to the session, switching languages ​​may no longer work. The author registered the problem on the developers' website - a guaranteed solution was found by the author only for the xorgxrdp backend by editing the source code (this method is used later in the article)
  • Rendering speed may not be fast enough for a comfortable user experience
Using the xorgxrdp backend allows you to avoid these problems.

This article discusses installing version 14.04 LTS on Xubuntu, rather than the more recent version 16.04 LTS, due to a performance hit when drawing the remote screen. There is a reported issue regarding this situation. Disabling compositor in the settings helped someone, but the author of the article was unable to achieve the same drawing speed as on Xubuntu 14.04.

For installation we use the 32-bit version of Xubuntu 14.04 OS. Link to image.

The system can be installed either on a host or in a virtual environment. I usually prefer KVM virtualization; production servers were installed on it.

When partitioning the disks, we used a classic scheme (not LVM), the ext4 file system. There are 3 fixed size disks connected to the virtual machine:

  • 22 GB: 18 GB mount point /, the rest for swap
  • 5 GB: mount point /var
  • 5 GB: mount point /tmp
This division is the author's preference, taking into account ease of use. In any case, when planning disk space, it is necessary to take into account the possible load on the file system. When using file databases, it is advisable to use SSD drive(s).

The server must be set to a static IP address.

To make it easier to enter commands for subsequent installation, you need to install the OpenSSH server:

Sudo apt-get install openssh-server sudo restart ssh
With the firewall activated, open port 22:

Firewall-cmd --add-port 22/tcp --permanent firewall-cmd --reload

Installing and configuring xrdp server with xorgxrdp backend

The developers' website has instructions for installing on Debian 8, we use it as a basis.

Install the necessary dependencies:

Sudo apt-get install git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev git
Create a directory for downloading distributions:

Mkdir -p ~/xrdp-xorg cd ~/xrdp-xorg BD=`pwd` cd "$(BD)"
We clone the current latest xrdp build from the repository and compile it with the rfxcodec codec:

Git clone git://github.com/neutrinolabs/xrdp cd xrdp git submodule init git submodule update cd librfxcodec ./bootstrap ./configure make cd .. ./bootstrap ./configure --enable-fuse --enable-rfxcodec - -disable-ipv6 make
Install xrdp on the system:

Sudo make install sudo ln -s /usr/local/sbin/xrdp(,-sesman) /usr/sbin sudo update-rc.d xrdp defaults
Download the xorg-xrdp backend distribution:

// Build and install xorgxrdp wget https://github.com/neutrinolabs/xorgxrdp/releases/download/v0.2.0/xorgxrdp-0.2.0.tar.gz cd "$(BD)" tar xvfz xorgxrdp-0.2.0 .tar.gz cd "$(BD)"/xorgxrdp-0.2.0
We set a strict rule for switching layouts from Russian to English using the Ctrl+Shift key combination to solve the problem of switching layouts. Correctness is checked by creating a session - 1st check, disconnect, connect again to the same session - check again.

In the terminal we assign the values ​​of temporary variables:

Kb_model="pc105" kb_layout="us,ru" kb_options="grp:ctrl_shift_toggle"
We replace the code in the source file:

Sed -ri.bak "s/(set.model)[^;]+/\1 = \"$kb_model\"/;s/(set.layout)[^;]+/\1 = \"$kb_layout \"/;s/(set.options)[^;]+/\1 = \"$kb_options\"/" xrdpkeyb/rdpKeyboard.c
Compile and install the xorg-xrdp backend on the system:

./bootstrap ./configure make sudo make install
It is advisable to swap the and blocks in the /etc/xrdp/xrdp.ini file so that the user has the correct backend by default. When connecting to the server, you need to select Xorg in the list of sessions.

If you need to change the default port from 3389 to another, edit the file /etc/xrdp/xrdp.ini: in the section change the value of the variable port=3389 to the required one.

With the firewall activated, open port 3389 (or the one to which the standard one was changed):

Firewall-cmd --add-port 3389/tcp --permanent firewall-cmd --reload
After the settings, restart the service

Service xrdp restart
Now you can connect to the server through a standard client with Windows or with Linux with any client that supports the rdp protocol.

Attention: before connecting, you must make sure that the keyboard layout on the client machine is set to English, otherwise you will not be able to enter the username and password in the xrdp server session selection window.

After installation, it is advisable to check that the clipboard with Cyrillic characters works normally in both directions. You can also make sure that copying files via the clipboard with Russian characters works (these are some of the main problems that have been fixed in the latest builds of the xrdp server and which previously prevented the xrdp-based terminal server from being used normally in a working environment).

Installing the 1C: Enterprise client version 8.3.9

Due to the fact that in the latest versions of the platform, the 1c company has brought the native client for Linux-based OS to a state with which you can work more or less comfortably, we will use it instead of trying to install wine, but on top of the client for Windows OS.

We install additional components necessary for correct operation:

Sudo apt-get install libgsf-1-114 sudo apt-get install ttf-mscorefonts-installer sudo apt-get install imagemagick
Download the client and server distribution to a folder from the 1c website:

Sudo dpkg -i *.deb sudo apt-get -f install
Since the 1c server components were needed only to satisfy dependencies, we disable the service:

Sudo update-rc.d srv1cv83 disable
If a network hasp key is used, then we will enter the search parameters:

Sudo mkdir /opt/1C/v8.3/i386/conf sudo su echo >/opt/1C/v8.3/i386/conf/nethasp.ini echo NH_TCPIP = Enabled>>/opt/1C/v8.3/i386 /conf/nethasp.ini echo >>/opt/1C/v8.3/i386/conf/nethasp.ini echo NH_SERVER_ADDR = 192.168.0.100>>/opt/1C/v8.3/i386/conf/nethasp.ini echo NH_TCPIP_METHOD = UDP>>/opt/1C/v8.3/i386/conf/nethasp.ini
If software licenses are used, they must be activated through the configurator (this can be done on an empty file database).

Correct setup with temporary files created by the 1C platform

During the work, we encountered a problem when external processing of filling out the tabular part works for one user, but not for another - a message about access rights violation is issued. The problem is that the 1C platform creates a temporary file /tmp/PrnForm.tmp, i.e. The path to the file is the same for different users. Accordingly, the first user who used the processing implicitly created a file in the temporary folder to which only he has access to change. Another user can no longer overwrite the file.

The solution is to correctly configure the system-wide umask, assign users to the same group, and also correctly configure the rights to the temporary /tmp folder.

Editing the system-wide mask. Editing the file:

/etc/login.defs
in it we change the value to:

Umask 002
We assign all terminal users to the Users group (if they have not been assigned previously, they can be assigned to another group).

Change permissions for the tmp folder

Chown -R root:Users /tmp chmod g+s /tmp
If you are using an exchange with the Bitrix website, then similar settings need to be made for the /var/log/bitrix folder.

A solution to a similar problem in relation to 1C is described in the article.

Solving the problem with the impossibility of downloading declarations from the ZUP 2.5 and Bukh 2.0 databases

There is one unpleasant feature that can prevent accountants on the 1C client for Linux from downloading declarations from the payroll database and accounting department - after selecting a file and trying to download it, a message like “No access to the [Directory Name] directory” will be displayed. Check that the upload directory name is correct!

Update 03/31/2017

Colleagues, please note that yesterday the xrdp developers released a new version of xrdp 0.9.2 and xordxrdp 0.2.1.
Based on the Release notes, the RemoteFX codec is now supported by default, so in theory there is no need to build it separately, as I indicated in the article. Also, the xorgxrdp backend is now used by default. A little later I’ll check how the installation is going now and make edits to the article.

Tags:

  • 1s
  • nix
  • ubuntu
Add tags

The 1C file mode of operation no longer meets all the requirements for using accounting and automation systems on an enterprise scale. Unlike the file mode, the client-server mode allows you to increase the speed of performing tasks with the 1C database and significantly reduce the number of problems related to data security. In client-server mode, work is carried out using a terminal server with an installed licensed program and database. In this model, user computers become terminal clients that do not perform technical tasks themselves, but use the computing power of the server. The terminal server does not have to be located in the company's office; it can be located in another city, country or continent. Terminal access to 1C is configured using special database management software, such as Microsoft SQL Server.

Working in 1C via terminal access reduces the cost of an enterprise's computer park. The requirements for client PCs are minimal, since the server serves client terminals using its own processors. Accordingly, the company does not invest in powerful computers. If desired, the user can work from anywhere in the world using terminal access to 1C via the Internet.

The client-server operating scheme significantly increases the reliability of the system. The failure of one or more computers will not affect the functionality of the database. In addition, work with terminal access to the 1C database no longer depends on network bandwidth. All that is transmitted to the terminal server are mouse and keyboard commands. The data itself is not transmitted over the network. Without the client's knowledge, it is almost impossible to copy databases stored on a terminal server, especially if it is located in another city or in another country.

How to use SQL server for 1C without purchasing a license

Terminal access to 1C and the implementation of Microsoft SQL involves additional costs for the acquisition and maintenance of the server, the purchase of user licenses for terminal services and licenses for SQL Server. Therefore, there is another solution - online work with licensed 1C client-server configurations. Each user works with 1C 8 remotely, and the company does not invest in installing equipment or purchasing expensive licenses. All costs are equivalent to renting a workstation with a licensed connection to 1C 24 hours a day, technical support and ITS updates.

Still working in 1C: Enterprise 8 on a local network? Test the Smart Office solution –

Photo by Alena Tulyakova, news agency “Clerk.Ru”

The article identifies the main mistakes that novice 1C administrators make and shows how to solve them using the Gilev test as an example.

The main purpose of writing this article is to avoid repeating obvious nuances for those administrators (and programmers) who have not yet gained experience with 1C.

The secondary goal is that if I have any shortcomings, Infostart will be the quickest to point this out to me.

V. Gilev’s test has already become a kind of “de facto” standard. The author on his website gave quite clear recommendations, but I will simply present some results and comment on the most likely errors. Naturally, the test results on your equipment may differ; this is just a guide for what should be and what you can strive for. I would like to note right away that changes must be made step by step, and after each step, check what result it gave.

There are similar articles on Infostart, I will put links to them in the relevant sections (if I miss something, please suggest me in the comments, I will add it). So, let’s assume your 1C is slow. How to diagnose the problem, and how to understand who is to blame, the administrator or the programmer?

Initial data:

Tested computer, main guinea pig: HP DL180G6, equipped with 2*Xeon 5650, 32 Gb, Intel 362i, Win 2008 r2. For comparison, the Core i3-2100 shows comparable results in the single-threaded test. The equipment I deliberately chose was not the newest; with modern equipment the results are noticeably better.

For testing separate 1C and SQL servers, SQL server: IBM System 3650 x4, 2*Xeon E5-2630, 32 Gb, Intel 350, Win 2008 r2.

To test a 10 Gbit network, Intel 520-DA2 adapters were used.

File version. (the database is on the server in a shared folder, clients connect via the network, CIFS/SMB protocol). Algorithm step by step:

0. Add Gilev’s test database to the file server in the same folder as the main databases. We connect from the client computer and run the test. We remember the result.

It is understood that even for old computers from 10 years ago (Pentium on 775 socket), the time from clicking on the 1C:Enterprise shortcut to the appearance of the database window should take less than a minute. (Celeron = slow).

If your computer is worse than a Pentium on 775 socket with 1 GB of RAM, then I sympathize with you, and it will be difficult for you to achieve comfortable work on 1C 8.2 in the file version. Think about either upgrading (it's high time) or switching to a terminal (or web, in the case of thin clients and managed forms) server.

If the computer is no worse, then you can kick the administrator. At a minimum, check the operation of the network, antivirus and HASP protection driver.

If Gilev’s test at this stage showed 30 “parrots” or higher, but the 1C working base still works slowly, the questions should be directed to the programmer.

1. As a guide to how much a client computer can “squeeze”, we check the operation of only this computer, without a network. We install the test database on a local computer (on a very fast disk). If the client computer does not have a normal SSD, then a ramdisk is created. For now, the simplest and free one is Ramdisk enterprise.

To test version 8.2, a 256 MB ramdisk is enough, and! The most important. After rebooting the computer, with the ramdisk running, there should be 100-200 MB free on it. Accordingly, without a ramdisk, for normal operation there should be 300-400 MB of free memory.

To test version 8.3, a 256 MB ramdisk is enough, but you need more free RAM.

When testing, you need to look at the processor load. In a case close to ideal (ramdisk), local file 1c loads 1 processor core when running. Accordingly, if during testing your processor core is not fully loaded, look for weak points. A little emotional, but generally correct, the influence of the processor on the operation of 1C is described. Just for reference, even on modern Core i3s with high frequencies, the numbers 70-80 are quite realistic.

The most common errors at this stage.

  • Incorrectly configured antivirus. There are many antiviruses, the settings for each are different, I will only say that with proper configuration, neither the web nor Kaspersky 1C interferes. With the default settings, approximately 3-5 parrots (10-15%) can be taken away.
  • Performance mode. For some reason, few people pay attention to this, but the effect is the most significant. If you need speed, then you must do this, both on client and server computers. (Gilev has a good description. The only caveat is that on some motherboards, if you turn off Intel SpeedStep, you cannot turn on TurboBoost).
In short, while 1C is running, there is a lot of waiting for a response from other devices (disk, network, etc.). While waiting for a response, if the performance mode is enabled, the processor lowers its frequency. A response comes from the device, 1C (the processor) needs to work, but the first clock cycles are at a reduced frequency, then the frequency increases - and 1C again waits for a response from the device. And so - many hundreds of times per second.

You can (and preferably) enable performance mode in two places:

  • via BIOS. Disable modes C1, C1E, Intel C-state (C2, C3, C4). In different bios they are called differently, but the meaning is the same. It takes a long time to search, a reboot is required, but if you do it once, then you can forget it. If you do everything correctly in the BIOS, the speed will increase. On some motherboards, you can configure the BIOS settings so that Windows performance mode will not play a role. (Examples of BIOS settings from Gilev). These settings mainly concern server processors or “advanced” BIOSes, if you haven’t found this and you DO NOT have Xeon, that’s okay.

  • Control panel - Power supply - High performance. Minus - if the computer has not been serviced for a long time, it will make a louder fan noise, heat up more and consume more energy. This is a performance fee.
How to check that the mode is enabled. Launch the task manager - performance - resource monitor - CPU. We wait until the processor is busy with nothing.
These are the default settings.

BIOS C-state enabled,

balanced power consumption mode


BIOS C-state enabled, high performance mode

For Pentium and Core you can stop there,

You can still squeeze a little "parrots" out of Xeon


In BIOS C-state is disabled, high performance mode.

If you don't use Turbo boost, this is what it should look like

server tuned for performance


And now the numbers. Let me remind you: Intel Xeon 5650, ramdisk. In the first case, the test shows 23.26, in the last - 49.5. The difference is almost twofold. The numbers may vary, but the ratio remains essentially the same for Intel Core.

Dear administrators, you can criticize 1C as much as you like, but if end users need speed, you need to enable high performance mode.

c) Turbo Boost. First you need to understand whether your processor supports this function, for example. If it supports, then you can still quite legally get some performance. (I don’t want to touch on the issues of frequency overclocking, especially servers, do it at your own peril and risk. But I agree that increasing Bus speed from 133 to 166 gives a very noticeable increase in both speed and heat dissipation)

How to turn on turbo boost is written, for example, . But! For 1C there are some nuances (not the most obvious). The difficulty is that the maximum effect of turbo boost occurs when C-state is turned on. And we get something like this:

Please note that the multiplier is the maximum, the Core speed is beautiful, and the performance is high. But what will happen as a result with 1s?

But in the end it turns out that according to CPU performance tests the version with a multiplier of 23 is ahead, according to Gilev’s tests in the file version the performance with a multiplier of 22 and 23 is the same, but in the client-server version - the version with a multiplier of 23 is terrible terrible terrible (even if C -state set to level 7, it is still slower than with C-state turned off). Therefore, the recommendation is to check both options for yourself and choose the best one. In any case, the difference between 49.5 and 53 parrots is quite significant, especially without much effort.

Conclusion - turbo boost must be turned on. Let me remind you that it is not enough to enable the Turbo boost item in the BIOS, you also need to look at other settings (BIOS: QPI L0s, L1 - disable, demand scrubbing - disable, Intel SpeedStep - enable, Turbo boost - enable. Control Panel - Power Options - High Performance) . And I would still (even for the file version) choose the option where c-state is turned off, even though the multiplier is smaller. It will turn out something like this...

A rather controversial point is the memory frequency. For example, memory frequency is shown to have a very strong influence. My tests did not reveal such a dependence. I will not compare DDR 2/3/4, I will show the results of changing the frequency within the same line. The memory is the same, but in the BIOS we are forced to set lower frequencies.




And test results. 1C 8.2.19.83, for the file version local ramdisk, for client-server 1C and SQL on one computer, Shared memory. Turbo boost is disabled in both versions. 8.3 shows comparable results.

The difference is within the measurement error. I specifically pulled out screenshots of CPU-Z to show that with a change in frequency, other parameters also change, the same CAS Latency and RAS to CAS Delay, which neutralizes the change in frequency. The difference will be when the memory modules are physically changed, from slower to faster, but even there the numbers are not particularly significant.

2. When we have sorted out the processor and memory of the client computer, we move on to the next very important place - the network. Many volumes of books have been written about network tuning, there are articles on Infostart (, and others), but here I will not focus on this topic. Before starting testing 1C, please make sure that iperf between two computers shows the entire bandwidth (for 1 Gbit cards - well, at least 850 Mbit, or better yet 950-980), that Gilev’s advice has been followed. Then - the simplest test of operation will be, oddly enough, copying one large file (5-10 gigabytes) over the network. An indirect sign of normal operation on a 1 Gbit network will be the average copying speed of 100 MB/sec, good operation - 120 MB/sec. I would like to draw your attention to the fact that the weak point (including) may be the processor load. The SMB protocol on Linux is quite poorly parallelized, and during operation it can quite easily “eat up” one processor core and not consume any more.

And further. With the default settings, the windows client works best with a windows server (or even a windows workstation) and the SMB/CIFS protocol, a linux client (debian, ubuntu didn’t look at the others) works better with linux and NFS (it also works with SMB, but on NFS parrots are taller). The fact that during linear copying a Windows Linux server to NFS is copied into one stream faster does not mean anything. Debian tuning for 1C is a topic for a separate article, I’m not ready for it yet, although I can say that in the file version I got even slightly better performance than the Win version on the same equipment, but with postgres with over 50 users I still have everything very bad.

The most important thing that “burned” administrators know, but beginners do not take into account. There are many ways to set the path to the 1c database. You can do servershare, you can do 192.168.0.1share, you can net use z: 192.168.0.1share (and in some cases this method will also work, but not always) and then specify drive Z. It seems that all these paths point to the same thing the same place, but for 1C there is only one method that provides normal performance quite reliably. So, this is what you need to do correctly:

On the command line (or in policies, or whatever is convenient for you) - do net use DriveLetter: servershare. Example: net use m: serverbases. I specifically emphasize NOT the IP address, but the server name. If the server name is not visible, add it to the dns on the server, or locally to the hosts file. But the address must be by name. Accordingly, on the way to the database, access this disk (see picture).

And now I will show with numbers why this is the advice. Initial data: Intel X520-DA2, Intel 362, Intel 350, Realtek 8169 cards. OS Win 2008 R2, Win 7, Debian 8. Latest drivers, updates applied. Before testing, I made sure that Iperf gives the full bandwidth (except for 10 Gbit cards, it only managed to squeeze out 7.2 Gbit, I’ll see why later, the test server is not yet configured properly). The disks are different, but everywhere there is an SSD (I specially inserted a single disk for testing, it is not loaded with anything else) or a raid from an SSD. The speed of 100 Mbit was obtained by limiting the settings of the Intel 362 adapter. There was no difference between 1 Gbit copper Intel 350 and 1 Gbit optical Intel X520-DA2 (obtained by limiting the speed of the adapter). Maximum performance, turbo boost is turned off (just for comparability of results, turbo boost for good results adds a little less than 10%, for bad results it may not have any effect at all). Versions 1C 8.2.19.86, 8.3.6.2076. I don’t give all the numbers, but only the most interesting ones, so that you have something to compare with.

100 Mbit CIFS

Win 2008 - Win 2008

contact by ip address

100 Mbit CIFS

Win 2008 - Win 2008

calling by name

1 Gbit CIFS

Win 2008 - Win 2008

contact by ip address

1 Gbit CIFS

Win 2008 - Win 2008

calling by name

1 Gbit CIFS

Win 2008 - Win 7

calling by name

1 Gbit CIFS

Win 2008 - Debian

calling by name

10 Gbit CIFS

Win 2008 - Win 2008

contact by ip address

10 Gbit CIFS

Win 2008 - Win 2008

calling by name

11,20 26,18 15,20 43,86 40,65 37,04 16,23 44,64
1C 8.2 11,29 26,18 15,29 43,10 40,65 36,76 15,11 44,10
8.2.19.83 12,15 25,77 15,15 43,10 14,97 42,74
6,13 34,25 14,98 43,10 39,37 37,59 15,53 42,74
1C 8.3 6,61 33,33 15,58 43,86 40,00 37,88 16,23 42,74
8.3.6.2076 33,78 15,53 43,48 39,37 37,59 42,74

Conclusions (from the table and from personal experience. Applies only to the file version):

  • Over the network, you can get quite normal numbers for work if this network is properly configured and the path is entered correctly in 1C. Even the first Core i3 can easily produce 40+ parrots, which is quite good, and these are not only parrots, in real work the difference is also noticeable. But! The limitation when working with several (more than 10) users will no longer be the network, here 1 Gbit is still enough, but blocking during multi-user work (Gilev).
  • the 1C 8.3 platform is many times more demanding in terms of proper network configuration. Basic settings - see Gilev, but keep in mind that everything can be influenced. I saw an acceleration from uninstalling (and not just turning off) the antivirus, from removing protocols like FCoE, from changing drivers to an older, but Microsoft certified version (especially for cheap cards like ASUS and DLC), from removing the second network card from the server . There are a lot of options, set up your network carefully. There may well be a situation where platform 8.2 gives acceptable numbers, and 8.3 - two or even more times less. Try playing with platform versions 8.3, sometimes you get a very big effect.
  • 1C 8.3.6.2076 (maybe later, I haven’t looked for the exact version yet) is still easier to configure over the network than 8.3.7.2008. I was able to achieve normal operation over the network from 8.3.7.2008 (in comparable parrots) only a few times; I could not repeat it for a more general case. I didn’t understand much, but judging by the foot wraps from Process Explorer, the recording there is not as good as in 8.3.6.
  • Despite the fact that when working on a 100 Mbit network, its load graph is small (we can say that the network is free), the operating speed is still much less than on 1 Gbit. The reason is network latency.
  • All other things being equal (a well-functioning network) for 1C 8.2 the Intel-Realtek connection is 10% slower than Intel-Intel. But realtek-realtek can generally give sharp subsidence out of the blue. Therefore, if you have money, it’s better to keep Intel network cards everywhere; if you don’t have money, then install Intel only on the server (your CO). And there are many times more instructions for tuning Intel network cards.
  • Default antivirus settings (using drweb version 10 as an example) take up about 8-10% of parrots. If you configure it as it should (allow the 1cv8 process to do everything, although it is not safe), the speed is the same as without an antivirus.
  • Do NOT read Linux gurus. A server with samba is great and free, but if you install Win XP or Win7 (or even better - server OS) on the server, then the file version of 1c will work faster. Yes, samba and the protocol stack and network settings and much, much more can be well tuned in debian/ubuntu, but this is recommended for specialists. There is no point in installing Linux with default settings and then saying that it is slow.
  • It's quite a good idea to check the operation of disks connected via net use using fio . At least it will be clear whether these are problems with the 1C platform, or with the network/disk.
  • For the single-user version, I can’t think of tests (or a situation) where the difference between 1 Gbit and 10 Gbit would be visible. The only thing where 10Gbit for the file version gave better results is connecting disks via iSCSI, but this is a topic for a separate article. Still, I think that for the file version 1 Gbit cards are enough.
  • I don’t understand why, with a 100 Mbit network, 8.3 works noticeably faster than 8.2, but it was a fact. All other equipment, all other settings are absolutely the same, it’s just that in one case 8.2 is tested, and in the other - 8.3.
  • Non-tuned NFS win-win or win-lin gives 6 parrots, I did not include them in the table. After tuning I got 25, but it was unstable (the difference in measurements was more than 2 units). I can’t yet give recommendations on using Windows and the NFS protocol.
After all the settings and checks, we run the test again from the client computer and rejoice at the improved result (if it works). If the result has improved, there are more than 30 parrots (and especially more than 40), fewer than 10 users are working at the same time, and the working database is still slow - almost certainly a problem with the programmer (or you have already reached the peak capabilities of the file version).

Terminal server. (the database is on the server, clients connect via the network, RDP protocol). Algorithm step by step:

  • We add Gilev’s test database to the server in the same folder as the main databases. We connect from the same server and run the test. We remember the result.
  • In exactly the same way as in the file version, we configure the processor. In the case of a terminal server, the processor generally plays the main role (it is assumed that there are no obvious weak points, such as lack of memory or a huge amount of unnecessary software).
  • Configuring network cards in the case of a terminal server has virtually no effect on the operation of 1c. To ensure “special” comfort, if your server produces more than 50 parrots, you can play with new versions of the RDP protocol, just for the comfort of users, faster response and scrolling.
  • When a large number of users are actively working (and here you can already try connecting 30 people to one database, if you try), it is very advisable to install an SSD drive. For some reason, it is believed that the disk does not particularly affect the operation of 1C, but all tests are carried out with the controller cache enabled for writing, which is incorrect. The test base is small, it fits well into the cache, hence the high numbers. On real (large) databases everything will be completely different, so the cache is disabled for tests.
For example, I checked the operation of the Gilev test with different disk options. I installed the discs from what was at hand, just to show the tendency. The difference between 8.3.6.2076 and 8.3.7.2008 is small (in the Ramdisk Turbo boost version 8.3.6 produces 56.18 and 8.3.7.2008 produces 55.56, in other tests the difference is even smaller). Power consumption - maximum performance, turbo boost disabled (unless otherwise stated).
Raid 10 4x SATA 7200

ATA ST31500341AS

Raid 10 4x SAS 10kRaid 10 4x SAS 15kSingle SSDRamdiskRamdiskCache enabled

RAID controller

21,74 28,09 32,47 49,02 50,51 53,76 49,02
1C 8.2 21,65 28,57 32,05 48,54 49,02 53,19
8.2.19.83 21,65 28,41 31,45 48,54 49,50 53,19
33,33 42,74 45,05 51,55 52,08 55,56 51,55
1C 8.3 33,46 42,02 45,05 51,02 52,08 54,95
8.3.7.2008 35,46 43,01 44,64 51,55 52,08 56,18
  • The enabled RAID controller cache eliminates all the differences between the disks; the numbers are the same for both sat and cas. Testing with it on a small amount of data is useless and is not indicative of any kind.
  • For platform 8.2, the difference in performance between SATA and SSD options is more than double. This is not a typo. If you look at the performance monitor during the test on SATA drives. then you can clearly see “Active disk operating time (in%)” 80-95. Yes, if you enable the cache of the disks themselves for recording, the speed will increase to 35, if you enable the cache of the raid controller - up to 49 (regardless of which disks are being tested at the moment). But these are synthetic cache parrots; in real work, with large databases, there will never be a 100% write cache hit ratio.
  • The speed of even cheap SSDs (I tested on Agility 3) is quite enough to run the file version. The recording resource is another matter, you need to look at it in each specific case, it is clear that the Intel 3700 will have it an order of magnitude higher, but the price is corresponding. And yes, I understand that when testing an SSD disk, I also test the cache of this disk to a greater extent, the real results will be less.
  • The most correct (from my point of view) solution would be to allocate 2 SSD disks in a mirrored raid for a file database (or several file databases), and not place anything else there. Yes, with a mirror, SSDs wear out equally, and this is a minus, but at least the controller electronics are somehow protected from errors.
  • The main advantages of SSD drives for the file version will appear when there are many databases, each with several users. If there are 1-2 databases, and there are about 10 users, then SAS disks will be enough. (but in any case, look at loading these disks, at least through perfmon).
  • The main advantages of a terminal server are that it can have very weak clients, and the network settings affect the terminal server much less (again, your K.O.).
Conclusions: if you run the Gilev test on a terminal server (from the same disk where the working databases are located) and at those moments when the working database slows down, and the Gilev test shows a good result (above 30), then the slow operation of the main working database is to blame most likely a programmer.

If Gilev’s test shows small numbers, and you have a high-clock processor and fast disks, then the administrator needs to take at least perfmon, recording all the results somewhere, and watch, observe, and draw conclusions. There will be no definitive advice.

Client-server option.

Tests were carried out only on 8.2, because on 8.3 everything depends quite seriously on the version.

For testing, I chose different server options and networks between them to show the main trends.

1C: Xeon 5520

SQL: Xeon E5-2630

1C: Xeon 5520

SQL: Xeon E5-2630

Fiber channel - SSD

1C: Xeon 5520

SQL: Xeon E5-2630

Fiber channel - SAS

1C: Xeon 5650

SQL: Xeon E5-2630

1C: Xeon 5650

SQL: Xeon E5-2630

Fiber channel - SSD

1C: Xeon 5650

SQL: Xeon E5-2630

1C: Xeon 5650 =1C: Xeon 5650 =1C: Xeon 5650 =1C: Xeon 5650 =1C: Xeon 5650 =
16,78 18,23 16,84 28,57 27,78 32,05 34,72 36,50 23,26 40,65 39.37
1C 8.2 17,12 17,06 14,53 29,41 28,41 31,45 34,97 36,23 23,81 40,32 39.06
16,72 16,89 13,44 29,76 28,57 32,05 34,97 36,23 23,26 40,32 39.06

It seems that I have considered all the interesting options, if there is anything else you are interested in, write in the comments, I will try to do it.

  • SAS on storage systems is slower than local SSDs, even though the storage systems have larger cache sizes. SSDs, both local and on storage systems for Gilev’s test work at comparable speeds. I don’t know any standard multi-threaded test (not just recording, but all equipment) except for the 1C load test from the MCC.
  • Changing the 1C server from 5520 to 5650 almost doubled the performance. Yes, the server configurations do not completely match, but it shows a trend (no surprise).
  • Increasing the frequency on the SQL server certainly gives an effect, but not the same as on the 1C server; MS SQL server is excellent (if you ask it) to use multi-cores and free memory.
  • Changing the network between 1C and SQL from 1 Gbit to 10 Gbit gives approximately 10% parrots. I expected more.
  • Enabling Shared memory still gives an effect, although not 15%, as described in the article. Be sure to do it, fortunately it’s quick and easy. If during installation someone gave the SQL server a named instance, then for 1C to work, the server name must be specified not by FQDN (tcp/ip will work), not through localhost or just ServerName, but through ServerNameInstanceName, for example zz-testzztest. (Otherwise there will be a DBMS error: Microsoft SQL Server Native Client 10.0: Shared Memory Provider: The shared memory library used to establish a connection with SQL Server 2000 was not found. HRESULT=80004005, HRESULT=80004005, HRESULT=80004005, SQLSrvr: SQLSTATE=08001, state=1, Severity=10, native=126, line=0).
  • For users less than 100, the only point in splitting it into two separate servers is a Win 2008 Std (and older) license, which only supports 32GB of RAM. In all other cases, 1C and SQL definitely need to be installed on one server and given more (at least 64 GB) memory. Giving MS SQL less than 24-28 GB of RAM is unjustified greed (if you think that you have enough memory for it and everything works fine, maybe the file version of 1C would be enough for you?)
  • How worse the combination of 1C and SQL works in a virtual machine is the topic of a separate article (hint - noticeably worse). Even in Hyper-V everything is not so clear...
  • Balanced performance mode is bad. The results are quite consistent with the file version.
  • Many sources say that debugging mode (ragent.exe -debug) causes a significant decrease in performance. Well, it reduces, yes, but I wouldn’t call 2-3% a significant effect.
There will be the least amount of advice here for a specific case, because... The brakes in the client-server version of work are the most difficult case, and everything is configured very individually. The easiest way is to say that for normal operation you need to take a separate server ONLY for 1C and MS SQL, put there processors with the maximum frequency (above 3 GHz), SSD drives for the database, and more memory (128+), do not use virtualization. It helped - great, you are lucky (and there will be a lot of such lucky ones, more than half of the problems can be solved with an adequate upgrade). If not, then any other options require separate consideration and settings.

1C terminal access, in some cases, helps solve multi-user access problems that arise when network equipment fails. Why else is it needed, how to organize it, what are its strengths and weaknesses - we will try to answer all these questions in this article.

When terminal access may be needed

Fig.1 Remote desktop connection window.

With other methods of working with the database, either a significant part of the work, or all the main work with the database, occurs on the user’s computer, while working in terminal mode, the user’s PC actually turns into an information input/output device. This leads to the first important advantage that the 1c terminal mode provides - a reduction in the minimum system requirements for the operator’s workplace.

In addition, terminal server for 1C:

  1. Allows you to significantly reduce network load. Instead of a large array of data transferred back and forth, in fact, a picture is transferred to the client, and only the entered information is transferred to the server;
  2. Protects the database both from unauthorized attempts to access it and significantly complicates copying the database from third-party resources;
  3. Significantly speeds up work if the file mode is configured;
  4. Significantly reduces the material costs required for modernization. To improve the quality of work, it is enough to update the 1C terminal server, leaving the client-side hardware unchanged;
  5. There is no need to install the platform on all operator computers.

Important! The main requirement for a client computer in terminal mode is the screen size and resolution. Sometimes, even on 17′ low-resolution screens, some form elements are displayed incorrectly.

Licensing in terminal mode

When considering this issue, first of all it is necessary to decide what licenses the 1C company issues. They can be divided into two main types:

  1. Client;
  2. Server.

In turn, client ones can be divided into:

  • Multi-user. Such licenses, purchased for a certain number of users, allow you to run the program on several personal computers. Licensing occurs either through the web server module or through the license issuing server;
  • Single-user. In this case, an unlimited number of applications can be run on one computer.
  • Combined - initially contains both licensing options, but after activation with a PIN code, they work exclusively in one selected mode.

When setting up a terminal server for 1C, you should take into account that server licenses are divided into 32 and 64 bit versions, while the latter installed on the server allows you to run the 32 bit version without any problems.

In this case, a multi-user license installed on a 1C terminal will be used as several single-user ones.

Thus, setting up a 1C terminal server supports the use of any type of license. In this case, distribution is carried out not only for clients connected in desktop mode but also for users working through a remote application. In the latter case, a situation often arises where each new user connection creates a new session, and, therefore, one license is occupied. To correct this unpleasant situation, it is necessary to limit the user to one session in the terminal server settings.

Problem when running 1C with terminal access on Windows Server 2012R2

Some users have encountered a situation where 1C slows down in the terminal on WS 2012R2. At the same time, all the hardware indicators are quite high, installing another OS significantly increases the operating speed, and overloads are not noticeable.

Naturally, there can be many reasons. Last but not least, you should take a closer look at the Dynamic Fair Share Scheduling mode, which first appeared in this version of the server operating system. Enabling this mode allows the operating system to independently distribute CPU resources between users. Thus, even on a powerful computer, this mode can artificially limit processing speed.

To disable this mode, you need to change the parameters in the register branches HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet-> Control-> Session Manager-> Quota System(EnableCPUQuota parameter to 0) and in the branch HKEY_LOCAL_MACHINE-> SYSTEM-> CurrentControlSet-> Services-> TSFairShare-> Disk (EnablaFairSharealso to 0).

We won’t say that this is a panacea, but it is quite suitable as one of the cures for terminal server slowdowns.