What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Now there is a lot of controversy about the need to replace Russian software. Of course, in the conditions of Russian aggression, it was necessary to think about this back in 2014, but many are thinking about it only now. This article is about one of the most popular accounting programs, namely 1C:Enterprise, which has been distributed in Ukraine under the BAS brand for the past few years. The purpose of this material is to tell the general public what this program is, and also why it will be so difficult for Ukrainian businesses to refuse it. Because until now, many people think that this is “just an accounting program” or “what is there to go over”.

Help

We will help raise UAH 300,000 for equipment for the 113th brigade, which is fighting in the Kharkiv region (updated: UAH 156,000 left to collect)

First, a little about myself. I have more than 15 years of experience in implementation, consulting and development based on 1C:Enterprise. Also there is a specialized education in the specialty “Information systems in management”. That is, I probably have the moral right to tell a little about what it is.

Since 2020, I have begun the process of moving into another area of development. The main reason is money, because the salary of a 1C nickname is usually in hryvnias and 2014 hit her very hard. At this time, I thought about the transition, but never started it. Most 1C nicknames switch to something like SAP, Dynamics and the like because it is close to them. I also thought about it and looked for it, because it is an opportunity to move to good money quickly enough. Although mobile development attracted me more.

It was difficult to refuse to work in 1C, because it brought in normal, albeit less than in “big IT” money. But still I studied and was already mentally ready to leave her. I went through training, but still could not take the last step. The beginning of large-scale aggression put everything in its place. First, my clients, who survived as a business, stopped investing in development and froze it. Secondly, I saw it as a chance to still move on. Now I work as an Android developer in the status of Junior. I found a job pretty quickly, but how it all happened is a topic for a separate story. So let’s go back to 1C.

Well

Full Stack evening

Take off the task of fakhivtsiv, what to practice, and take into account the vilniy vіd work hour

REGISTER!

Full Stack evening

Story

First, a little history. I will not load with dates, but 1C began when the “scoop” ended. Computers stopped costing like an airplane wing, and businesses began to slowly use them. Usually at first it was an accounting program for DOS (version 2.0 – 5.0), then for Windows (version 6.0). They even had some kind of simple scripting language that allowed me to finish it a little.

The breakthrough came with the release of version 7, which grew to version 7.5, then 7.7. Why a breakthrough? First, the price of the finished product. In the maximum version, which allowed to fully cover all accounting requirements (salary, trade, warehouse, accounting), it cost about $ 1,500 for a network version without limiting the number of clients.

To store data, she could use her own file database (known as dbf), or MS SQL (the SQL version was more expensive). And in the minimum version for one accountant user, it generally cost somewhere around $ 50. And this “1C: Accounting” 7.7. allowed to cover most of the tasks of a typical trading enterprise in the field of accounting.

1C configurations

But the main thing is not this. Starting with version 7, 1C has become not just an “accounting program”, but an environment for developing accounting programs. In fact, it was like Access, where you can write programs with your own hands, but you need to have the same Access to run them. 1C also supplied full documentation for the developer.

Unlike Access, it has always been and is shipped with a turnkey accounting solution. In 1C terminology – configuration. At that time it was: “Accounting”, “Trade and warehouse”, “Salary and personnel”, “Complex configuration”, “Production”.

The first one is the most popular, because accounting in Ukraine is complicated, even small enterprises have an accountant. The program allows you to keep accounting records, issue documents such as invoices or invoices, submit reports to the tax and other authorities, calculate salaries and taxes on it.

But the reports that you can get are accounting reports. That is, for example, there is no report “Sales”, or “Balance”. The salary is very simplified, and there is no personnel accounting at all. But all this was offset by a fairly low price and therefore it was the most popular.

“Trade and Warehouse” was more for sole proprietors who do not need to keep full-fledged accounting, but need to have warehouse accounting and trade reports, such as “Debts”, “Remains of goods”, “Sales”, etc.

“Salaries and Personnel” was even rarer, but allowed for a more complex salary. There were already time sheets and calculation of vacations, sick leave and personnel orders, as well as special personnel reports.

Well, “Complex” – it was a mixture of the previous three, i.e. made it possible to fully automate accounting at an ordinary trading enterprise and maintain both full-fledged accounting and management reports, and calculate complex salaries. “Production” is about the same, but for manufacturing enterprises.

Market Capture

In general, all this was designed for the segment of small and medium-sized businesses. All these configurations were open source, that is, could they be modified and reworked, or even written something of their own.

For example, I once did a configuration to account for staff training. In addition, updates were regularly released and they were free for some time. That is, pay once and use it. All this made the product very popular and spawned a large number of people involved in consulting, training, implementation and refinement.

Usually the system was more designed for small firms, but then people learned to run it at fairly large enterprises, and due to the fact that much could be completed and redone, a lot of money was invested in the development by the same enterprises. Some had a team of developers and 10 people each. And this is in addition to support, consultants and so on.

Also, 1C has made a network of franchisees with a fairly low entry threshold. I will not go into details, but in order to sell and accompany this product, the requirements were quite low. It was necessary to fulfill the conditions for procurement and have two certified developers. On the sale of the product, the franchisee earned about 100% of the profit. That is, we conditionally bought a product for $100, and sold it for $200. 200 is the retail price recommended by 1C, and they made sure that the product was not sold cheaper. But the main money was earned on the implementation and refinement.

That is, the main success factors: a low price, normal functionality, the possibility of finalizing even with my own hands (I have a friend who writes what he needs himself), or through a network of specialists, high remuneration for the seller of the product.
So they took over the market.

Despite the fact that 1C had many shortcomings. It started working rather badly on large databases and with a large number of users. Partially, this could be solved by switching to the SQL version (at the same time, there is no need to rewrite the configuration code, and the database migrated quite easily). But the work with SQL itself was not built very well, although various craftsmen made extraneous developments that made it possible to do it better. In addition, enthusiasts created a lot of things that greatly expanded the capabilities of a typical 1C.
Despite all the shortcomings, it has become very popular with small and medium-sized businesses.

As a person who has worked in this field for a long time, I know that there are no perfect products. And the product from 1C is a fairly high-quality thing.

Version 8.0

With the release of version 8.0, the Russians completely redesigned the architecture and the developers actually had to learn a new language and new tools. A lot has been added, a three-tier architecture has appeared, that is, the 1C server is a separate program that communicates with the SQL server, and the 1C client communicates with the 1C server. But this is in SQL versions, because the file base also remained, but switched to a proprietary format.

The system learned to work not only with MS SQL, but also with Oracle, and with free Postgre, DB2, and the 1C server itself could work under Linux. There was a version control system, a report generator and much more. The development itself has become more in line with modern requirements. And most importantly, it all worked better, faster and more stable, especially in variants with a large number of users.

Next, a thin client was added, where what is running on the 1C server and what is on the client is even more divided. Then 1C learned to work in a browser window (however, standard solutions can do this, that is, you don’t need to specially finish it and you can mix different launch options), it became possible to run it on different operating systems. The interface has become more adapted to the Web.

Finally, a mobile platform appeared that allowed developing (with some restrictions) applications for mobile devices on Android or iOS. To understand, two weeks later, one person who had never worked with a mobile platform, according to the book, made an application for managers to receive orders for goods and synchronize it with the main database offline, that is, on request. Many new interesting features have also been added for users.

But with the release, conditions have changed. Support has become paid. In addition, there was a payment for licenses. That is, for each entry into the database you need to have a license. But these bases can be several. Licenses cost somewhere in the region of $100 and their price depended on the quantity. That is, if you take a package of 5 pieces, then it costs a little less than 5 one at a time. Of course, over the years, our business could already afford to spend more on software, so the eighth version did well too.

After 2014, sanctions were imposed against 1C in Ukraine. But this led to the fact that such a product as BAS appeared. Although this is the same 1C. With a high degree of probability, it can be argued that the owners there are the same. I have not researched this issue thoroughly, but based on what I know and what I have read, these are the same owners through gasket companies.

By the way, despite the fact that the platform itself is not developed by us, typical configurations for Ukraine were developed by Ukrainian companies. Although lately it has been more of an adaptation of Russian configurations for us.

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion
The evolution of the 1C interface. (Version 7.7. Typical configuration “Trade and warehouse”)

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Version 8.2. Regular application. “Communication” configuration

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Version 8.3. Web client in a browser window. Configuration “Accounting”

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Mobile app. Configuration for collecting orders

Architecture

Now let’s talk more about architecture, that is, how it all works. 1C gives the developer a configurator (or development platform) that allows you to create a configuration, that is, an accounting solution. Accounting in the broadest sense. It doesn’t have to be accounting.

Based on the configuration after compilation or assembly, the system creates database tables. The configuration itself is also stored in it. In version 7.7 it was a separate file, but in version 8 it is stored in the database.

1C developer does not work with database tables. The required number of these tables, indexes to them are created by the platform itself at the assembly or compilation stage. Also, the system itself performs data migration when restructuring tables.

The configurator has different objects (although these are rather classes) for creating an accounting system. These are primarily objects for data storage (References, Documents, Registers, Constants, Plans of types of characteristics), objects for visualization and data processing (Reports, Processing, General program modules, Web services).

I will not tell much what’s what, but all this allows you to make a system for storing information, registering accounting transactions, as well as processing and visualizing the accumulated information.

You can also create scheduled tasks to run on the server according to a schedule (for example, sending reports to e-mail, or receiving declaration statuses from Nova Poshta). Separately, there are exchange plans that allow you to create rules for exchanging other databases, both 1C and non-1C. Web services allow you to build your own API in 1C for online data exchange using REST.

Of course, all that has been done here is to create accounting systems. This implies a set of the same objects. For example, the Directory is not an analogue of a database table, since it can have its own table frequents, for which 1C creates separate tables. But it allows you to store reference information. For example, a list of products. Various objects can store references to other objects. The document already has a slightly different structure and is suitable for registering accounting transactions.

For example, a 1C developer does not need to think about how to link tables. If I have a “Goods” Directory, then in the “Invoice” document, I simply create a field (props in 1C terminology) of the Directory type. Goods and the system itself knows that it is necessary to store here a link to a record (Directory element) in this document.

The developer should not think about how to get the balance of goods or debts on a specific date. A special object will do this for him. Most of these objects have a module as well as one or more forms for displaying a list of instances of that object, or editing and viewing those instances.

Forms are created by the developer, and what is not related to visualization, or code that may relate to different forms, is taken out to the module. Also objects can have printing forms. In essence, these are tables like regular spreadsheets, from which you can build layouts for printing.

Again, I will not talk about everything that is here, but there is a lot that, thanks to the manipulation and combination of objects, allows you to create powerful accounting systems. And do it fast enough.

The same Configurator allows you to create a separate configuration (or within the same one) to run on a mobile device. For such a launch, you will need a 1C mobile platform, but it is possible to build an apk for Android or an application for iOS.

There is also a version control system. It’s certainly not GIT, it doesn’t support branches, and it’s blocking. That is, I must first connect the configuration to the configuration store, then to change objects, I first grab them and no one else connected to the same store can edit them until I release them.

The last thing I saw was the ability to develop from IntelliJ Idea with the ability to fully work with a hit.

Programming language 1C

This is a procedural programming language that allows you to manipulate 1C objects. It is similar to different languages and somewhat archaic, but it has many powerful facilities for manipulating data. The most important thing about it is that it is a Russian programming language. In the screenshots below, you can see code snippets. But at the same time, all this can be written in English. Usually almost everyone uses the Russian version. Because it’s just more convenient.

In the above fragment, the same code is written in English and Russian. For some, this may seem wild, but if you think about it, then for English speakers, all code in all programming languages looks like code in Russian for 1C nicknames.

All typical 1C configurations are written in their own programming language and are open source. That allows them to finish and process. With the ability to update, but this will be done by the developer, not the average user. Some industry solutions have their own protection system and closed modules.
That is, 1C can be called a framework for creating accounting systems, but it is impossible to buy a framework. It can only be purchased with a ready-made solution.

1C also has a separate query language. In fact, this is SQL translated into Russian. It is a little simpler, because if I have an “Invoice” document, and it has a link to the “Contractors” Directory element, and the counterparty has, for example, the Type attribute, which is a link to another Directory, I can write in the request like this:

CHOOSE
PH.Contractor.Type
FROM
Document. Invoice AS PH

That is, I do not need to bind objects to get the Type. In traditional SQL, I would have to LEFT JON the Accounts and then LEFT JOIN the Types to select the type.

At the same time, the query language itself supports binding. For example, I have an Invoice document and there is an Invoice document, which has the Base Document attribute, which is a link to this Invoice. I want to select all accounts for which there is an invoice. Then I will write like this:

CHOOSE
Doc.Link AS Invoice,
RN.Link
FROM
Document.Invoice Invoice
INNER JOIN Document.Invoice
HOW PH ON Account.Reference = PH.DocumentBase

Separately, you can select a report generator that allows you to make reports without writing code, just by making the right request and setting up the output. After assembling and compiling the configuration, the 1C platform creates tables for storing data.

The threshold for the initial entry into the development of 1C is quite low. But in order to become a specialist, you already need to dive into the nuances, understand how data is stored, and so on. In addition, you usually have to deal with consulting, support, business analysis, and also look for errors in accounting. Some full stack. A good 1C developer is a hybrid of a coder, an architect, a consultant, and a business analyst.

The approach that I described above allows you to quickly and inexpensively create sufficiently functional products. For example, I once made an interface for a bar for a touch screen based on a typical 1C configuration, or created special documents for various calculations where an enterprise has complex orders from customers.

In addition, 1C integrates quite well with various equipment: scales, barcode scanners, TSD, PPO, etc. The developers of this equipment often have ready-made modules written in 1C for integration.

The same New mail has a ready-made integration module with its own API. There are many such examples.
Another big plus is that the senior 1C receives a salary of 2000 dollars (until 24/02). And there are a lot of experts.

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Configurator window. A list of objects (in this case, documents) is visible, as well as a form under development.

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

The so-called “managed form”, where the form is not drawn by the placement of elements, but their hierarchy relative to each other is set. This is a newer interface creation option and is the one suitable for the web client. The developer adds form elements to the hierarchy from above, and the system immediately visualizes how it will look.

Code example:

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

An example of a complex query in the query language:

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

An example of a simple query using English operators

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Debager. You can see the breakpoint and the scoreboard with the values of the variables:

What is 1C and why is it difficult (but necessary) to replace it in Ukraine. Opinion

Situation until 24.02

1C (or BAS) was used in very different enterprises. From very small to very large. For example, I saw a familiar interface and one very large national chain of electronics supermarkets.

According to my own experience, and I worked for a long time in a franchisee company, then as a freelancer, about 80% of installations are just Accounting and it does not need the participation of a developer and is used quite normally “as it is”.

I have not studied the market very much, but I think that there are many things to replace such a product. Because in accounting everything is quite standardized. Therefore, the programs should have more or less the same functionality. There is, of course, the question of price, convenience, but again, I do not think that it is critical. So the transition to something new is only the cost of staff training and the purchase of a new product, and the cost of transferring data.

Another 10% have some small experience. For example, a logo has been added to the printed form, or import from another system has been improved, or some special report. Here the transition is usually more difficult, but still not terrible.

And there are still somewhere around 10% that have a lot of changes compared to a typical configuration, or in general products are developed from scratch for their own needs. There are companies that had a permanent staff of developers. There are also industry-specific configurations where developments have already been made for specific needs. For example, for an insurance company, car dealership, car service, restaurant, etc.

And this is where the transition can be very difficult.

Why? Because you need to find a product that allows you to change or add to yourself. This product should be relatively inexpensive. The price of a workplace for 1C is about $100. The first license costs more, depending on the product, but for the next seats, the price will be somewhere like that.

It is necessary that there are specialists who can do this for reasonable money. Most of our IT is work for a foreign customer. And the salaries there are listed in dollars and are quite large. I have already said that Senior 1C received $ 2,000, less often $ 3,000.

Where to find such people, how to teach them? Especially in conditions when people reached out abroad.
And most importantly, where can a business in an economy destroyed by the war get the money for all this?

Of course, any business can work without these developments, but this will require more staff, orders will be processed more slowly, warehouse planning will not be normal, and there will be many such problems. And all this will entail the loss of competitiveness.

I invite you to discuss this topic in the comments. But if you offer any product, then you need to keep in mind everything that I wrote above. That is, the price of the product, the price of its refinement for the customer, whether there are specialists, what are the transition periods. If the product works, for example, exclusively with MS SQL, how much will licenses for this product, etc., cost?

Author – Alexey. Former 1C developer – freelancer, now Android developer.

Related Posts

Google’s foldable smartphone will be called Pixel 9 Pro Fold, not Pixel Fold 2 – insider

Previously, Google presented only two smartphones in its main line, as well as a model with the “a” index. This will not be the case in 2024…

NVIDIA develops SFF Enthusiast GeForce – the standard for compact gaming PCs and components for them

NVIDIA is working with partners to create a new ecosystem of small gaming PCs (SFF, Small Form Factor) with a compact graphics card in the SFF Enthusiast…

XDefiant is the first Ubisoft game with an official Ukrainian localization

Well, Ubisoft, welcome to the beginning, and we are very much looking forward to Ukrainians in the upcoming Assassin’s Creed and Far Cry games. Get ready for…

GTA VI publisher Take-Two lays off 5% of staff and cancels games

The meme is funny, the situation is terrible. After reports of preparations for the announcement of the new Mafia (an announcement is expected at one of the…

experts named the top 10 cities for remout

Experts have compiled the top 10 cities that can be considered the best for remoting. This was reported by CNBC, based on data from Remote.com. The platform…

Taskombank closes the sportbank project – from today neobank does not accept new customers, and from May 12 it closes the application

sportbank worked under the license of JSC “TASKOMBANK” of Serhiy Tihipko, therefore all clients are automatically referred to this institution and will be served there in the…

Leave a Reply

Your email address will not be published. Required fields are marked *