In software 1C, as in any other, sometimes errors occur. This does not allow the software to function properly and can slow down the work of the whole organization. Therefore, you need to know how to cope with various failures. In particular, today we will analyze what caused the error “2147221164 (0x80040154): Class is not registered”, and what needs to be done to fix it.
The content of the article:
When the error 2147221164 appears
The error “2147221164 (0x80040154): Class is not registered” appears due to a conflict of 1C versions that are currently establishing a connection with each other. We will analyze in more detail. Information DB 1C exchange data using a COM connection. And, if, for example, the 1C: Enterprise platform of configuration 8.3 tries to establish communication with 1C version 8.1, then at this stage, when trying to connect to the COM server, this error pops up.
First, let's determine that the 1C server has several versions:
- 32-bit 8.1 (x86).
- 64-bit 8.2 and 8.3 (x64).
Problems appear on the server itself with the database. The root of the problem is that x64 versions of 1C architecture cannot directly access the 32-bit comcntr.dll library. In this case, the connection is made using COM + applications capable of interacting with x86 libraries.
Coping with the problem
We finish with the theory and proceed to practice - we try to correct the error “2147221164 (0x80040154): The class is not registered”.
Registering the comcntr.dll library
An error may occur if the comcntr.dll library is not registered. We solve it as follows. Call the "Run" line (by clicking the Start button on the PCM) and enter regsvr32.exe "C: \ Program Files (86) \ 1cv82 \ 8.3.XX.XXXX \ bin \ comcntr.dll". Click OK and, if everything went well, we will see a message about the successful registration of the library.
Create a new application COM +
If the library is registered, but the problem remains, then click the Start button (for Windows 10 OS) and call the Control Panel. Then we enter the "System and Security" section, after which we go to the "Administration". A window appears in which we search for the “Component Services” line and open it with a double click on the LMB. In the new console, double-click on the “Computer” folder and then “My Computer”. A list of folders appears before us. «Приложение». PKM click on “COM + Applications” and select “Create” → “Application”.
Next, proceed as follows.
- In the wizard that opens, click "Next" and, when in the next window we are offered an option to choose, click "Create a new application".
- In the corresponding line, we assign a name to the new application, which will be understood not only by us, but also by other users during further work, for example, 1CV8_ComConnect. Here we select the activation method - “Server Application”.
- Now we carry out the certification procedure. In the “Specified User” field, using the “Browse” function, we are looking for an account under which we will run 1C version 8.3 server. (For example, we denote it as User1CV83).
- We skip the procedures offered in the following windows and click the "Finish" button. Master closes.
- We return to the “Component Services” window and open the branch of our newly created application. Expand the "Roles" node, in which we click on the CreatorOwner item. PCM click on the line "Users" and create a new user. Again, select the account under which the 1C server will be launched (this is the same User1CV83, which was discussed above).
- Go to the application branch 1CV8_ComConnect and click RMB on the node "Components". Create a new component.
- In the wizard that opens, make a selection of the item “Installing new components” and, when the following window appears, define the dll library we need (it is located on the path C: \ Program Files (x86) \ 1cv81 \ bin \). We complete the work of the Master.
- We have a component 1CV81.ComConnect.1. We click on it with PKM and open the item “Properties”. In the “Security” tab we find the list of “Roles explicitly set for the selected objects” and check the box opposite CreatorOwner.
It may be useful for you: Detected a violation of the integrity of the system in 1C what to do .
We reviewed the connection to the database from the 1C: Enterprise version 8.3 program. If you plan to establish a connection with the database 8.1 from version 1C 8.2, then you need to add a new user. Роли → CreatorOwner → Пользователи и добавляем новую учетную запись User1CV82, под которой будет производиться запуск сервера 1С версии 8.2. Go to the path 1CV8_ComConnect → Roles → CreatorOwner → Users and add a new account User1CV82, under which will be launched 1C version 8.2 server.
If you calmly and carefully follow the algorithm, the correction of the error will actually be simple and fast. Due to the above actions, the program 1C versions 8.2 and 8.3 will be able to apply for information to the comcntr.dll library and the error "2147221164 (0x80040154): Class is not registered" will no longer occur.