As we already saw, every metadata object comes along with its standard set of commands we can use to open object forms and perform various actions with it. We place those commands to the main section or a subsystem command interface, and they become available to a user in the main windows global command interface. When a user opens a form, they see the form elements, some of which are links or buttons the electronic command. When clicked, they comprise to this so-called a local or form command to interface. This is what we're here to talk about today. Let's open the company's catalog item form in Designer. This is where all it's commands live. All commands are split into three taps, form commands, standard commands, and global commands. Let's start from the beginning. Form commands are for us to add whatever additional command we need under form. I can add any command here, then write any code I want to be executed when the command is run. Drop the command any where on the form, and here we go. When we drop the command to the form elements list, the platform created these button element whose settings I want us to play with. We can change its type right here and get the clickable link instead of the button. We use these only in all action option to tell the form whether we want the command to be visible on the face of the form or only inside of these More Actions menu. We also might want to select a picture for the button, and decide if we want to see the picture only, the text only or both. We can also mark the button as the default one, in which case it will be the first to see because of its yellowness. These were the form commands. Next step, the standard commands. Standard commands live on these tab and are brought over to the party by the form, its elements, and its main attributes. Let's check out what we have here. If I deselect the Main attribute checkbox here, the form retains only its own commands, some of which are already present here in the drop-down menu. Unlike the form commands, represented by form elements, the standard commands cannot be found anywhere in the elements list. So the platform adds them to the form behind the scene without cluttering up the elements list. But what do we do if we need to change the placements or appearance of one of these guys? Well, we just create a form element as usual by dropping the command to the elements list. Now I can do whatever I might need with it, change its layout, replace the picture, make it all yellow and so on, and of course we can add to the form any command the platform decided not to show by default, like these form Close button for example. By the way, what's the deal with these mysterious guys? What do they do? They are here to help you to build simple one-question dialogues with the user, like, for example, this one. When the user clicks one of these commands, the form gets closed and returns these dialogue return code system enumeration value for you to process. If one of the form attributes is marked as Main, it brings over all its commands to the form. Again, there are no elements representing these commands in the list, but nothing prevents me from dropping any of them to the list and customizing them however I like. By the way, if I don't want any of these commands in the form, here is the place where I can disable them completely. Okay, these are the standard commands. Last one, the global commands. Global commands live here on the last tab, and they are split into independent and parameterizable ones. The independents are nothing but our old friends from the global command interface. These are our quick menu commands, for example. There are also old commands included in all subsystems. Those not included in any subsystem and aren't down here in one of these additional groups, we can drop any of these guys to the form and it will perform its command the same way it does when it's clicked from the global command interface. Now to the parameterizable commands. Remember how hierarchies were discussed in Module 2? If I look at all the references to the company's catalog from other objects, this is what I will see. The company's catalog homes the agreements catalog, meaning that a company can have any number of agreements belonging to it. This is the hierarchy the platform is aware of. So it assumes we might want to see all the agreements belonging to the company whose form we are now in. If I drop this command to the forum and run the app, I will be able to see all infinity foods agreements, just like this. This is what the form commands are about.