Why 1C is bad and why 1C programmers are so disliked
We continue what we have already done a lot.
Not so long ago, a client with a well-known problem turned to me again. His company installed updates 1C. And the work stopped because the program stopped working correctly. I think that this situation is very familiar to everyone who came across software from 1C as a programmer or user.
Of course, in this particular case, I tried to solve all the problems in the shortest possible time, and, as a result, the office work returned to its usual course. But even in this situation, I received a lot of negativity from the client. And then I thought about why there are so many problems with 1C software products, why there is so much negative from customers, and 1C-programmers themselves often do not like, including other programmers?
In this article, I decided to offer my version of the reasons that lead to such a negative. I will try to use as few specific terms as possible so that the text can be understood by as many readers as possible.
At the same time, I personally for some time was engaged exclusively in 1C programming, and today I am very actively using 1C software products in my work, and I am very grateful to this company for giving me the opportunity to earn money.
But on the other hand, I believe that the reasons for the negative must also be understood. At least not to leave all this at the level of intuition and emotions.
How did 1C start? Let's remember!
Personally, I started working with 1C software from version 6.0. According to my feelings, this program was a little more complicated than the various accounting options that were maintained in Excel spreadsheets.
It was replaced by the 7th version, including its most successful release - 1C 7.7. This was already a fairly powerful software product, which was very widespread throughout the post-Soviet space. By this time, most users are so used to working with 1C that the ability to use these programs has become one of the conditions for hiring accountants, various office staff, as well as managers, storekeepers, etc.
In principle, 1C 7.7 quite successfully solved the problems associated with various types of accounting. Moreover, this software product is still used in some cases, which also indicates its popularity.
Then 1C developers presented a fundamentally new software product - 1C 8.0, and a little later - version 8.2. Now the current version is 8.3.
Now this software is striking in its breadth of capabilities and at the same time the complexity of the system .
Today, 1C provides its customers with an entire ecosystem:
- Powerful developer platform.
- The environment for conducting various types of accounting and analytics
- The ability to connect different trading equipment
- The widest network of partners
- Multifunctional CMS for creating sites
At the same time, together and separately, all the components of this ecosystem do not function in the best way. Often there are problems, malfunctions, additional time and money are required, which, of course, causes rejection.
Updates 1C: how it works
I would like to briefly recall how the software of the 1C family works today. In most cases, the user buys one or more software products consisting of a platform and an application written on this platform - the so-called configuration.
Next, the programmer adjusts the work of the selected configurations to the needs of a particular company, often installs additional plugins, finalizes certain reports, creates new documents that participate as an internal document flow in this company, etc.
At the same time, both in the platform and in any configuration there is a fairly large number of bugs from the developer. And the system itself is so complex and voluminous that it is very difficult to fix these bugs with the help of the 1C programmer and most importantly is disadvantageous for the end user. Moreover, both the platform and the configurations themselves are distinguished by such unpleasant quality as the lack of modularity.
As a result, you have to install updates to fix bugs. In this case, the platform and / or configuration is updated every time. Naturally, such a solution takes a lot of time, and if it comes to configuration, then the settings, additional plug-ins and other improvements made by the programmer will most likely have to be performed anew.
But this is not the saddest thing in the situation with 1C updates. The saddest thing is on the developer's site that updates come out very often, sometimes even 3-4 times a month. In some cases, minor errors are corrected, in some, serious bugs related to the operation of the entire system.
Each new version is an addition of functionality and a kind of “patch” to the bugs of the previous one, which corrects old errors, but almost always carries new ones. Therefore, the installation of updates is a largely unpredictable process .
Lack of modularity: why it is so important
First, let's talk directly about the platform. 1C programmers know how bulky it has become. I already wrote about the lack of modularity above. The product code contains so-called subsystems, but they do not meet the requirements of modularity, and therefore are simply some kind of attempt to structure the code.
Why do I personally consider the lack of modularity a problem? Let's look at an example. Suppose, there is a need to modify some functions necessary for the successful work of the Trade Administration or to make changes to the means of storing balances. But in the 1C platform, everything is interconnected, and therefore you also have to drag along updates for work with salaries, accounting, etc. etc.
In the absence of modularity, in order to make even the smallest changes, you have to study the entire array, the entire platform.
At the same time, the 1C platform is very large and bulky. So much has been collected in it today that at first it even arouses admiration because of the wealth of opportunities. But as you use this platform, admiration passes quickly enough. In an effort to make the program universal, 1C developers have added many different possibilities to the platform.
And now you get both a powerful tool, a convenient visual interface and ... many problems and bugs due to the complexity of the system.
I will give one more example. Suppose I only need Trade to work. The company no longer uses anything, neither a mobile interface, nor bookkeeping, nor an online store, nor any other components. But no matter what, when I receive updates, I get the whole platform, including the functionality necessary for the operation of components that I do not use. Those. in spite of the fact that I use the Trade, and the updates are designed to work with the Accounting department, I have to download and install the entire platform.
Licensing policy and system bugs
When updating the platform quite often, users are faced with the fact that license keys stop working. If you have not personally encountered such a situation, just type in the search engine “After the update 1C stopped working,” and you will see how common this problem is.
So imagine a situation. There is a company that employs, for example, 30 people. After the update, the program stopped accepting license keys. The company's work is paralyzed. The company incurs losses.
Important issue: Unpredictability of the platform’s behavior during the upgrade.
In addition to the fact that the license often flies, after updating the platform, it may contain new functionality, which may also not work correctly. But to check the quality of work and identify new bugs of the new version of the program is possible only in practice, i.e. in progress.
I remind you that the platform is very large, cumbersome, and therefore it is simply unrealistic to test it with the programmer’s efforts in a short time. And all this must be taken into account with each update.
So, the situation for the programmer looks like this:
- With each update, I get a lot of unnecessary, as the platform is updated completely, and there is no way to remove or not install tools that will not be used in the future.
- Nevertheless, updates are necessary, since this is the only way to "cure" current bugs that are known or have not yet been identified by the programmer
- In this case, the new update usually carries new bugs that will be fixed in the next version.
Thus, the circle closed. And the programmer has to install new versions from time to time, despite the new problems that they carry.
Why are there so many bugs?
The main reason for the abundance of bugs in my humble opinion is the complexity of the system. Remember, now 1C platform is available for Windows 32 and 64 bit, for Linux, server version, mobile, etc. The complexity of the support is very high, and as practice shows, 1C developers simply can not cope with the support.
Due to the lack of modularity, additional difficulties also arise, since it is practically impossible to identify all errors and debug such a bulky software product. As a result, new updates are constantly being released.
Another very important reason for the constant presence of bugs and the situation with them is the lack of competition. In fact, 1C is now a monopolist.
Of course, alternative software products are being created, some of which are quite decent. But all of them so far are applied solutions that can solve certain problems, while 1C is an entire ecosystem.
Moreover, 1C is distinguished by a very powerful and aggressive marketing, everyone knows about this software.
That is precisely why I affirm that today 1C does not exist a worthy competitor in the post-Soviet space. And the lack of competition always leads to a decrease in the quality of the product itself, which we observe in 1C: constant "raw" updates, constant bugs, lack of detailed documentation for updates, etc.
Therefore, I personally advise all my clients not to be updated without special need. By the way, I received the same advice myself from one of the people who stood at the origins of 1C.
Of course, there are always some bugs in the current version, but if you work without problems, then these bugs are not critical for you. What will happen in the new version is impossible to predict. Therefore, updates should be installed only when it becomes really necessary for work.
Flagships. Typical configurations
The 1C software product line is based on typical configurations. On the site 1C ready-made boxed solutions presented quite a lot.
But the majority of users working uses only 4 configurations:
- Enterprise Accounting
- Trade management
- Production Management
- Salary and HR Management
And each of the configurations has the same drawbacks as the platform:
- Lack of modularity
- Bulky and a lot of extra features
- New bugs in new versions
- Unpredictable update result
At the same time, for each update, you need to analyze what exactly was updated, conduct the update itself, and reconfigure the configuration. But configuration updates also come out so often that sorting them out becomes problematic.
In addition, due to the lack of modularity, most often you have to update, even if the changes concern functions that you are not using. Just because an error in this functionality can lead to incorrect operation of other modules.
If we talk about Trade, then my practice shows that in fact people use no more than 30% of all the functionality of this component. The situation is similar in other typical configurations. In pursuit of the realization of the maximum number of possibilities, the developers created very bulky and complex products in which everything is interconnected, and therefore it is not always possible to disable unnecessary functionality.
For example, when updating the Trade, the developers added a new bonus system. The client does not use bonuses at all. He does not need them. But if you try to disable these bonuses, the discount system starts to work incorrectly. I faced this situation in practice. Of course, to solve this problem, the help of a programmer was required.
Recently, I have come to the conclusion that at the end of the project I advise all clients not to update at all. I set everything up as it needs to work, together with the client and his staff we tested the configuration and made sure that everything worked well. Therefore, it is not necessary to update the configuration until there is a need for major changes.
Aggressive marketing and its results
Very often my clients install updates contrary to my advice. Why it happens?
1C programmers are interested in the fact that the client updates the software as often as possible. It is simply beneficial for them. With each update, you will need to reconfigure. And therefore, with the help of updates, they receive income literally "out of thin air".
Imagine a situation when a company operates in a configuration without updates calmly and reliably. But the need arose, for example, to create another report or to establish additional processing. Naturally, in this case, turn to a specialist.
What happens next? The 1C programmer comes and sees that the program has not been updated for a long time. He tells the client how bad it is, explains that without updates, he will not be able to configure the report necessary for the customer or perform other work, he is scared by the large number of errors that are in the old version, etc. etc. In general, it convinces the customer to buy and install updates.
In fact, in most cases there is no objective need for updates. But the amount of work of the programmer and, accordingly, his fee is significantly increasing. By the way, many users therefore treat 1C programmers with a negative. From their point of view, they pay 90% of the amount to the programmer for what worked fine before starting his work, i.e. they have to pay the same functionality several times.
Aggressive marketing from 1C
1C company itself is also interested in having users updated as often as possible. As a result, users often receive reminders of new updates, warnings about the need to update the platform or configuration. But at the same time, the site does not have enough detailed information about what exactly the user will receive in case of an update, what bugs are fixed, what features have appeared. Those. it is impossible to objectively assess the need to install this or that update. As a result, many users are updated just in case.
Disadvantages of service and franchising
I believe that there is practically no service in the 1C company. The company works great in sales, it really has a very aggressive and, admittedly, effective marketing policy. But if you need service, you will encounter a lot of difficulties.
There is a whole section on 1C website where you can find certified partners in your region who provide services for servicing 1C software products. These partners are certified, pay partnership fees. It would seem that everything is in order.
But in fact, the 1C company practically does not work with partners:
- In order for the company to obtain the status of a partner, it is enough to have a certified specialist in the state.
- Subsequently, no one conducts retests or exams. Therefore, a certified programmer may be the only specialist, but completely different people will come to serve you, may quit altogether, and the company will not lose its partner status.
- 1C practically does not conduct any work with partners, does not conduct training, does not control the quality of work.
The result of such a policy is known to many. The presence of a company in the list of 1C partners is not a guarantee of quality service.
I already mentioned that 1C is an entire ecosystem. In some ways, it can even be compared with Apple. A whole system is built there, consisting of hardware, software and resellers. In 1C there is also a platform, there are configurations, there are certified resellers.
But if Apple very tightly controls quality at all stages - from production to the work of partners, and the highest quality is one of the important competitive advantages for this brand, then at 1C everything is completely different. Here service is practically absent, no one controls the work of partners, as a result, the quality of after-sales work with software is very low.
It is also interesting that 1C company directs marketing efforts primarily to consumers of the product, i.e. on users. And work with configurations is fully focused on programmers. As a result, one is advertised, but in practice it turns out that the buyer received something completely different.
And here also the reasons for the negative for 1C programmers and for the software product itself are manifested.
When I stopped working only with 1C and started doing business consulting, I started using a wide variety of software products. These were Drupal sites, and systems like ZOHO CRM, ATOL RMK, Redmine, and many other systems. And almost all of these services and programs do not require constant and frequent updates. And when updating, there are not so many problems.
While 1C company earns in two directions: on sales and on constant updates. But where does the client? He is forced to pay and renew, as there is no other way. Moreover, it is necessary to update all the products that are used in the enterprise at the same time.
For example, if you use Trade, a really useful update has come out that corrects some kind of bug that is relevant to you, you will definitely need to update the Accounting department as well. Because data exchange is possible only between identical versions of configurations. If you decide to leave the Accounting department without updating, then the unloading of documents from Trade to Accounting will cease to work for you.
As a result, the client is forced to use a system that is constantly breaking down and regularly pay for the restoration of its work. Of course, the client has a negative. But he cannot leave for some other software product, he simply does not see a worthy alternative.
Yes, there are other accounting systems in our country, some of them even catch up gradually with 1C according to their capabilities. But marketing is a great thing! Therefore, the client does not see an alternative, and, despite the constant negative, makes the next payment.
1C: Bitrix - difficulties, features, marketing
Another product that is traditionally referred to the 1C line is the 1C-Bitrix site management system. At the same time, many users are sure that it is enough to buy Bitrix, and all issues of site and data integration in 1C will be resolved.
A user who buys 1C software products and orders a site on 1C-Bitrix sees the common brand and is confident that these are products of the same line that will always work together without problems.
In fact, CMS Bitrix is a separate product that was developed by specialists who have nothing to do with 1C. Later, integration tools with products of the 1C line were added to this CMS, and the new name “1C-Bitrix” appeared. This happened because 1C bought back a large stake in Bitrix. and decided to use this CMS along with its software.
What is the result?
The integration of the online store database and 1C software products is really provided. But it is very complex, and without the help of a specialist it is almost impossible to set up data exchange, and it is very, very difficult to change.
Moreover, programmers who set up 1C for you will not be able to install and configure Bitrix. Here you need a web programmer, a Bitrix specialist. Partially integration is configured by 1C-programmers, partly by Bitrix specialists. And there are times when the user does not know at all who to contact.
For example, I had this situation. After the next updates, my client stopped exchanging data with the site. I turned to a 1C specialist, but he failed to help us, since, in his opinion, the problem was on the side of Bitrix. We turned to the Bitrix programmer. He also spread his arms and said that the problem was most likely on the 1C side. For about 2 weeks, the exchange of data with the site did not work. The client was forced to manually download prices and balances, to download orders from the site. In the end, we were lucky. I went to a programmer who understood both Bitrix and 1C at the same time, and he set up the work of the exchange module.
Bitrix and 1C: different systems, common disadvantages
Web developers who are familiar with the latest versions of Bitrix will understand me now. Just like 1C software products, the latest versions of Bitrix have become very powerful, with great features, but unnecessarily complicated. Now, without the help of an administrator (web programmer) in Bitrix, a user most often cannot even configure new categories in the product catalog, since to organize an intelligent search, you need to set your own parameters for each type of product.
At the same time, you need different specialists to maintain the site and 1C programs. After all, these are different products. They are used for different purposes, have different platforms, to work with them you need knowledge of different technologies.
Instead of a resume
So let's summarize. Software products of the 1C line cause a negative among specialists for the following reasons:
- High system complexity
- Lack of modularity
- The presence of bugs in each update
- Lack of detailed documentation for updates
- Unpredictable update installation result
All this applies to both the platform and any 1C configuration.
On the part of users, the negative is caused by:
- Unpredictable update installation results. At any time, the program may stop working. However, due to bugs in previous versions, updates are necessary.
- You need to pay for updates, both to 1C company and to the programmer. At the same time, the advantages visible to the user in most cases are insignificant, and for the most part you have to pay for the restoration of the program’s performance after installing the new version.
Negative in relation to 1C-programmers also becomes clear:
- Users transfer to the specialist part of the negative about the program. After all, it is 1C programmer who receives payment for installing updates and configuring.
- Programmers who are engaged in other areas understand that often their colleagues specializing in 1C receive money, in fact, for "selling air." This is especially noticeable when updates are imposed on the client by the specialists themselves.
- Due to the lack of control from 1C, random people are engaged in servicing software products, which also does not contribute to a positive image.
These are the conclusions I personally made. Perhaps in something I am not quite right, perhaps I have missed something. In any case, I decided to write this article not for the sake of criticism as such, but in order to understand why there may be a negative attitude towards the programs of the 1C line and 1C-programmers at the clients.