Change or disable compatibility mode. Configuration extensions - how to add functionality to a standard configuration without removing support (20 minutes video) What extensions are needed for

In this article, I propose to consider what a “configuration extension” is, how to add an extension or disable it. Starting from version 1C 8.3.6.1977 a new mechanism was introduced into the platform - configuration extensions. First, a little theory.

In 1C, extensions are something like parallel configurations that are automatically combined with the main vendor configuration. Moreover, in extensions you can add both your own objects and borrow objects of the main configuration.

What are extensions for?

First of all, extensions are created to make it easier to make changes to the program. That is, if users ask to add any functionality, then before the appearance of extensions, programmers had to remove the configuration from full support and change typical configuration.

Removal from full support entails a number of inconveniences:

  • opportunity is lost automatic update, which leads to at least an increase in time for;
  • a highly qualified specialist servicing the program is required;
  • if changes were made to standard objects of a standard configuration, then during an update they may disappear, that is, they may be replaced again with standard ones from the supplier.

When using extensions, when making changes, the programmer will not touch the standard configuration. All changes will be made using extensions, which (as I wrote above) are also configurations. This way the main configuration will remain fully supported.

After updating the main configuration, if in the new release there are any changes to an object that was previously changed by the extension, then the changes will still be taken from the extension. That is, extensions have higher priority than the main configuration.

Video - extensions in 1C in 45 minutes

Get 267 video lessons on 1C for free:

An example of adding an extension to 1C

To show what an extension is, it is better to give an example of its creation in the 1C configurator.

In the configurator, go to the “Configuration” menu and select “Configuration extensions”. A window will open with a list of extensions (if any). Click the “Add” button and add a new extension. Now you can open the extension configuration:

As you can see, the expansion configuration has exactly the same structure as the main one. Only it is initially completely clean, without objects.

I recently wrote an article about how to make it yourself. Using her example, I want to make it built-in using an extension.

In processing I have a field with a link to the “Organizations” directory. That's why I need this guide. But we will not create a new “Organizations” directory, especially since the platform will not allow this. It is impossible for an extension configuration to contain objects of the same name as objects in the main configuration.

Therefore, we will borrow the reference book from the main configuration:

Now right-click on “Processing” and select “Insert external processing, report..." Thus, let's add new processing to the extension configuration. If you use my processing, then immediately rename it, since the main configuration already has a processing with the same name.

Well, the final touch. I want my processing to be reflected in the Administration menu. To do this, we will borrow the subsystem of the same name from the main configuration. Don't forget to indicate in the processing that it belongs to this subsystem.

This is the structure I came up with:

Let's see what we got. We update the database configuration and launch the program in 1C: Enterprise mode, and go to the “Administration” menu. Yes, I almost forgot, the extension configuration must be closed, otherwise the program will not start:

A new release of the platform 8.3.11 has been released, which allows you to add and change metadata objects through the extension. Can we really now implement any improvements without removing the configuration from support? Is it worth promising a client mountains of gold without any consequences?

First of all, you need to be aware of the limitations that extensions have.

Limitation on created objects

On this moment you can create:

  • Directories
  • Documentation
  • Information registers
  • Exchange plans

You can add details to:

  • Directories
  • Documentation

What do we end up with? Not all types of metadata objects can be added. The most common and popular, but still not all. Additionally, new dimensions and resources cannot be added to information registers. You can only create a completely new register.

The functionality of extensions depends on the compatibility mode of the configuration to which the extension is applied.

Compatibility mode 8.3.8- you can only change the forms of objects and their modules, add your own reports and processing.

Compatibility mode 8.3.10- you can change general modules, object and manager modules, roles, use the “Before”, “After”, “Instead” directives for any modules.

Compatibility mode "Do not use"- you can use all the functionality of extensions, including adding new objects.

At the moment, the standard UT 11.3 has compatibility mode 8.3.8. In UT 11.4, the compatibility mode is 8.3.10, that is, for example, for UT, most of the extension functionality is not available, including the creation of metadata objects.

This would seem to beg the question: why not just unsupport the root, set the compatibility mode to "Do not use" and quietly use the extensions? When changing the compatibility mode, the behavior of forms and query results may change, i.e. behavior of the system as a whole. It is strongly recommended not to change the compatibility mode without first testing. But it is obvious that it seems possible to fully test (or at least partially test the documents used) an entire application solution. Therefore, you should not use this option.

When connecting an extension to a standard configuration and borrowing standard objects, the extension controls the compatibility mode of the main configuration and the types of borrowed objects and their details. If the monitored properties do not match, the extension is disabled and does not work until the cause is eliminated. That is, with a major update, there is a high probability of changing at least one of the controlled properties and causing the extension to lose functionality.


In addition, if the modifications are significant, many procedures and functions of the standard configuration are replaced, it will be necessary to carefully monitor them and, if necessary, bring them into line with the standard configuration, preserving the previously made changes.


In the above cases, you will still need the help of a programmer and, possibly, significant time for modification (but still less than when updating a configuration that has been removed from support).

conclusions

  • The new release of the platform provided new opportunities for using extensions, it became possible to add metadata objects, but despite this, the functionality has certain limitations.
  • The compatibility mode of the configuration to which the extension is applied greatly limits the extension's capabilities; changing the compatibility mode is not recommended.
  • Large updates still require developer attention, as there is a high probability of changing controlled properties.

Theme "neat" modifications to standard configurations is always up to date.

With the help of extensions, it becomes possible to make modifications without leaving the configuration Without changes(that is without removing the lock).

As an example we let's expand the standard functionality“1C: Accounting 8” – we will add checks for completeness of document details. As a result, the system will issue diagnostics if the details are filled in with “incorrect” values.

Literally in 15 minutes You will learn techniques that you can use to solve different problems.

Moreover, in the second video we will show universal mechanism, based on extensions. And having developed such a mechanism once, it can be connected to any standard configuration.

Dreams about own imperishable can become reality :)

So let's get started:

Video 1. Techniques for working with extensions - using the example of “1C: Accounting 8”

After studying the video, you will learn:

  • Create and connect extensions to configuration
  • Fulfill debugging extensions
  • Improve standard forms processing/documents using extensions
  • Intercept events standard configuration forms
  • Store data not in information security tables (settings storage)
  • Use treatments as algorithm repository

We will also look at optimization composition of extension objects and extension restrictions in current platform releases.

Video 2. Creating universal mechanisms using extensions

In this video we will show:

  • Connecting an extension in user mode ( without configurator)
  • Example universal verification filling
  • Features of the implementation of extensions - creating forms with arbitrary selections and storing data in extensions

Colleagues, hello everyone.

The other day a test Enterprise Accounting was released with the compatibility mode for platform 8.3.6 disabled.
This means that this version uses a new engine that renders forms in a new way.
You can read about this in Through the Looking Glass.

Along with the standard ones, you should also convert your own extensions to the new platform.
During the translation process, I created a small checklist or reminder for myself about what needs to be done.

Memo:


1. Transfer the extension to a new platform

To do this, change the extension compatibility mode to the configuration compatibility mode.
The Enterprise Accounting version has the following properties:

In the extension, you can set exactly the same properties or clear all the checkboxes.
No checkboxes mean that the extension will not check these properties when connecting.
Then if these properties change in the main configuration, the extension will still run:


2. Fix connection problems

To do this, we launch the configuration in enterprise mode and see if it takes off or not.
Errors due to which the extension could not be connected can be viewed in the log
(Administration - Support and Maintenance - Logbook)
We are interested in events - “Session. Error applying configuration extension":

Most often, the connection problem is solved by removing unnecessary details or objects.

The main difficulty is that the extension does not display all errors at once (by the way, this problem was solved in 8.3.9).
Therefore, it is necessary to run the configurations sequentially after fixing each error.
To make it convenient to launch the logbook, add it to your favorites:



3. Update forms in the extension

To do this, in each changed form, click on “Update form extension”
Using this command, we re-load the main configuration form into the extension.

In principle, it will work without this, but this is necessary so that in the extension the form looks the same as in the main configuration.
In version 3.0.44, almost all forms have undergone changes, so it would be nice to include these changes in the extension.


4. We adapt the form to the rules of the new engine.

I recommend that you read the article - Recommendations for adapting forms to 8.3.7.
It examines the features of the new engine and gives specific recommendations on how to ensure that everything is fine in the new platform.

I came up with the following procedure:

  • We remove all the decorations, which were used for indentation.
    Groups are now used instead.
  • Let's see that everything looks good.
    If something goes wrong, then look at the article.
    If everything is good, then we move on.
  • Checking the new platform properties“Combined”, “AutomaximumWidth” and “AutomaximumHeight”.
    Just see that these properties are set to platform defaults and the form does not move apart because of this.