Перейти к основному содержимому

Типы встроенного языка и свойства элемента проекта вида «КомандаСКомпонентом»

Элемент проекта КомандаСКомпонентом позволяет описать команду, привязанную к конкретному компоненту.

Пример команды с компонентом

Тип <Имя-команды-с-компонентом>

После того как вы добавите в проект команду с компонентом и зададите ей имя, «1С:Исполнитель» создаст один тип встроенного языка. Имя этого типа будет совпадать с именем вашей команды с компонентом.

Например, для команды с компонентом КомандаЗакрытьФорму будет создан тип КомандаЗакрытьФорму. В общем случае имя этого типа выглядит следующим образом: <Имя-команды-с-компонентом>.

Тип <Имя-команды-с-компонентом> доступен на клиенте. Данный тип, в отличие от других команд, не является типом-одиночкой, а имеет конструктор:

// Создать новый экземпляр команды с компонентом
знч МояФорма = новый Форма()
знч КомандаЗакрытьФорму = новый КомандаЗакрытьФорму(Компонент = МояФорма)

Модуль команды с компонентом

В проекте модуль, расширяющий тип <Имя-команды-с-компонентом>, называется модулем команды с компонентом. Он исполняется на клиенте.

В этом модуле вы можете разместить обработчик команды.

Для команды с компонентом, созданной для компонента интерфейса, также можно задать обработчик. Для этого в панели свойств команды перейдите к свойству Обработчик:

Чтобы использовать уже существующий обработчик, выберите его из выпадающего списка. Чтобы открыть выбранный обработчик в модуле, нажмите на значок лупы.

Чтобы создать новый обработчик, введите для него имя и нажмите на значок лупы — обработчик будет автоматически создан и добавлен в модуль компонента.

Если не вводить имя для обработчика, то оно также будет сгенерировано автоматически, на основе следующей схемы:

  • Если представление команды не указано:

    • КомандаСКомпонентомОбработчик.
  • Если представление команды указано:

    • Представление + «Обработчик».
совет

В модуле команды с компонентом может находиться реализация контрактов типа без свойств.

Иерархия наследования

Свойства элемента проекта

В проекте элемент КомандаСКомпонентом имеет следующие свойства:

Компонент

ТипКомпонента. Тип компонента, над которым будет выполнена команда.

Представление

Строка. Строка, которая будет показана как заголовок команды. Если не задано явно — генерируется автоматически по имени элемента проекта. Пример YAML-файла:

ВидЭлемента: КомандаСКомпонентом
Ид: 141df770-6a96-4650-8042-c8beb8801c5d
Имя: КомандаЗакрытьФорму
ОбластьВидимости: ВПодсистеме
Представление: Команда закрыть форму
ТипКомпонента: Форма

НастройкиТипа

Контракты, которые реализует команда с компонентом. Поддерживаются только контракты типа без свойств.

  • Контракты Массив<Тип>. Имена контрактов типа, которые реализует данная команда.

Изображение

ДвоичныйОбъект.Ссылка?. Ссылка на ресурс картинки, которая будет показана в команде. Пример YAML-файла:

ВидЭлемента: КомандаСКомпонентом
Ид: 141df770-6a96-4650-8042-c8beb8801c5d
Имя: КомандаЗакрытьФорму
ОбластьВидимости: ВПодсистеме
Представление: Команда закрыть форму
ТипКомпонента: Форма
Изображение: icon.svg

Доступность

Булево. Управляет доступностью команды. Если Ложь, команда не доступна для выполнения.

Важность

ВажностьКоманды. Определяет приоритет при отображении нескольких команд. Например, команда с важностью Низкая будет отображаться в выпадающем меню «Еще». Возможные значения:

  • Высокая
  • Обычная
  • Низкая

Видимость

Булево. Управляет видимостью команды. Если Ложь, команда скрыта в интерфейсе.

Доступность

Булево. Управляет доступностью команды. Если Ложь, команда недоступна для выполнения.

ОпасностьДействия

ОпасностьДействия. Определяет опасность действия, совершаемого пользователем, например, может ли нажатие на кнопку привести к удалению данных. Возможные значения:

  • Высокая
  • Средняя
  • Отсутствует

Имя

Имя элемента проекта или компонента. Пример YAML-файла:

ВидЭлемента: Справочник
ОбластьВидимости: ВПодсистеме
Имя: МойСправочник
Ид:64cdbccd-a768-4877-9fdd-4f7ea44c2600

Импорт

Список импортированных пространств имен (подробнее). Пример YAML-файла:

ВидЭлемента: Справочник
ОбластьВидимости: ВПодсистеме
Имя: МойСправочник
Ид: 64cdbccd-a768-4877-9fdd-4f7ea44c2600
Импорт:
- Главная
- Настройки::НовыйПакет

Ид

Идентификатор элемента проекта или компонента. «1С:Исполнитель» создает этот идентификатор автоматически. Пример YAML-файла:

ВидЭлемента: Справочник
ОбластьВидимости: ВПодсистеме
Имя: МойСправочник
Ид: 64cdbccd-a768-4877-9fdd-4f7ea44c2600

ОбластьВидимости

Видимость элемента проекта (подробнее):

  • ВПодсистеме — элемент виден внутри одной подсистемы во всех пакетах. Значение по умолчанию.
  • ВПроекте — элемент виден во всех подсистемах одного проекта.
  • Глобально — элемент виден во всех подсистемах всех проектов.

Пример YAML-файла:

ВидЭлемента: Справочник
ОбластьВидимости: ВПодсистеме
Имя: МойСправочник
Ид: 64cdbccd-a768-4877-9fdd-4f7ea44c2600

ВидЭлемента

Вид элементов проекта (подробнее)либо компонент интерфейса (подробнее). Пример YAML-файла элемента проекта:

ВидЭлемента: Справочник
ОбластьВидимости: ВПодсистеме
Имя: МойСправочник
Ид: 64cdbccd-a768-4877-9fdd-4f7ea44c2600

Пример YAML-файла компонента:

ВидЭлемента: КомпонентИнтерфейса
ОбластьВидимости: ВПодсистеме
Ид: d3f2fad1-4ce1-444b-8aaa-b37425f4f6bb
Имя: МояГруппа
Наследует:
Тип: ФиксированнаяГруппа

Пример создания команды с компонентом

Описать команду закрытия формы можно следующим образом:

  1. Создайте элемент проекта КомандаСКомпонентом.

В свойстве ТипКомпонента укажите тип компонента, для которого описывается команда.

ВидЭлемента: КомандаСКомпонентом
Ид: 141df770-6a96-4650-8042-c8beb8801c5d
Имя: КомандаЗакрытьФорму
ОбластьВидимости: ВПодсистеме
Представление: Команда закрыть форму
ТипКомпонента: Форма
  1. В модуле элемента проекта объявите обработчик команды:
@Обработчик
метод Обработчик()
знч Форма = этот.Компонент
Форма.Закрыть()
;
  1. Далее добавьте в проект компонент интерфейса Форма и в свойстве ОсновнаяКоманда укажите имя команды с компонентом:
ВидЭлемента: КомпонентИнтерфейса
Ид: 468f8f1d-89f9-4cbe-87a0-56bc4f6bc350
Имя: ФормаСКомандой
ОбластьВидимости: ВПодсистеме
Наследует:
Тип: Форма
ОсновнаяКоманда:
Тип: КомандаЗакрытьФорму
Компонент: =этот

Команду с компонентом можно также добавить из встроенного языка. Например, вы можете добавить в модуль формы следующий метод:

@ВПроекте
метод ДобавитьКоманду()
знч КомандаЗакрытьФорму = новый КомандаЗакрытьФорму(Компонент = этот)
этот.ОсновнаяКоманда = КомандаЗакрытьФорму
;

Для того чтобы команда с компонентом создалась, данный метод следует вызвать. Это можно сделать, например, из обработчика формы ПослеСоздания:

@Обработчик
метод ПослеСоздания()
ДобавитьКоманду()
;