Типы встроенного языка и свойства элемента проекта вида «КомандаСКомпонентом»
Элемент проекта КомандаСКомпонентом позволяет описать команду, привязанную к конкретному компоненту.
После того как вы добавили в проект команду с компонентом и задали ей имя, создаст один тип встроенного языка. Имя этого типа совпадает с именем вашей команды с компонентом.
Например, для команды с компонентом КомандаЗакрытьФорму будет создан тип КомандаЗакрытьФорму. В общем случае имя этого типа выглядит следующим образом: <Имя-команды-с-компонентом>.
Тип <Имя-команды-с-компонентом>
Тип <Имя-команды-с-компонентом> доступен на клиенте. Данный тип, в отличие от других команд, не является типом-одиночкой, а имеет конструктор:
// Создать новый экземпляр команды с компонентом
знч МояФорма = новый Форма()
знч КомандаЗакрытьФорму = новый КомандаЗакрытьФорму(Компонент = МояФорма)
Модуль команды с компонентом
В проекте модуль, расширяющий тип <Имя-команды-с-компонентом>, называется модулем команды с компонентом. Он исполняется на клиенте.
В этом модуле вы можете разместить обработчик команды.Иерархия наследования
- Команда (абстрактный)
Свойства элемента проекта
В проекте элемент КомандаСКомпонентом имеет следующие свойства:
- ТипКомпонента
- Тип компонента, над которым будет выполнена команда.
- Представление
- Строка. Строка, которая будет показана как заголовок команды.
Если не задано явно — генерируется автоматически по имени элемента проекта. Пример
YAML-файла:
ВидЭлемента: КомандаСКомпонентом Ид: 141df770-6a96-4650-8042-c8beb8801c5d Имя: КомандаЗакрытьФорму ОбластьВидимости: ВПодсистеме Представление: Команда закрыть форму ТипКомпонента: Форма Обработчик: ЗакрытьФорму
- Обработчик
- Имя метода в модуле команды с компонентом, который будет вызван для выполнения
команды. Пример
YAML-файла:
ВидЭлемента: КомандаСКомпонентом Ид: 141df770-6a96-4650-8042-c8beb8801c5d Имя: КомандаЗакрытьФорму ОбластьВидимости: ВПодсистеме Представление: Команда закрыть форму ТипКомпонента: Форма Обработчик: ЗакрытьФорму
- НастройкиТипа
- Контракты, которые реализует команда с
компонентом. Поддерживаются только контракты типа без свойств.
- Контракты
- Массив<Тип>. Имена контрактов типа, которые реализует данная команда.
- Изображение
- Ссылка на ресурс картинки, которая будет показана в команде. Пример
YAML-файла:
ВидЭлемента: КомандаСКомпонентом Ид: 141df770-6a96-4650-8042-c8beb8801c5d Имя: КомандаЗакрытьФорму ОбластьВидимости: ВПодсистеме Представление: Команда закрыть форму ТипКомпонента: Форма Обработчик: ЗакрытьФорму Изображение: icon.svg
- Доступность
- Булево. Управляет доступностью команды. Если Ложь, команда не доступна для выполнения.
- Важность
-
ВажностьКоманды. Определяет важность команды. Важность может использоваться при отображении команды, например, команда с важностью Низкая будет отображаться в выпадающем меню «Ещё». Возможные значения:
- Высокая
- Обычная
- Низкая
- Видимость
- Булево. Управляет видимостью команды. Если Ложь, команда скрыта в интерфейсе.
- Доступность
- Булево. Управляет доступностью команды. Если Ложь, команда не доступна для выполнения.
- Коннотация
- Коннотация. Управляет коннотацией команды. Коннотация
отображается только тогда, когда компонент, используемый для отображения
команды, умеет показывать коннотацию. Например, компонент Кнопка. Возможные значения:
- Положительная
- Предупреждающая
- Отрицательная
- Отсутствует
Пример создания команды с компонентом
Описать команду закрытия формы можно следующим образом:
- Создайте элемент проекта КомандаСКомпонентом.
- В свойстве ТипКомпонента укажите тип компонента, для которого описывается команда
- В свойстве Обработчик укажите название метода, который будет выполнять необходимое действие с компонентом.
ВидЭлемента: КомандаСКомпонентом Ид: 141df770-6a96-4650-8042-c8beb8801c5d Имя: КомандаЗакрытьФорму ОбластьВидимости: ВПодсистеме Представление: Команда закрыть форму ТипКомпонента: Форма Обработчик: ЗакрытьФорму
- В модуле элемента проекта задайте метод, который вы назначили в качестве обработчика
команды:
@ВПроекте метод ЗакрытьФорму() знч Форма = этот.Компонент Форма.Закрыть() ;
- Далее добавьте проект компонент интерфейса
Форма и в свойстве ГлавнаяКоманда укажите имя команды с
компонентом:
Команду с компонентом можно также добавить из встроенного языка. Например, вы можете добавить в модуль формы следующий метод:ВидЭлемента: КомпонентИнтерфейса Ид: 468f8f1d-89f9-4cbe-87a0-56bc4f6bc350 Имя: ФормаСКомандой ОбластьВидимости: ВПодсистеме Наследует: Тип: Форма ГлавнаяКоманда: Тип: КомандаЗакрытьФорму Компонент: =этот
Для того чтобы команда с компонентом создалась, данный метод следует вызвать. Это можно сделать, например, из обработчика формы ПослеСоздания:@ВПроекте метод ДобавитьКоманду() знч КомандаЗакрытьФорму = новый КомандаЗакрытьФорму(Компонент = этот) этот.ГлавнаяКоманда = КомандаЗакрытьФорму ;
ВидЭлемента: КомпонентИнтерфейса Ид: 468f8f1d-89f9-4cbe-87a0-56bc4f6bc350 Имя: ФормаСКомандой ОбластьВидимости: ВПодсистеме Наследует: Тип: Форма ПослеСоздания: ДобавитьКоманду