New Features in Version 8.3.25. Information Registers

1C Developer team

14.05.2024 7 min

Performance Enhancements for Information Registers

By analyzing 1C:Enterprise platform performance across various scenarios and incorporating valuable feedback from our partners and users, we've identified opportunities to enhance performance in scenarios involving information registers. Notably, these improvements benefit inventory allocation and production planning tasks.

In version 8.3.25, we introduce additional modes for writing sets of records to independent information registers.

In previous versions, the only parameter for the Write(<Replacement>) method of an information register could accept a Boolean value. In version 8.3.25, it can also accept a value from the new enumeration ReplacementMode:

  • Append

  • Replace

  • Merge

  • Delete

A Replacement parameter value of False is functionally equivalent to ReplacementMode.Append, while a value of True is equivalent to ReplacementMode.Replace.

The ReplacementMode.Merge and ReplacementMode.Delete parameter values are only valid for independent information registers. Attempt to use these values for an information register subordinate to a recorder will throw an exception.

When using ReplacementMode.Merge as the parameter value, all records in the record set are written to the information register's main table. If the register already contains records with matching key field values (period, dimensions, separators), those records are updated, and the remaining records in the set are simply added to the register.

When using ReplacementMode.Delete as the parameter value, records from the register that match the key field values of the records present in the record set are deleted.

It is important to note the use of filtering when writing a record set in ReplacementMode.Merge and ReplacementMode.Delete modes. The set of added/updated/deleted information register records in these modes is determined solely by the records present in the record set. However, the records are still checked against the established filter, which can lead to an error if any of the records do not match the filter. Therefore, it is best not to set a filter at all when writing a record set in ReplacementMode.Merge and ReplacementMode.Delete modes.

We encourage developers to leverage the new capabilities of independent information registers to improve performance in their existing applications.

We plan to further develop this functionality in the next version.

Restructuring Information Registers with Composite Data Types in Dimensions

Library information registers frequently used in Standard Subsystems Library (SSL) solutions are often populated via code (through documents, catalogs, etc.). When reducing data types within a dimension of such a register, records associated with the removed type can be deleted during restructuring if desired. In previous versions (8.2.24 and below), this deletion did not occur.

Let's explore this new functionality with an example.

Consider an information register with the following structure:

  • Dimensions: <City, Warehouse>, Product, Month

  • Resource: Quantity

In this example, the register has three dimensions. The first dimension utilizes a composite data type, allowing it to hold values of either CatalogRef.Cities or CatalogRef.Warehouses.

If we remove the CatalogRef.Cities type from the composite data type of the first dimension, existing records referencing this type will remain in the register after a configuration update. However, the values in those records will be replaced with empty links to warehouses.

Version 8.3.25 introduces the option to configure alternative behavior for information registers in scenarios where composite data types in dimensions are modified.

For independent information registers, a new enumeration setting named "Type Reduction Mode" is introduced. This setting offers the following options:

  • Convert Values (Default): This maintains the previous behavior, preserving existing data.

  • Delete Data: This option removes records where the first dimension value references the removed data type (CatalogRef.Cities in our example). This reduces the information register's data size, consequently improving performance.

  • Prohibit: If the register contains records referencing the removed data type from the first dimension (e.g., referencing the Cities catalog), the configuration update will be blocked. This prevents the deletion of the CatalogRef.Cities type from the composite data type.

Important Note: Currently, the "Type Reduction Mode" setting is not available for independent information registers included within configuration extensions.

Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.