This article for those who are not yet familiar with 1C software products. It describes the capabilities of the 1C technological platform and where this platform fits in among similar software products.
I think the first thing the general public associates with us is the popular game series IL-2 Sturmovik. However, the 1C product range extends far beyond this series.
There's a system of applications called 1C:Enterprise that includes business application development tools and applications created with them. The 1C development tools using to develop some accounting applications, as well as CRM, ERP (tens of thousands of user deployments), and much more.
ERP systems are the most exciting and functionally equipped business applications, so let's explore these to see how 1C:Enterprise technologies compare with competitors'.
What is the most valuable feature of any ERP system (and any business application)? Flexibility, that is, the capability to adapt to end-user business processes with minimal effort.
It is impossible to foresee all types of business processes when programming an ERP system. That's when parametrization is of great help; by enabling the parameters that may be changed by a user (advisor, or administrator) in the system options, we can easily increase its flexibility. The first ERP systems were parameter-driven, i.e. they were configured using parameters.
However, parametrized systems alone are insufficient to accommodate all business cases. When changing system parameters is not enough, you need to change the source code. That's when an ERP supplier needs to decide whether to change the code on its own and to release updates, taking into account the needs of the customer, or to supply the system with the source code for users to be able to rewrite the system as per their needs. The second option does not free the supplier from the need to release updates, as the system needs to develop and support new features in order to be competitive.
Another important question is the choice of a programming language for an ERP system. The major part of an ERP system is the business logic, for which regular programming languages (like C++) don't always fit well. Ideally, the business logic will be programmed in some high-level language to provide maximum comfort to the business application developer during the business logic development process. This allows the developer to move away from low-level details (peculiarities of working with databases, file input/output and print subsystems, tabbed UI subsystem, etc.). Of course, one would need to create a compiler/interpreter for the language and the development environment.
The full version of this article you can find here