A payroll system is often the most complicated piece of software in a company. The reason that makes it so elaborate is periodic calculations that usually require traditional programming. Nevertheless, it is still possible to significantly accelerate the development of such applications with the low-code philosophy offered by the 1C:Enterprise platform.
While the low-code philosophy offered by 1C still allows coding to develop, set up, and modify systems and applications, we invest much effort to reduce it to the minimum. Moreover, unlike other low-code development platforms, 1C:Enterprise does not require third-party programming languages and technologies to build applications used for periodic calculations.
What are Periodic Calculations in Payroll?
It is thanks to Domain-Driven Design (DDD) that the 1C platform requires no third-party technologies to produce applications comprising periodic calculations.
Implementation of DDD through the 1C Platform
Domain-Driven Design (DDD) is an approach to application design and development. The idea of DDD is to create a domain model that connects program code and real life. Check the book Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans if you want to know more about the approach.
1C platform is an excellent example of the DDD concept in business automation software. In fact, the 1C platform is a framework with a ready-to-use domain model that contains internal business processes of a company, including finance and accounting, HR, payroll, warehouse management, and others.
The domain model is built out of metadata classes (platform objects). Each class (or a platform object) used in an application represents a specific domain object or a process. For instance, the platform contains such domain entities as a calculation type (base pay, paid sick leave, holiday pay) and a period (month, quarter, half-year).
1С Platform Low-code Environment
Developers create applications in the 1C visual editor by setting properties of metadata-driven objects, thus describing the business logic of their interrelations.
All low-level tasks, including creating classes, database tables, and application libraries, are “kept under the hood.” The 1C platform operating principle is easy to describe through the mechanism of periodic calculations.
In the process of calculations, the mechanism deals with several platform objects. The scheme below shows how built-in platform objects relate to each other.
Catalogs store data in the form of lists. A catalog can be a list of employees or company departments to calculate a pay per employee or department.
Chart of calculation types is a catalog of similar type calculation algorithms. In payroll, such calculation type can be some compensation calculated by standard rules, like base pay, bonus, or similar. For instance, we might want to set the bonus amount equal to a certain percentage of an employee’s pay for the previous three months.
Information registers store random data but can break it down by several dimensions. Such data can be currency exchange rates broken down by currencies or company prices broken down by products or price types. In payroll, we use information registers to store data on the amount of base pay or working hours, or business days and days off.
Documents store data on completed business transactions or other events that take place through the company’s life. Such documents can be goods receipt notes, employee notices, invoices or payment orders, and others. A document can be either an object to record the source information needed to calculate amounts for payroll or an object with a role to record an interim or final amount of pay (like a payroll calculation document).
Accumulation registers allow the accumulation of numerical data broken down by several entities. For instance, such registers can accumulate stock balances broken down by products or warehouses, or sales data broken down by products or company offices. For payroll calculation, accumulation registers can store data on piece-work or hours worked.
Calculation registers store data on required calculations, including interim data and final calculations. In other words, they store data on both actual (earned) pay and forecast one.
Reports are a tool to present the results of calculations to users. At that, users can fine-tune such reports with groups, filters, and visualization.
It is important to note that in order to perform calculations properly, correct implementation of the complex business logic is not enough. Business cases always involve specific corporate payroll accounting requirements, a motivation system, grades, and other parameters that make every project unique. As a result, the chance of failure with a standard off-the-shelf product is pretty high. Given the ongoing changes in corporate management processes and legal requirements, calculation methodology can change so often that the cost to support these changes in a software product might outweigh the benefits of automation. And to justify the automation brought by the software, users need to be able to make changes on the fly.
1C:Enterprise platform calculation tools allow users to easily create and configure calculation types they need for their ongoing tasks. As soon as developers create several charts of calculation types for various purposes using the chart of calculation types, users can add an unlimited number of calculation types in each chart and configure their relationships without developers’ assistance.
Hence, predefined metadata classes make it possible to use a low-code development environment that requires no third-party technologies or programming languages to develop flexible business applications with complex calculation algorithms inside.
Check our video about complex periodic calculations with 1С:Enterprise to get a better understanding of the mechanism described above.
Got interested in developing payroll and similar solutions quickly and easily? Start free with 1C:Enterprise!
The article was originally published at: https://medium.com/1c-developer/low-code-for-payroll-software-development-f77444d9d3ad?source=friend...