Requisites forms 1C 8.3. Details of the controlled form (1CV8). Data transfer between client and server parts of the managed form

And Data Transfer Object to code structuring, managed form In medium 1C 8.2.

Introduction

Let's start with a slight description of the concept of "managed form" and the associated concepts of the 1C platform. Signs of the platform can skip this section.

In 2008 it became available a new version 1c platforms: Enterprise 8.2 (hereinafter referred to as an application), which completely changes the entire layer of working with the interface. This includes the command interface, and forms, and window system. At the same time not only changes the development model user interface In the configuration, but also a new architecture of the functionality of the functionality between the client application and the server is proposed.
The controlled application supports the following types of customers:

  • Thick client (normal and managed launch mode)
  • Slim client
  • Web client
The management application uses forms built on new technology. They're called Controlled forms. To facilitate the transition for the same forms (so-called, ordinary forms) are also supported, but their functionality is not developed and they are available only in the launch mode of a thick client.
The main differences of managed forms for the developer:
  • Declarative, not "pixels" description of the structure. Specific placement of items is performed by the system automatically when the form is displayed.
  • All formality of the form is described in the form of requisites and commands. Details are the data with which the form works, and the commands are performed.
  • The form is performed on the server and on the client.
  • In the context of the client, almost everything is not available applied types, and accordingly, it is impossible to change the data in the information base.
  • For each method or variable form, must be specified compilation directivedefining, running place (client or server) and access to the context of the form.
We list the compilation directives of form methods:
  • & Svalette
  • &On server
  • & MetrosterebeTetext.
  • & SvalientServerebereTeontext.
We illustrate the above. In the screenshot, an example of a managed form and its module in the development mode. Find a declarative description, details, compilation directives, etc.

All further reasoning will be about the right side of the illustration, how to structure the module code and which principles will allow to implement effective client-server interaction.

Denote the problem

For several years have passed as a new version of the 1C platform, a variety of solutions (configurations) as firm 1C and its numerous partners are actively used and issued.
During this time, developers have a single understanding of the principles of client-server interaction when creating forms, and whether the approach to implementation has changed software modules In new architectural realities?

Consider the code structure (module of the form) in several forms of one typical configuration and try to find patterns.
Under the structure, we understand the code sections (most often these are the Comments blocks) allocated by the developer for grouping methods and the compilation directive of these methods.
Example 1:
Event Processor Section Method - Slip Method - Nasserver Method - Complete Section of Service Procedures and Functions Auxiliary Input Management Functions
Example 2:
Service procedures and functions Payment documents Values \u200b\u200bEvent handlers
Example 3:
Service procedures on the server Service procedures on the client. Service procedures on the server without context Event handlers Caps Event handlers
Example 4:
General Purpose Procedures Event handlers Procedure procedure "Contact Information"
In fact, the code structure is absent, or mildly, it is similar to what was in forms 8.1:

  • Non-informative words "General, service, auxiliary".
  • Robust attempts to divide client and server methods.
  • Often, methods are grouped by interface elements "Work with tabular part Goods, contact information.
  • Arbitrary location of methods and code groups. For example, event handlers can be in one form at the top, in the other below, they are not highlighted in the third, etc.
  • And let's not forget that this is all within the same configuration.
  • Yes, there are configurations in which the words "General, service, auxiliary" are always on the same places but ...
Why do I need code structure?
  • Simplifying accompaniment.
  • Simplify learning.
  • Fixation of general / important / successful principles.
  • ... Your option
Why does the existing standard of development from 1C does not help?
We will look at ITS and in various "developer's dialing ..." principles recommended when writing a managed form.
  • Minimize the number of server calls.
  • Maximum computing on the server.
  • Server non-dark challenges are faster than context.
  • Program according to client-server interaction.
  • etc.
These are slogans, absolutely faithful, but how to implement them? How to minimize the number of calls, what does program mean in client-server mode?

Design templates or wisdom generations

Client-server interaction is used in various software technologies for more than a dozen years. The answer to the questions marked in the previous section has long been known and summarized in two basic principles.
  • Remote Facade (hereinafter the interface remote access)
  • Data TRANSFER OBJECT (Next, the data transfer object)
The word Martin Fowler, its description of these principles:
  • each object, potentially intended for remote access, must have low Detail Interfacethat will allow maximum reduce the number of calls required to perform a specific procedure. ... Instead of requesting the score and all of its items separately, you need to read and update all account items for one appeal. This affects the entire structure of the object. ... Remember: Remote Access Interface does not contain domain logic.
  • ... If I were a caring mom, I would definitely say my child: "Never write data transfer objects!" In most cases, data transfer objects are no more than inflatable set of fields ... The value of this disgusting monster consists exclusively in the possibility several information elements in one call over the network - Reception, which is of great importance for distributed systems.
Examples of templates in the 1C platform
Applied program interface A accessible developer in the development of a managed form contains many examples of these principles.
For example, the openform method (), a typical "coiled" interface.
Parameters / parameter \u003d new structure ("parameter1, parameter2, parameter3", value1, value2, value3); Form \u003d open form (name, parametersOstration);
Compare with the style adopted in V8.1.
Form \u003d Optional (name); Form. Parameter1 \u003d value1; Form. Parameter2 \u003d value2; Form. Open ();

In the context of the managed form, a plurality of "data transfer objects". You can highlight systemic and developer defined by Developer.
Systems are simulated on the client of the application object, in the form of one or more elements of these form. It is impossible to create them out of binding to the details of the form.

  • Properturance
  • Documentation COLLECTION
  • Propeflight Structural Structure
  • PATFORMIDEVO
Converting system data transfer objects to applied types and back is performed by methods:
  • Validewandenforms ()
  • ClaimsVassion ()
  • CopyDanforms ()
  • ValuerereVisitforms ()
  • RequisitformAdrification ()
Often, explicit conversion is used when adapting existing solution. Methods can be expected (use features) Input parameters, such as tables, rather than the data collectivity, or the method has been defined in the context of the application object and has become unavailable for a direct call from the form.
Example 1C v8.1:
// On the client in the context of the form of fillets, users (subsection)
Example 1C v8.2:
// On the server in the context of the form Processing object \u003d RequisitformAdding ("object"); Processing. Requirement users (subdivision); Recentlyrerevisitforms (processing, "object");

Data transfer objects whose structure is defined by the developer is a small subset of types of available and on the client and on the server. Most often as parameters and results of the "coarse" interface methods are used:

  • Primitive types (string, number, boolean)
  • Structure
  • Conformity
  • Array
  • Links to Applied Objects (Unique Identifier and Text Presentation)
Example: The method accepts a list of orders to change the status and returns to the client a description of errors.
& The croistereTeetectust the function of the server is the server (orders, newstatus) errors \u003d new compliance (); // [order] [error description] for each order from orders cycle start translosage (); Attempt to dock \u003d order. PREPARY OBJECT (); .... other actions, perhaps not only with the order ... Exception to cancel transaction (); Errors. Enter (order, descriptions ()); Celebrations; EndCycle; Refund error; Endfunction // ServerInmarkStatusAcases ()

Strupping the code

The main goals that should reflect the module of the managed form and approaches to the solution.
  • Clear separation of client and server code. We will not forget, at the time of execution these are two interacting process, in each of which the available functionality is significantly different.
  • Clear allocation of remote access interface, which server methods can be called from the client, and what you can not? The names of the remote interface methods begin with the "Server" prefix. This allows you to read the code to immediately see the transfer control to the server, and simplifies the use of contextual prompt. It should be noted that the official recommendation (ITS) proposes to refer the methods with postfixes, for example, so change the ticket to the server (). However, you can not repeat all server methods can be called from the client, and therefore logical availability is more important, and not a compilation place. Therefore, the "Server" prefix mark only the methods available to the client, the example method call for serversmanshipTatuszazazov ().
  • Readability. The taste is, we accept the procedure when the module begins with the formation procedures on the server and remote access methods.
  • Accompanit. Must be definitely defined place to add a new code. An important point that is automatically created by the method of methods, methods are added to the end of the module. Because most often the event handlers are automatically created, the corresponding block is located last not to drag each handler to another location of the module.
Below is the basic structure of the module that implements the objects listed.
  • Graphic option - clearly shows the main stream of execution.
  • The text option is an example of template design for a quick insertion structure to a new form module.

//////////////////////////////////////////////////////////////////////////////// // <(c) Автор=""Date \u003d""/> // <Описание> // // ////////////////////////////////////////////// // ////////////////// // // variables of the module ////////////////// ////////////////////////////////////////////// // ////////////// // on the server // ******* Events on the server ******* & NASTERER PROCEDURE PROCEDURE (Failure, standardworking) // Insert the contents of the handler Extrudresses // ******* interface remote access ******* // ******* Business logic on server ******* ///////// ////////////////////////////////////////////// // ///////////////// // // General Methods of the Client and Server //////////////////// // ////////////////////////////////////////////// // //////// // on the client // ******* Business logic on the client ******* // ******* Teams ******* // ******* Events on the client ******* ////////////////////////// // ////////////////////////////////////////////// // / Main program operators

Related Questions
In conclusion, we denote several directions that it is useful to think about programming client-server interaction.
  • Options for implementing remote access interface. Asynchrony, degree of detail ...
  • Caching. In 1C adopted an unsuccessful architectural solution by introducing caching only at the level of calling methods of general modules and without providing management opportunities (relevance time, reset on demand).
  • Implicit server calls. Do not forget about the technological features, many "harmless" operations on the client provoke the platform for accessing the server.

The user with reference books and documents in 1C consists of filling the fields on the form.

Details 1C are the directory and document fields that are displayed on the form so that the user filled them.

Consider in detail the topic of details in 1C.

What is 1C details

Each reference book and document 1C consists of a set of fields. Such fields are called 1C details (for the 1C programmer).

In the configurator, in the 1C configuration tree, expand any directory or document and you will see a branch of the details. This is a list of details (fields) of the directory.

View as the same details 1c look on the form of the 1C reference book.

Each property of 1C has properties that indicate what kind of value is stored in the prop. (String, number, etc.) and how the user will work with it.

Right-click on any props 1C and click Properties. The list of properties of the selected props opens in the right window.

The main properties of 1C details:

Standard details 1C.

As you notice, there are 1C details on the form of the directory, which are not listed in the configurator: group, name, bik.

In the form of a list of reference book, also there are details of 1C, which are not listed: a removal mark.

These are standard details 1C. What it is? Everyone has a set of details 1C by default. For reference books, for example - code and name. Documents this is the date and number.

Standard details 1C can be viewed as follows:

  • Go to the 1C object editor (directory or document) by clicking on it twice with the mouse
  • In the window that opens, select the data tab
  • Here you can configure standard details Code and reference name
  • Click the Standard Details 1C button to view the full list.

General details 1C.

Starting from version 1C 8.2.14 in 1C, a new object 1C appeared - General details 1C. Using it, you can add props (field), which will be present immediately in a variety of reference books and documents.

Properties of total details 1C:

  • Auto use - adds total 1C props to all reference books and documents
  • The composition - allows you to add a total details of 1C only to the necessary reference books and documents (auto use then not to use to value).

How to add requisite 1c

Right-click on the branch of 1s the desired directory and select Add.

We introduce the name of 1c props, for example, "addiction" and synonym for an office ". Type Let's leave the default line, but put a tick unlimited length.

We will add another props 1C in the same way, just choose the type of Boolean, let's call it "running".

How to derive props on the form 1C (thick client 1c)

We will reveal the branch of the form of the same reference book. To open the form - choose the form of the item and press it twice with the mouse.

Pull the mouse over the edge of the form and stretch it (optional item).

In the configurator panel, click the "Data Placement" button. You can also use the menu / placement menu.

You see - our form details are not bred. Install the checkbox on them. And also ticks insert the inscriptions and place automatically.

How to derive props on the form 1C (subtle client 1C)

We will reveal the branch of the form of the same reference book. Select the form of the element and press it twice with the mouse.

On the Requisites tab, open the Line object. You will see a list of details added earlier in the directory.

Now simply drag from the right window to the left right props and it will appear on the form.

Requisites forms 1C.

In the Tolstaya Client, the form has its own props. They are on the details tab.

These details are not stored in the database, but they can be used on the form for fields that are needed to work with the form.

For example, you added a tick. When it is pressed on the form, something happens. The check mark value for you does not matter (it is not necessary to write it) - it is used only to switch the form when working with it. In this case, as data, you do not use the requisite of the directory, but the form props.

Periodic details 1C.

In 1C version 7.7 were periodic details. Their meaning is: the value of the props is different in different dates. For example, the value on September 1 is one, and on October 1 - another. At the same requisite.

In 1C 8 periodic details no. This is implemented as follows:

Requisites of form

The set of details of the form describes the composition of the data that is displayed is edited or stored in the form. At the same time, the details of the form themselves do not provide the ability to display and edit data. Elements of the form (see the "Form" elements section of this chapter) associated with the details of the form. The combination of all form details will be called for form.

Important! It must be remembered that, unlike conventional forms, all data of the managed form must be described in the form of details. It is not allowed to use variables of the module of the form as data sources for form elements.

There is an opportunity to designate The main props of form, i.e. props requisite, which will determine the standard formality of the form (extension of the form). It should be remembered that the main props of the form can only be one.

Expansion of form - These are additional properties, methods and parameters of the object form of the controlphone characteristic of the object, which is the main element of the form.

In the process of developing a form, it is possible to clearly set the possibility of viewing and editing specific details of the form, in the context of the roles, using the Preview and Editing properties (here, see the "Role-Tuning Form" section of the head "editors"). In addition, the availability of a particular details in the most form can be configured using functional options (more on functional options can be viewed in the chapter "Management of the Configuration Interface").

Property property form Saved data It is a sign that the interactive change in the props will lead to an attempt to block these form for editing, as well as to the automatic setting of the form of the modified form.

Data Types available in managed form

The managed form differs from the usual form also and the types of data with which it works. If the usual form works with most types, which provides 1C: Enterprise (including the type of reference bookgent, document object, etc.), then the following categories of types can be distinguished in the managed form:

  • types that are directly used in the form are those types that exist on the side of the fine and web client (for example, the number, the Directory. Reloars, Graphicsham, Timber);
  • types that will be converted to special data types - data types of controlled form. Such types are displayed in the list of details of the form in parentheses, for example (reference booking. Turns);
  • dynamic list (For more information, see the "Dynamic List" section of this chapter).

Convert application objects to form data

Some applied types (such as the directory reference, etc.) do not exist on the side of thin and web clients (for details, see the chapter "The Concept of the Managed Application"). Therefore, for the presentation in the form of such applications in the platform, special types of data are entered, designed to work in managed forms. This feature of the managed application causes the need to perform the conversion of application objects to the form data (and back).

The following data types are used:

  • Properturance - Contains a set of arbitrary type properties. Properties can be other structures, collections or structures with collections. Such a type seems to be, for example, in the form of a directory.
  • Documentation COLLECTION is a list of typed values \u200b\u200bsimilar to an array. Access to the collection element is carried out by index or by identifier. Access by identifier may be absent in some cases. This is due to the type of applied object, which is represented by this collection. The identifier can be any integer. This type seems to be, for example, in the form of a tabular part.
  • The structure test is an object that is represented as a structure and collection at the same time. You can contact him as with any of these entities. This type seems to be, for example, in the form set of records.
  • PATFORMANDEVO - OBJECT Designed for storage of hierarchical data.

The application object is represented by either one or several elements of the form data. In general, the hierarchy and composition of these forms depend on the complexity and relationship between the application objects of the controlled form.

For example, a document containing the tabular part will be represented by an object of the type of structure (actually a document), which is subject to an object of the type of informational formation (tabular part of the document).

Important! During configuration development, it is important to remember that application objects are only available on the server, while the form data objects can be used on the server and on the client.

Data transfer between client and server parts of the managed form

In fact, it can be said that the form data is a unified presentation of these various application objects with which the form works uniformly and which are also present on the server and on the client. That is, the form contains some "projection" of data of application objects as its own data types and performs the transformation between them if necessary. However, if the configuration developer implements its data processing algorithm, the data transformation (from specialized types in applied and back) it must be performed independently.

When editing the details of the form in a specialized editor (for details, see the "Details" section of the chapter "Editors") It is possible to influence the transfer of data between the client and the server during the form work. This serves as a column of the requisite editor. Use always. The action of this property varies for three types of details:

  • For props, subordinate to the dynamic list (dynamic list column):
    • the property is enabled - props is always read from the database and is included in these forms;
    • the properties are turned off - the props is read from the database and is included in these forms only when there is a visible element of the form, associated with the props or its subordinate requisite.
  • For props, subordinate collection of movements:
    • the property is enabled - the document movement is read from the database and will be present in the form data;
    • the property is turned off - the document movement will not be read from the database and will not fall into the form data (if there is no shape element referring to the movement of the document).
  • The remaining details of the form:
    • the property is enabled - the props will be present in these forms, regardless of whether or not at least one element of the shape, which is associated with the requisite or its subordinate requisites;
    • the properties are turned off - the props will be present in these form only if there is an element of a form associated with the props or its subordinate requisite. Unlike the details of the dynamic list, it does not play the role of the visibility of an element associated with the props.

Note. It should be remembered that the property installed in the parent details is valid for all subordinate details. For example, if the use property is always removed from the table part of the document, the system believes that this property is removed from all subordinate details (despite the actual state of the property).

Methods for converting data for applied objects to these form

To convert applied objects to the form data and back there is a set of global methods:

  • Meaningrendanephors (),
  • ClaimsVassion (),
  • CopyDanforms ().

Important! Methods working with application objects are available only in server procedures. The method for copying values \u200b\u200bbetween the form data is available on the server and on the client, since it does not require application objects as parameters.

During the conversion of the form data in the applied object, their compatibility should be taken into account.

  • Meaningrendatinforms () - converts an application type object to form data;
  • Claiming () - converts form data to an applied type object;
  • CopyDanforms () - Copying these shapes with a compatible structure. Returns the value of truth if copying is manufactured, or false if the structure of objects is incompatible.

Note. When performing standard actions (opening the form, execute the standard command to record, etc.) forms with the main details, the transformation is performed automatically.

Let us give an example, how to use data transformation in your own algorithms.

& NASTERER PROCEDURE PROCEDURE (Failure, Standard Processing)

Objects \u003d References. Tasters. Intertionation ("Coffee Plant"). Receive (); Meaningrendaniforms (object object, object);

Extrudresses

& Custom Procedure Record ()

Record server ();

Extrudresses

& Nasserver Procedure Write aserver ()

Objectovar \u003d Propeformations (object, type ("reference booking. Turns")); Object project ();

Extrudresses

Also, the object manager has a methods available on the server:

  • Sign-sequentiallyrevisitforms () - performs the conversion of an applied type object to a specified form props.
  • RequisitformAvdiction () - converts the requisites of form data into an application type object.

The use of these methods is usually more convenient, as they have, for example, information on the type of form props. In addition, the Requisite Relationship () method () performs the setting of the correspondence of the form data and the object, which is used when forming messages. You can read more about this in the chapter "Service Features of Navigation".

We give an example of using these methods.

& Nasserver Procedure Recalculate Server ()

// Converts the props object in the application object. Document \u003d RequisitraftForms ("Object"); // Performs recalculation by the method defined in the document module. Document. Perform (); // Converts an applied object back to props. Recentlyrerevisitforms (document, "object");

Extrudresses

Program interface

PATFORMANDEVO (FORMDATATREE)

  • FindByid FindByid
  • Options (GetItems)

Description:

Designed to model the tree in the data controlled form.

This object can be serialized to / from XDTO. The XDTO type corresponding to this object is defined in the namespace. XDTO type name:

Options (GetItems)

Syntax:

Optional ()

Return value:

Type: Power Collections Electrhenidev.

Description:

Gets a collection of elements of the top-level tree.

Availability: Client, Server, Slim Client, Web Client.

FindByid FindByid

Syntax:

FindingFider (<Идентификатор>)

Parameters:

<Идентификатор> (mandatory)

Type: number. Tree element identifier.

Return value:

Type: Paramerterev.

Description:

Gets an element of the collection by identifier.

Availability: Client, Server, Slim Client, Web Client.

EatelTatreeItem (FormDatTreeItem)

Properties:

<Имя свойства> (<Имя свойства>)

  • GetId GetId
  • GETPARENT)
  • Options (GetItems)
  • Property (Property)

Description:

Element of tree data form.

EatelTatreeItemCollection (FormDataTreeItemCollection)

Elements of the Collection: Eatellanerev

For the facility is available bypass collection by operator for each ... from ... cycle. When traversery, elements of the collection are selected. It is possible to appeal to the collection element by operator [...]. The index of the element is transmitted as an argument.

  • INSERT)
  • Add (Add)
  • Index (indexof)
  • Quantity (Count)
  • Clear (Clear)
  • Get (Get)
  • Shift
  • Delete

Description:

Collection of wood elements.

Availability: Client, Server, Slim Client, Web Client.

See also:

  • Primary Elementider, Optional Method
  • PATFORMANDEVO, OPERATION METHOD

Features of working with tree values

Tree update

There is a problem fall Platforms when updating the tree.

If some node has been deployed in the tree and the slave node is selected, then when updating the tree function Validewandenforms Platform drops.

Solution: Before the update you need to clean the tree.

For example:

& Nasserver Procedure Cleaner (Elements) for each element from the Cleathelder cycle elements (element. Pouring elements ()); EndCycle; Elements. Operate (); Extrudresses

& The ground procedure of completion () measurement \u003d grades \u003d gradation Clearness (woodcuts. Focus elements ()); Meaningrendaniforms (ripponium, woodcuts); Extrudresses

& Complaint procedure for notification of (element) of fillets (); Extrudresses

Forms In 1C: The company is intended to display and edit information contained in the database. Forms may belong to specific configuration objects or exist separately from them and used by all applied decision as a whole.

For example, reference book Nomenclature It can have several forms that will be used for certain purposes - editing the directory element, display display, etc.:

Along with this, there may be common forms that do not belong to specific configuration objects - common forms.

Basic forms

Each configuration object can be used to perform some standard actions. For example, for any reference book, you may need to display a list of its items, display separate elements of the reference book, display a group of the directory, select elements and groups of elements from the directory. For any document, a list of such actions will be much less: viewing a list of documents, a choice from the list of documents and view a separate document.

To ensure that such standard actions are executed with data objects, for each of them there is a set of basic forms that will be used when performing appropriate actions. Main can be assigned any of the forms subordinate to this object. For example, at the directory Nomenclaturethe following main forms may exist:

And the document Admission of goods and servicesthe composition of the main forms will be different:

Thus, if the user wants to see a list of reference book Nomenclature or document list Admission of goods and servicesThe system will open the appropriate form assigned as a list form for these objects.

Auto-generated forms

An important feature of the 1C system: Enterprise 8 is the mechanism of auto-generated forms. This mechanism frees the developer from the need to create all possible forms for each of the configuration objects. The developer is enough to add a new configuration object, and the system itself will generate the necessary forms to display the information contained in this object to the desired moments of the user's operation.

Thus, the developer needs to create its own forms of application objects only if they should have differences (another design or specific behavior) from forms automatically generated by the system.

Communication form with data

An affiliation of the form for one or another configuration object does not determine the data composition that is displayed in the form. The fact that the form belongs, for example, a directory NomenclatureAllows you to assign it to one of the main forms for this reference book, but does not determine what the data will display this form, and what will be its behavior.

In order to associate the form of data, the details of the form are used in which the list of data displayed by the form is specified. All forms, by themselves, have the same behavior, no matter what data they display. However, one of the details of the form can be appointed for it the main (it is highlighted in bold), and in this case the standard behavior of the form and its properties will be supplemented depending on which type has the primary props of the form:

For example, if a document will be assigned as the main details of the form Admission of goods and services, When you close the form, the system will request confirmation of the recording and conducting this document. If the main details of the form assign, say, reference book Nomenclature, then such a request for confirmation when closing the form will not occur.

Form structure

The main feature of the forms is that they are not drawn by the developer in detail, "on pixels". The configuration form is a logical form of form composition. And the specific placement of the elements is performed by the system automatically when the form is displayed.

The displayed part of the form (visible to the user) is described as a tree comprising form elements.

Elements can be input fields, checkboxes, switches, buttons, etc. In addition, the element may be a group that includes other elements. The group can be presented as a panel with a frame, a panel with pages (bookmarks), actual page, command panel. In addition, the element may be a table that also includes elements (columns). The structure of the elements describes how the form will look like.

All formality of the form is described in the form of details and commands. Details are the data with which the form works, and the commands are performed. Thus, the developer in the form editor must include the necessary details and commands in the form, create their form elements and, if necessary, to compose elements in groups.

Based on this logic description, the system automatically generates an appearance of the form to display the user. In this case, the system takes into account the various properties of the displayed data (for example, type) to make the elements of the form as convenient as possible for the user.

The developer can affect the location of the elements by various installations. It can determine the order of elements, specify the desired width and height. However, this is only some additional information that helps the system is displayed.

In forms, the developer can use not only the commands of the form itself, but also the global commands used in the entire configuration command interface. In addition, it is possible to create parameterized commands that will open other forms, taking into account specific data of the current form. For example, it may be a call to the residue report on the stock that is selected now in the form of consumable invoice.