Computers and modern gadgets

Module "Universal Lists"

The main feature of the module is that it allows you to create all kinds of lists directly from the public area site. Without going to the "admin panel", you will create your directories, lists, registers and the like and fill them with data. Do it - create an interface and customizethe appearance of the lists you will be using convenient visual tools. And, by enabling support in the module settings business processes, you organize and organize teamwork with lists.


Module features:
  • constructing arbitrary object storages;
  • all functionality is available from the pages of the site;
  • everything works on the basis of the Information blocks module and all its features are available: filters and sorting, card and lists with columns and fields settings, group editing, access rights, etc.;
  • any hierarchy of object storage is possible;
  • as options for use: FAQ, reference books and knowledge bases, lists of counterparties, structured archives, libraries, file storages and more.

Grids + Information Blocks

Module"Universal Lists" is an add-on for Infoblocks, organized as a public complex component and uses standard features Grids. This allows you to create a unified interface - with the same user settings and functionality. Such a universal interface allows you to solve many problems of maintaining data in the public section.



The module works with the specified type of Information Blocks, and by default in the component settings this type is called "List". This means that all Infoblocks that you create in this component will be added to this type you specified. Also, in the component parameters, in addition to the type of infoblocks in which the lists will be stored, the addresses of all pages of the interface of universal lists are set.

Creating a list interface

To start working with lists, you need to create Infoblock type, with which the "Universal lists" component will work (for example, "Lists"), create a page on the site; place this complex component on the page, select the type of information block created in it (“Lists”) and start filling them in.



In module settings "Universal Lists" for the created type of Infoblocks, you must specify user groups that will be able to work and manage our universal lists. For example, you can set the Administrator to be able to modify and add sections and list items. And in the same way, you can grant one of these rights to other user groups, for example, company employees.



After these simple steps, you get a full-fledged interface for working with lists, and all further work with them is performed entirely in the public section.

Setting up lists

You will create and edit lists, its sections, elements and properties in the public section of the site. On the page where the complex component "Universal Lists" is located and configured, you can immediately add new lists and immediately start filling them. In fact, you create the same Information blocks, only now not in the "admin panel", but directly on the site, and you can immediately see them on the page. For example, adding a new "Partners" list in the public section, you add a new Infoblock with the same name.



In this list-infoblock you can set signatures, labels for elements and sections of the list. For example, if we are talking about a list of partners, then “Add item” should be renamed to “Add partner”. As the owner of the list, you can immediately determine access to your list: some group - reading, some - changing elements. Thus, the order of collective work with the created lists will be immediately determined and configured.



In addition to signatures and rights in the lists, you can customize fields. You will do this in exactly the same way as you did before in the administrative section - in Infoblocks. At the same time, you can add not only standard fields - such as "Name", "Date of activity", but also Infoblock properties - such as "Date", "Date", "File", "Binding to Infoblock elements". Default values ​​are also set and Infoblock sections are used.



Thus, you can customize your list very flexibly, adding only those fields that you need to it. And you will immediately start maintaining this list on the site, say, a register of some documents. The "Universal Lists" module uses the standard features of Grids - this means that it supports sorting and filtering elements, the form for editing elements and group editing / deleting.

Lists + Business Processes

The Universal Lists module supports built-in Business processes. In order for this feature - to launch Business Processes - to appear in your lists, you must enable it. Such a connection is made in the administrative section - in the properties of the Infoblock with which your lists work.



Enabling business processes


With the use of business processes, you can organize serious and well-coordinated team work on a particular project on lists. As an example, use the Counter property in the register of incoming documents, which will automatically number all documents. And it will be possible to open a business process that will send, for example, the final document, to an executor who will somehow respond to this document.


List Usage Examples

The "Universal Lists" module is included in 2 older editions of "1C-Bitrix: Site Management" - "Business" and "Web Cluster". Of course, you can use their functionality to maintain lists of some internal order. Perhaps it will be customer contact lists. Your lists will be used, for example, to create private sections for business partners. In this case, partners will be able to conduct, on this secure and separate web site, their confidential lists. That is, you can organize additional services for different groups of users of your site.

Suppose you have a need to organize receiving web forms website from business partners. At the same time, you, of course, do not want to give access to the administrative part to unauthorized users. The ready-made mechanism of "Universal Lists" just allows the already existing Infoblock with a large amount of accumulated data to be presented in the "public" and give partners the opportunity to search through it, filter information. That is, partners will only work with list data and add entries to them.

The "Universal Lists" module is a practical solution "Grids + Infoblocks". With the help of this solution, you can configure your site to work with a wide variety of lists - with any data, with any source. The Grid technology used in the module successfully allows you to do this - to create FAQ, reference books and knowledge bases, lists of counterparties, structured archives, libraries, file storages and more.

The "Universal lists" module is quite powerful and functional. It can be successfully used to provide site users with the ability to add and edit their infolock elements in the public part. However, the principle of working with it is very different from what we are used to when working, for example, with the "Adding infoblock elements" component. First of all, it concerns the setting of access rights. In this article, I will tell you how to configure the module to perform a task similar to the one that was previously solved using the "Adding infoblock elements" component, i.e. so that the user can add elements of the infoblock, and edit elements, but only those added by him, with the possibility of moderation by the site editor.

1. Create an infoblock type

Because the complex component "Universal lists" (bitrix:lists) does not work with separate infoblocks, we create the "Companies" infoblock type.

2. Set up the infoblock type for working with universal lists

To do this, go to the "Universal lists" module settings (Settings > Product settings > Module settings > Universal lists) and on the "Permissions" tab, allow the "Administrators" group to manage lists in our created "Companies" infoblock type.

This step is required because without it, when placing the component, our infoblock type will not appear in the drop-down list in the component parameters.

3. Place the component

We create a section on the site and place the "Universal lists" component in it.

In the component parameters, select our infoblock type and enable CNC support (in non-CNC mode, I personally could not get the component to work).

Add infoblock (list)

After placing the component, we will see a panel on the page with a single "Add" button. With it, we can add an infoblock.

Click the "Add" button. The form for adding an infoblock will open.

On the "Access" tab, set the "Add" right for the "Registered users" group, and the "Change" right for the "Author" user category. The latter will enable the user to edit their elements. If you set the "Change" right for the "Registered users" group, then the user will be able to edit all elements of the infoblock, and not just his own. Instead of the Registered Users group, you can also use the All Authorized Users category.

Note: the infoblock can also be added through the administrative part of Bitrix, if extended access rights are enabled.

After completing these steps, users of the "Registered users" group will see the following on the main page of the section:

When selecting the information block (list) "Companies", the user will have access to a list of its elements.

When you click the "Add company" button, an editing form will open:

Adding fields

The interface for adding fields is one for the actual fields and infoblock properties. In this case, you can set your own name for any field, as in the "Adding infoblock elements" component.



Sending notifications and approval

Sending notifications to the site administrator and approving documents when working with universal lists is usually carried out using business processes. Because it is not convenient to use standard business processes in this case, you will have to create your own business process. You can also use the "Document Management" module instead of business processes, but you will have to configure the infoblock to work with document management through the administrative part of Bitrix, because. there is no such possibility in the "Universal Lists" component).

To use business processes with a list (infoblock), the checkbox "Enable support for business processes" must be checked in the list settings. Then the "Business Processes" button will appear in the list toolbar for the administrator.

After clicking on the button, we will see a list of business process templates.

Click the "Create Sequential Business Process" button. The Edit Business Process Template page opens.

This is a slightly modified standard "First Vote Approval" business process. Because The standard publishing mechanism could not be used - when unpublishing, the elements are not displayed in the list (even under the admin), I used instead of the "Publication" / "Removing the document from the publication" blocks "Changing the document" with a simple activation / deactivation. Also, instead of email messages, I used social media messages.

In the template parameters, check the "Automatically start when added" checkbox.

If you check the "Automatically start on change" checkbox, the process will be launched by the user when the element changes. Or you can create a separate business process for this, which will function according to a different scenario, for example, not deactivate the element, but simply send a notification to site editors.

Note: keep in mind that if a user group is not set to have at least "Read" access to the list (infoblock), then this group will not appear in the user group selection dialog in the business process designer, and you will not be able, for example, to program the sending of a notification this group.

Editing a Component Template

Editing the component template in our case will be reduced mainly to simplifying and disabling unnecessary functionality.

For example, to change the appearance of the list by default (all columns of fields are displayed by default, the color scheme is blue), add the following code to the lists.list component template in the result_modifier.php file:

$aOptions = CUserOptions :: GetOption("main.interface.grid" , $arResult [ "GRID_ID" ], array()); $aOptions ) ( $aOptions = array (
"views" =>
array(
"default" =>
array(
"name" => "<Представление по умолчанию>" ,
"columns" => "NAME,BIZPROC" ,
"sort_by" => "NAME" ,
"sort_order" => "asc" ,
"page_size" => "20" ,
"saved_filter" => "" ,
),
),
"filters" =>
array(
),
"current_view" => "default" ,
"filter_rows" => "list_section_id" ,
"theme" => "grey" ,
); CUserOptions :: SetOption("main.interface.grid" , $arResult [ "GRID_ID" ], $aOptions );

This code will set the display of only columns "Name", "Business processes", gray color scheme, etc. If the user has already selected columns or something else, his choice will not be changed.

In the same result_modifier.php file, we will remove the link to the business process in the list, leaving only the name. The very name of the column "Business processes" is changed to "Status". Thus, this column will display the status of the business process, for example, we can set the statuses "On moderation", "Published", "Rejected" in the business process itself.

To remove the ability to start a business process from the context menu, paste the code in the same file:

foreach($arResult [ "ELEMENTS_ROWS" ] as $i => $arRow ) ( $arActions = Array(); $arRow [ "actions" ] as $a => $arAction )
if(! $arAction [ "MENU" ]) $arActions = $arAction ; $arResult [ "ELEMENTS_ROWS" ][ $i ][ "actions" ] = $arActions ;

Now we edit the lists.element.edit component template - we completely remove the "Business Processes" and "Sections" tabs. For the first one, it is enough to find the CModule::IncludeModule("bizproc") construct in the template.php file and substitute "&& false" next to it, for the second one, find and comment out the line:
array("id" => "tab_se" , "name" => $arResult [ "IBLOCK" ][ "SECTION_NAME" ], "icon" => "" , "fields" => $arTabSection ),

Outcome

In general, the use of the "Universal lists" module for solving this simple task is not justified and even convenient (it was necessary to perform too many actions, it was necessary to edit the component template). The "Adding infoblock elements" component is much better suited for this, if not for one thing - this component is no longer supported by 1C-Bitrix, and the simplest things have to be finalized almost from scratch. Therefore, in many cases the described method can be advantageous.

I would like to present a functionality that is very important for many developers, which will find (and is already finding) widespread use in 1C-Bitrix products - both in Site Management and in the Corporate Portal. Especially important, given the current trend of the present - that the site now is not just a site, like a company presentation, but more and more like a business application, as a functionality for organizing interaction with partners and customers. We will talk about Universal Lists using Grid technology. We will talk a little about the Grids themselves - only at the "what is it" level. Let's take a closer look at the Universal Lists - about exactly how the "kitchen" of Grids is used in this module, why it greatly simplifies the work of a web developer to create all sorts of lists on sites, and allows the user to work with them easily and conveniently.

A little about Grid

The technical support of "1C-Bitrix" constantly receives questions on the topic: "But what about what is in the" admin panel "and take out" to the street "- to people?" Indeed, how to present in the "public" some functionality, for example, universal grids? And not just to present, but also to give the opportunity to enter data there?

When developing a new product - "Corporate Portal", the developers of "1C-Bitrix" faced the fact that all public interfaces turned out to be scattered. And only because there was no tool for creating the same type of interface. The solution was visual Grids, a set of core components for creating a unified interface. What are these Grids, what do you need to know about them? It is first and foremost a developer tool! This is not a custom component, so there is no point in adding it to the project page through the component tree. This is an API for the developer - in order for him to present his data.


Multifunctional component for displaying lists

You might get the misconception about Grids that they can only display InfoBlocks. This is absolutely not the case - Grids can work with abstract data and display everything that is "slipped" to them. Grids are also loaded with typical functionality for working with lists and forms. That is, what is common, grids facilitate and simplify. And one of the distinguishing features of grids is that they provide quite a wide range of customization options for the user - "for themselves". This means that each of the users can make their own Grid settings, which will be convenient only for him.


Setting up custom views

What does the general pattern of using Grids look like? Since Grids operate in the public section, you will most likely be creating a component for the public section that represents the data, sorts, filters, and so on. To present this data, you call the Grid component, the form component in the template of your component and simply pass data from them to display. And, if necessary, you can use ready-made components, let's say one of the simplest - "toolbar", which is your toolbar and displays with buttons.

Generic Lists

Grid components are implemented in 1C-Bitrix products, in particular, the Document Library in 1C-Bitrix: Corporate Portal uses grid components, the Business Processes Without Documents module uses grids. All this allows you to use a unified interface with the same user settings and functionality. One of these modules, for the sake of which, in fact, the "kitchen" of Grids was started, is the Universal Lists module. What is this module?


List - Government of the Russian Federation

Often there are tasks to maintain data in the public section, and so far there have been no interfaces for this, except, of course, the administrative one. The created module is an add-on for Infoblocks, organized as a public complex component and allows the user to enter his data in the form of a list. The component works with the specified Infoblock type ("Lists" is displayed in the distribution kit), this is set by default in the component's settings. This means that all Infoblocks created in this component will be added to this type.


Component settings - Infoblock type

You can also specify which user groups have the right to work with our universal lists. For example, in the settings for the Administrator, you can specify that he can change and add sections and list items. But in the same way, you can grant this right to other user groups, for example, company employees.


Lists, they are also Infoblocks

What do we see on the site? Essentially a list of infoblocks. That is, adding a new list, for example, "Partners", we add a new Infoblock. In this list-infoblock, we can set up labels, labels for elements and sections of the list. For example, if we are talking about a list of partners, then "Add item" can be renamed to "Add partner". The owner of the list can immediately determine access to his list: some group - reading, some - changing elements. Thus, you can immediately decide and set up the order of collective work with the created lists.

To start working with lists, you need to create a page, create an Infoblock type, place the "Universal Lists" component on the page, select the "Lists" infoblock type in it, and start working.

The plans for the development of Lists in 1C-Bitrix products provide for the following:

Lower control over the lists to the level of the working group in order to work with their own lists within the group;

So that you can create your own, personal list in your profile. So far, in order to "start" the lists on his page, the user must contact the administrator to place the component on his page and configure it, after which you can start working with the lists.


Customizing list fields

What can be configured in the list? We have already talked about signatures and rights. And the most interesting thing is that you can customize the fields in the lists! Moreover, it should be especially noted that this is done in exactly the same way as you did in the administrative section in the Infoblocks. At the same time, you can add both standard fields - such as "Name", "Date of activity", and Infoblock properties, such as Number, Date, File, Binding to Infoblock elements. You can also set default values ​​and use Infoblock sections.


Basic field settings

Let's see how the list is configured. Let's add some field. Let this be the date of the last contact. We add a field, we say that it is Date \ Time, we do not put down the default value - a field has appeared, for example, "Date of the call". Now we edit the list parameters and, accordingly, we have a new field of the "Date" type. As you can see, in this way we can flexibly customize our list, adding the fields that we need, and maintain, say, a register of some documents on the site.

As we have already said, the Lists module uses the standard features of Grids, that is, it supports item sorting, item filtering, item editing form and group editing/deleting.

Lists + Business Processes

Another very interesting feature of Universal Lists is the support of built-in Business Processes. You probably don't have it in the public section yet. To include Business Processes in your lists, you must go to the administrative section in this Infoblock and enable Business Processes for it there.


Business processes in the lists are enabled in the admin panel - in the infoblock properties

Using business processes allows you to organize quite serious things on lists. For example, in the register of incoming documents, the Counter property allows you to automatically number all documents, and you can open a business process that will send the final document to an executor who will somehow respond to this document. In this way, you can organize well-coordinated collective work with lists.


Lists support business processes

List Usage Examples

The Universal Lists module is included in all editions of "1C-Bitrix: Corporate Portal" (www .1c -bitrix .ru /products /intranet /) - it is clear that it is needed there to maintain lists of some internal order, for example, these can be customer contact lists. In "1C-Bitrix: Site Management" (www.1c-bitrix.ru/products/cms/) the module is present in 3 older editions, starting with Business. It is assumed that the lists will be used, for example, to create closed sections for business partners. Partners will then be able to maintain their confidential lists there. That is, we can organize an additional service for some site visitors.


Lists on the website of the state organization

You can give a more specific example - to organize the reception of web forms on the site. In essence, web forms become an input form for an infoblock element. In the administrative part, you maintain various Infoblocks and, of course, do not want to allow different groups of users into the admin panel - only your content editors work there. However, it is necessary to enable, say, the company's partners to process data from these Infoblocks - to search through them, add new records. Moreover, this must be done quickly, moreover, it is in the "public" - without entering, we repeat, the administrative department. This is where the ready-made mechanism of Universal Lists comes to the rescue, just allowing the already existing Infoblock with a large amount of accumulated data to be presented in the "public" and make it possible to search through it, filter information - in general, work with this data.

Once again, Grids are a technology with which you can work with any of your data, with any source. For example, you take data from a MySQL project, organize work on Grids - input and processing of this data. But Lists are already a practical solution for "Grids + Infoblocks". How are they related? The list and the Infoblock are essentially the same - the same data, only available to the organization with them directly from the "public".

So, with the help of Universal Lists, you can quickly create lists such as frequently asked questions on your web project. We emphasize once again - directly from the "public" - without going into the administrative panel! The visual universal list editor will help you quickly create and configure repositories of any type of information. And by using visual components with drag & drop support, you can easily do this. Moreover, you can not only enter data into storages, but also edit them.

Natalia Sergeeva for Softomania

Lists- a convenient tool for storing information with its own structure and fields. In addition, lists can be automatically processed using business processes.

Only an administrator can create lists.


Go to page Lists and press Create new.

Settings


In the tab Settings enter the name of the list and its description.

Enter a sort value. The lower it is, the higher the list is among the rest. Add a picture for your list.

If you plan to use business processes in the operation of lists, then activate the option Enable business process support.

Signatures


Bookmark Signatures you can set your own names for the elements and sections of the list. For example, if you are creating a Suppliers list, then you should replace the word element with a supplier, and the word section with a group of suppliers, and so on.

Access


With button Add select the desired group or specific user for which you want to change access rights and set them.

  • No access- the list will not even be visible.
  • Reading- allows you to view the list only.
  • View in panel- viewing the elements of the list.
  • Addendum- you can add items to the list.
  • Adding to the panel- You can add items to the list and view them.
  • Change- it is allowed to add elements and change the list, as well as run business processes on the elements of the list.
  • Change with restrictions- it is forbidden to add and delete sections of elements. Otherwise, all the same actions as for the rights to Change.
  • Full access- the full level of access rights to the list is set.

In order to explore the additional possibilities of business processes, let's analyze the situation when your company receives a commercial offer (CO) from a supplier, partner or any other counterparty.
First of all, we need to understand what to do with this document. To do this, we send it for approval to a competent employee (expert), who will decide on the future fate of the CP: it is either deleted or saved to disk and entered into the registry for further work, or, if the CP is considered useful, a transaction is immediately created and work begins.



To automate this business process, you need to be able to work with lists.

IN There are 2 types of lists:

  • lists of the "Live feed" (you can go to them through the "Processes in the feed" or through the "Live feed", the "More" button, then "Settings").
We go into a specific process and see the list:


  • universal lists (section "Company", item "Lists")



*The main difference between universal lists and Live Feed lists is that the latter are focused on active work and discussion right in the Live Feed. The necessary actions with the list can be performed directly from there.


We start working on the BP by creating two different lists:

  • "Coordination of KP"
    the list of the "Live Tape" that will be used to agree on the commercial offer (KP).
  • "Register of KP"
    information is stored here in order to return to editing it later.

The difference between the first list "Coordination of commercial proposals" is that the employee can send a commercial offer to the right expert for approval as quickly as possible. Here you only need to set the required fields, namely:

  • The name of the CP;
  • Responsible – to whom we send the business process;
  • Company name;
  • Date - filled in automatically upon creation;
  • KP file;
  • Comments;
  • Telephone;
  • email;
  • Status is an auxiliary field where the result of the business process is displayed.



The second list "KP Register" contains additional fields that allow you to save information that may be useful in the future:
  • Title - taken from the live feed;
  • Date of creation;
  • Responsible;
  • transaction ID;
  • ID of the company we created;
  • Transaction amount.



Work with business processes is carried out through the "Activity" option. Here we create a list element: in the "Document type" field, select any of the lists that are on the portal. As a result, we see the fields that are set in these lists. You can start filling them with data.




All files we work with are stored on Bitrix Disk.

* Bitrix Disk is the same data storage as disks on a PC. Accordingly, working with them is similar to what happens with disks on a PC, in Explorer.

What discs are in :
  • Shared disk (section "Company", item "Shared disk") - available to all employees. It makes sense to store there documents that any employee may need (letter forms, contracts, etc.). Files here are visible to everyone;
  • Employee's personal disk (section "Favorites", item "My disk"). In addition to the files that the employee uploaded to the PC, there are also files that are available from other places (for example, from the Shared Disk section). The files are only visible to you unless you set permissions for someone else;
  • Group Disk - for a separate storage in which you discuss specific issues. In other words, you can upload files to this disk, create documents, but they will be visible only to those who are members of this group.
You can also run business processes on disk files, as well as create public links. The figure shows the entire list of "activities" for working with the disk:




Consider working with CP (2 development scenarios):
  • We go to the “Processes in the ribbon” section, find the “KP approval” list, the “Business Processes” button, get into the business process editor and create a sequential business process, which we will call “KP approval”. It will start automatically when a CP appears (that's why we leave only the first checkmark on top).
  • To find out what to do with the CP, it must be looked at by an expert. That is, in the document field, select the responsible person. We give the name of the document "Choose what to do." In the Description, you can specify the name of the CP, the date of creation and the necessary comments. Then we create a list of answer options for the expert:
  1. Reject;
  2. think;
  3. Create a deal.
Click the "Install" button. Let the default be reject (not so often come across really useful CPs)




To request a file from a person, before sending the CP somewhere else, add a request for additional information in the “Activity” settings in the “File” type field. Let's name it "Additional File" and select the "File" type. Press the "Save" button. Find out the transaction amount in the same way: in the “Activity” settings, select the necessary elements, fill in the fields, give the name of the field “Specify the transaction amount”, click the “Save” button.
  • Based on the expert's answer, we set the condition: "What to do." Then options: "Reject" - this action will be performed if the variable "What to do" is equal to the expert's answer "Reject". Here you can set the status "Rejected" in the list element to understand that the CP was considered and found to be useless. Another option is "Think", that is, the value of the variable "What to do" is equal to "Think". To keep all documents in one place, save them to a folder (section "activate" "Disk"). Select "Upload to Disk", then "Save".
  • We will transfer the information that is already in the live feed to the "KP Register" list, which we will supplement. We go to "Creating disk elements" in the "Document processing" section, find "activities", open and select documents. Bitrix 24 immediately provides the necessary fields for filling. We fill them in the same way as we considered earlier (date, responsible, etc.). Press the "Save" button.
The check can be carried out if you go to the live feed, select the section "Processes" and "Coordination of the CP".

Business Processes and CRM

To work in CRM you will need the following sections (they can be found in the menu on the left):
  • Ribbon,
  • The main 4 entities: leads, contacts, companies, deals.
* Lead - the "embryo" of the contact (KP, call, etc.). All preliminary information about the client is stored here, but he is not yet ready to proceed to the stage of the transaction. There is also a feed in which all events by lead are visible. You can make appointments, calls, fill in the necessary information. When more detailed information about the client has appeared, you can convert it to a company or contact. After that, if it is already necessary to conclude a deal, then the lead is converted into a deal and the work continues in this entity. Leads and deals have a status bar that shows at what stage the deal with this lead is.

For CRM, there are several "activities" that allow you to create entities and track the stages of a transaction. When we work with business processes in a live feed, lists, on disks, we can only create some kind of CRM entity. If you need to work with data that will be stored in this entity, then business processes on the CRM itself are used. They are located in the "More", "Settings", then "BP Automation", that is, the same business process editor, from where we will receive all the information that is available in the lead, deal, contact, company.

Let's create an algorithm for the work of the business process, if the CP turned out to be useful and the company will conclude an agreement:




We go to the BP editor, "Processes in the feed", "Coordination of the CP", "Business process" and add one more condition - "Create a deal".
The deal will be created with some company, for this we create a company. We go to CRM, select "Create a new company". We fill in all the fields.
After that, you can already create a new deal. We fill in the same way: name, company, responsible person, comments. Don't forget to save. In the list of business processes, indicate that the status has changed to "In Progress".




Now that the BP is completed, it will appear in CRM as a new deal.




We go into the created transaction and see: the company that we created, the amount of the transaction and the person responsible - all the data that we indicated. BP is working correctly.


If you notice an error, select a piece of text and press Ctrl + Enter
SHARE:
Computers and modern gadgets