Details

1C:Enterprise Overview


ReleaseDate
11/28/2019

What is 1C:Enterprise Platform? In this article I will try to answer this question. 1C:Enterprise Platform is a framework for developing business focused applications. It is all about how to easy put data into a database, then how to handy process them and then how to represent them in a quick, easy and nice way. It means that 1C:Enterprise is a good choice for developing an application that uses a database and that is used by multiple users which work with data via GUI. And at the same time it's absolutly not suitable for developing stateless applications or, for example, a multimedia tool or whatsoever. Look at the figure below. It shows basic 1C:Enterprise features.


Business Automating

1C:Enterprise Platform is a framework for developing business purpose applications. It has the set of specially designed objects used by developers to build apps for the basic business demands:

  • Document Workflow
  • 1C:Enterprise provides tools for quick design of document's UI and for designing their printing forms. It has built-in objects for making templates (headers, tables, picture areas etc.), populating a template with data, representing it to a user and sending it to a printer.
  • Accounting
  • There is an object called "Charts of accounts" which stores accounts. Specially designed object called Accounting register provide storage, retrieval and aggregation of accounting entries.
  • Operational Activities
  • Just like in the above mentioned case the Platform has specially designed objects called "Accumulation registers" to store and aggregate resources, for example goods remaining in the warehouse. Let's imagine that we have a table in the database where we store all the goods incomes and outcomes. Let it have columns: "Item", "Batch", "WarehouseID", "Quantity". The technology provides quick resource aggregation(in this case Quantity is a resource) by a number of dimensions (in this case dimentions are Batch, Item and WarehouseID). In other words it allows to quickly answer the question "How many items of A are right now in the warehouse B"? or "How many items of A came within a batch C"? Or "In which warehouses are A items stored?" etc. Moreover, it allows to quickly answer these questions for arbitrary date. Accumulation registers support up to 30 dimensions.
  • Client Relationship Management
  • As "Accumulation registers" provide the opportunity to aggregate and analize resourses, they can be used to analize clients turnover and clients preferences of goods/services etc. And 1C:Enterprise reporting tools represent the results of marketing analysis via colorful diagrams and/or tables. The examples of reports will be shown further in this article.
  • HR Management
  • Here again 1C:Enterprise has special kind of objects which is called "Calculation register". One more special object is "Charts of calculation types". These both objects are used to implement all kinds of payrolls, bonuses and benefits for employees.
  • Reporting tools
  • 1C:Enterprise has the set of objects for creating reports. This set is called "Data composition system". It includes a very handy wizard (for developers) for creating reports and set styles for them. It also provides users with opportunity to tune a report and save there settings.
  • Business processes tools
  • . The object which is called "Business process" is used to implement logic of business processes. Every business process is described with a flowchart. It has start point, end point, conditional points, activity points and some other. Every point can perform some business logic and it's possible to track the progress of a business process.


Data Exchange

1C:Enterprise has tools for data exchange. It provides really great tool for exchange between 1C apps. It is an applied solution called "1C:Conversion of data". Let's imagine, that you need to set up data exchange between database1 and database2.

  • Step 1: you export your database1 structure.
  • Step 2: you export your database2 structure.
  • Step 3: you upload database1 and database2 structures to "1C: Conversion of data" and visually design mapping between fields in tables.
  • But waht if you want to transform data during the exchange or implement more complex logic? Then
  • Step 4: within event handlers you write the code to implement needed logic.
  • There is the set of events and event handlers to implement more complex logic of data exchange.
For data exchange with non 1C apps it's possible to use SSIS, Web-servises or any other standard way of apps communication).  Web-services can easily be designed and developed via 1C:Enterprise. For this you will need to install any web-server (apache, IIS, nginx) and intergrate it with 1C:Enterprise. Besides, 1C has objects providing xml handling and serialization.


Applied Solutions

As a rule 1C Application consists of 3 parts:

  • 1C:Enterprise Platform (framework)
  • Applied Solution (also called configuration)
  • Database Management System (e.g. MS SQL Server, Oracle, PostgreSQL)
  • .

What Is Applied Solution? It is a set of 1C:Enterprise objects and modules, written in 1C scripting language and implementing functionality for certain business activity. Applied Solution is also called a Configuration. The 1C Company has developed multiple Applied Solutions such as

  • 1C:ERP
  • 1C:AccountingSuite (which is extremely popular, I better say essential, in Russia and some other counties of  CIS)
  • 1C:Small Business
  • 1C:Payroll & HR
  • 1C:Trade Management
  • 1C:Retail and some others.

It's also possible to develop your own application from scratch.There is a set of libraries to be embedded into your own apllied solution to provide universal functionality that is typically used in every applied solution. It is called 1:Subsystems library.


Extensibility

Really good thing about 1C:Enterprise Applied Solutions is extensibility. In all solutions by 1C Company original program code is available for changing by developers (but there are some other companies which hide non-extensible parts of code). It means that one can implement any idea in existing application. For example, introduce any kind of client loyalty program in your Retail or CRM application or make employees worktime counting via fingerprint scanning. Or add new Report/ Printing form of a document to an app.


Distributed Applications

1C:Enterprise can be used to develop distributed database applications. It has the tools for automated app update and data exchange. For example, I work in the retail company which has 400 shops all over the country. POS system in the shops is 1C:Retail and there is one central DB which accumulates all the data from shops and convey them to another 1C application - 1C:Trade Management, which then exchange data with third 1C application - 1C:AccountingSuite. 


Reporting tools

As I have already mentioned above 1C:Enterprise has powerful reporting tools. Here you can take a look at several 1C:Enterprise report samples.


sample report 1
sample report 2
sample report 3
sample report 4
sample report 5
sample report 6

Unified User Interface

The significant feature of all 1C:Enterprise applications is unified user interface. Forms of 1C:Enterprise app have their own style and they do not look like default operating system forms (except for 3 standard form buttons: maximize, minimize and close). It's made on purpose: if a user knows how to work with one applied solution, he automatically knows how to work with other applied solutions. The UI in 1C:Enterprise apps is called "Taxi" and is yallow-white colored. There is one main window in every 1C:Enterprise application instance. It's UI is tunable and consists of several panels. The picture below shows panels of the main window.
Tuning the panels
The content of these panels can be set up defferently for different users. 1C:Enterprise objects have their own forms which can open in tabs of the main window or as a new window. Here you can look through several UI samples.


UI sample 1
UI sample 3
UI sample 4
UI sample 5

Cross-platform

One of the most incredible features of 1C:Enterprise is cross-platform. 1C:Enterprise application is multy-tier (see the article 1C:Enterprise app architecture) and consists of 3 tiers:

  • Client application
  • 1C:Enterprise server cluster
  • Database server.

The client can be either desktop app or web app or mobile app. To run on mobile device it requires 1C:Enterprise mobile platform to be installed. 1C server can run on Linux and Windows platforms. To run application in web browser it first must be published on a web-server.
cross-platform