Accumulation register purpose
You have come to one of the key points in configuration development: writing the functionality for storing accumulated data.
It seems that you have already created everything you need. You know what is received and expended (catalogs), and you have a means of receiving and expending (documents). Adding several reports would complete the automation of Jack of All Trades.
However, this is not the case.
First of all, you can certainly obtain all the required output data by analyzing documents. But imagine that tomorrow Jack of All Trades decides to slightly modify its business processes and you will need to introduce a new document (or multiple documents!) to your configuration.
For instance, currently Jack of All Trades receives goods and then expends them. Then the management wants to strengthen its resource management and decided to receive goods at the company’s main warehouse and then issue them to accountable officers. In this scenario you need to add another document to the configuration to reflect the movement of resources between the main warehouse and the accountable officers. Obviously, that will force you to revise all the reports that you have created up to that point in order to process the changes introduced in the new document. And imagine what that would mean if your configuration had twenty documents instead of two!
Second, reports that rely on the document analysis operate pretty slowly, which would irritate users and dissatisfy management.
To avoid these issues, 1C:Enterprise features configuration objects intended for creating database structures that accumulate data in a format that facilitates subsequent analysis. Using these data storages lets you accumulate data provided by various documents (or other database objects), as well as easily create reports based on this data, or use this data in the configuration algorithms (fig. 6.1).
Fig. 6.1. Generic configuration operation algorithm
The platform features several objects that are referred to as registers. These objects are intended for describing such storages. Let us discuss one of them.