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

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

Переключаемая команда выполняет алгоритм на встроенном языке и имеет два состояния: активное и неактивное. В каждом из этих состояний она отображается в виде картинки и заголовка, которые показывают состояние команды.

Общий пример команды

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

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

Тип <ИмяПереключаемойКоманды>

Тип <ИмяПереключаемойКоманды> доступен на клиенте. Может быть задан с помощью конструктора:

ПереключаемаяКоманда(
Обработчик: (ПереключаемаяКоманда)->ничто,
ПредставлениеАктивного: Строка,
ИзображениеАктивного: ДвоичныйОбъект.Ссылка? = Неопределено,
ПредставлениеНеактивного: Строка,
ИзображениеНеактивного: ДвоичныйОбъект.Ссылка? = Неопределено,
Активна: Булево,
Важность: ВажностьКоманды = ВажностьКоманды.Обычная,
Доступность: Булево = Истина,
Видимость: Булево = Истина,
ОпасностьДействия: ОпасностьДействия = ОпасностьДействия.Отсутствует
)

Модуль переключаемой команды

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

Модуль переключаемой команды

В этом модуле вы можете обработать событие нажатия на команду с помощью переопределяемого обработчика:

@Обработчик
метод Обработчик()
// необходимые действия
;

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

Обработчик

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

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

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

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

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

    • Представление + «Обработчик».
  • Если ПредставлениеАктивного команды указано:

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

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

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

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

Активна

Булево. Управляет отображением команды. Для активной команды применяются свойства ИзображениеАктивного и ПредставлениеАктивного. Для неактивной команды применяются свойства ИзображениеНеактивного и ПредставлениеНеактивного.

Важность

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

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

Видимость

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

ВидЭлемента

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

Доступность

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

Ид

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

ИзображениеАктивного

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

ВидЭлемента: ПереключаемаяКоманда
ОбластьВидимости: ВПодсистеме
Ид: cb1c56ba-0f64-40da-a1b1-d89689c8b23a
Имя: МояПереключаемаяКоманда
ПредставлениеАктивного: Избранное
ПредставлениеНеактивного: В избранное
ИзображениеАктивного: Action-on.svg
ИзображениеНеактивного: Action-off.svg

ИзображениеНеактивного

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

ВидЭлемента: ПереключаемаяКоманда
ОбластьВидимости: ВПодсистеме
Ид: cb1c56ba-0f64-40da-a1b1-d89689c8b23a
Имя: МояПереключаемаяКоманда
ПредставлениеАктивного: Избранное
ПредставлениеНеактивного: В избранное
ИзображениеАктивного: Action-on.svg
ИзображениеНеактивного: Action-off.svg

Импорт

Список импортированных пространств имен (подробнее).

Имя

Имя элемента проекта.

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

Контракты, которые реализует переключаемая команда.

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

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

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

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

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

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

ПредставлениеАктивного

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

ВидЭлемента: ПереключаемаяКоманда
ОбластьВидимости: ВПодсистеме
Ид: cb1c56ba-0f64-40da-a1b1-d89689c8b23a
Имя: МояПереключаемаяКоманда
ПредставлениеАктивного: Избранное
ПредставлениеНеактивного: В избранное
ИзображениеАктивного: Action-on.svg
ИзображениеНеактивного: Action-off.svg

ПредставлениеНеактивного

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

ВидЭлемента: ПереключаемаяКоманда
ОбластьВидимости: ВПодсистеме
Ид: cb1c56ba-0f64-40da-a1b1-d89689c8b23a
Имя: МояПереключаемаяКоманда
ПредставлениеАктивного: Избранное
ПредставлениеНеактивного: В избранное
ИзображениеАктивного: Action-on.svg
ИзображениеНеактивного: Action-off.svg

Примеры

Изменение представления колонок таблицы

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

Для компонента СделкиФормаСписка добавьте новое свойство ЗащищенныйПросмотр типа Булево с помощью панели Данные:

Добавление нового свойства в панели «Данные»

Добавьте переключаемую команду. Для этого выполните следующие действия:

  • Откройте редактор компонента СделкиФормаСписка:

Редактор компонента

  • В редакторе компонента добавьте в ДополнительныеКоманды новый элемент ФрагментКомандногоИнтерфейса, а в него добавьте ПереключаемуюКоманду (воспользуйтесь кнопкой Новый или панелью Команды):

Добавление новой команды

  • В панели Свойства установите ПредставлениеАктивногоОбычный просмотр и ПредставлениеНеактивногоЗащищенный просмотр. Также можете установить изображения в соответствующих свойствах:

Свойства переключаемой команды

примечание

В данном примере для свойств ИзображениеАктивного и ИзображениеНеактивного используются изображения, имеющиеся в демонстрационном приложении. Вы также можете использовать собственные изображения. Для этого загрузите их в ресурсы.

  • В панели Свойства задайте обработчик для переключаемой команды. Для этого нажмите на значок лупы в соответствующем свойстве:

Создание обработчика

В модуле СделкиФормаСписка автоматически создастся обработчик:

метод ОбычныйПросмотрОбработчик(Команда: ПереключаемаяКоманда)
// TODO Вставить содержимое обработчика
;

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

метод ОбычныйПросмотрОбработчик(Команда: ПереключаемаяКоманда)
ЗащищенныйПросмотр = не ЗащищенныйПросмотр
Компоненты.ТаблицаСписка.Обновить()
;
  • В модуле СделкиФормаСписка добавьте метод для изменения представления колонок:
метод ЗащищенноеПредставление(): Авто|Строка
возврат ЗащищенныйПросмотр ? "*****" : Авто
;
  • В редакторе компонента выберите колонку СтандартнаяКолонкаТаблицы, для которой будет скрываться представление, и установите ПредставлениеЗащищенноеПредставление(). В данном примере свойство Представление будет установлено для колонок Сумма и Валюта:

Свойство Представление

Опубликуйте проект и откройте приложение. Перейдите в раздел Пресейл на вкладку Сделки. В правом верхнем углу формы вы увидите созданную команду:

Команда в интерфейсе приложения

Переключите команду. После переключения команды колонки Сумма и Валюта изменят свое представление:

После нажатия

При повторном переключении команды колонки изменят свое представление обратно:

До нажатия

Вы можете реализовать этот пример с помощью встроенного языка. Для этого добавьте свойство ЗащищенныйПросмотр и установите представление для колонки СтандартнаяКолонкаТаблицы, как в примере выше, а в модуле СделкиФормаСписка добавьте следующий код:

метод ПолучитьДополнительныеКоманды(): ФрагментКомандногоИнтерфейса<Команда|ПереключаемаяКоманда>
пер Результат = новый ФрагментКомандногоИнтерфейса<Команда|ПереключаемаяКоманда>()

Результат.Элементы.Добавить(
новый Стд::Интерфейс::Команды::ПереключаемаяКоманда(
Обработчик = &ОбычныйПросмотрОбработчик,
Активна = ЗащищенныйПросмотр,
ПредставлениеАктивного = "Обычный просмотр",
ИзображениеАктивного = Ресурс{Ключ.svg}.Ссылка,
ПредставлениеНеактивного = "Защищенный просмотр",
ИзображениеНеактивного = Ресурс{Замок.svg}.Ссылка))

возврат Результат
;

метод ОбычныйПросмотрОбработчик(Команда: ПереключаемаяКоманда)
ЗащищенныйПросмотр = не ЗащищенныйПросмотр
Компоненты.ТаблицаСписка.Обновить()
;

метод ЗащищенноеПредставление(): Авто|Строка
возврат ЗащищенныйПросмотр ? "*****" : Авто
;

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

  • Откройте редактор компонента СделкиФормаСписка и добавьте в ДополнительныеКоманды новый элемент – ФрагментКомандногоИнтерфейса (воспользуйтесь кнопкой Новый или панелью Команды):

Редактор компонента с элементом «ФрагментКомандног�оИнтерфейса»

  • В Элементы добавьте ВычисляемоеВыражение:

Добавление вычисляемого выражения

  • В панели Свойства установите ВыражениеПолучитьДополнительныеКоманды():

Свойства выражения

Опубликуйте проект и откройте приложение. Перейдите в раздел Пресейл на вкладку Сделки. В правом верхнем углу формы вы увидите созданную команду:

Команда в интерфейсе приложения

Скрытие дополнительных полей ввода

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

Для компонента ОтчетОПродажахФорма добавьте новое свойство ВидимостьПоляВвода типа Булево со значением по умолчанию Истина с помощью панели Данные:

Добавление нового свойства в панели «Данные»

Для компонента ПолеВводаОтветственный в панели свойств установите ВидимостьВидимостьПоляВвода:

Свойство «Видимость»

Добавьте переключаемую команду. Для этого выполните следующие действия:

  • Откройте редактор компонента ОтчетОПродажахФорма:

Редактор компонента

  • В редакторе компонента добавьте в ДополнительныеКоманды новый элемент ФрагментКомандногоИнтерфейса, а в него добавьте ПереключаемуюКоманду (воспользуйтесь кнопкой Новый или панелью Команды):

Добавление новой команды

  • В панели Свойства для переключаемой команды установите АктивнаИстина, ПредставлениеАктивногоСкрыть доп. поля ввода и ПредставлениеНеактивногоПоказать доп. поля ввода:

Свойства переключаемой команды

  • В панели свойств задайте обработчик для переключаемой команды. Для этого нажмите на значок лупы в соответствующем свойстве:

Свойства переключаемой команды

В модуле ОтчетОПродажахФорма автоматически создастся обработчик:

метод СкрытьДопПоляВводаОбработчик(Команда: ПереключаемаяКоманда)
// TODO Вставить содержимое обработчика
;

Добавьте в него следующий код:

метод СкрытьДопПоляВводаОбработчик(Команда: ПереключаемаяКоманда)
ВидимостьПоляВвода = не ВидимостьПоляВвода
;

Опубликуйте проект и откройте приложение. Перейдите в раздел Отчеты на вкладку Отчет о продажах. В правом верхнем углу вы увидите созданную команду:

�Команда в интерфейсе приложения

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

После нажатия

При повторном переключении команды поле ввода снова будет отображаться:

До нажатия

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

метод ПолучитьДополнительныеКоманды(): ФрагментКомандногоИнтерфейса<Команда|ПереключаемаяКоманда>
пер Результат = новый ФрагментКомандногоИнтерфейса<Команда|ПереключаемаяКоманда>()

Результат.Элементы.Добавить(
новый Стд::Интерфейс::Команды::ПереключаемаяКоманда(
Обработчик = &СкрытьДопПоляВводаОбработчик,
Активна = ВидимостьПоляВвода,
ПредставлениеАктивного = "Скрыть доп. поля ввода",
ПредставлениеНеактивного = "Показать доп. поля ввода"))

возврат Результат
;

метод СкрытьДопПоляВводаОбработчик(Команда: ПереключаемаяКоманда)
ВидимостьПоляВвода = не ВидимостьПоляВвода
;

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

  • Откройте редактор компонента ОтчетОПродажахФорма и добавьте в ДополнительныеКоманды новый элемент – ФрагментКомандногоИнтерфейса (воспользуйтесь кнопкой Новый или панелью Команды):

Редактор компонента с ФрагментомКомандногоИнтерфейса

  • В Элементы добавьте ВычисляемоеВыражение:

Добавление вычисляемого выражения

  • В панели Свойства установите значение свойства ВыражениеПолучитьДополнительныеКоманды():

Свойства выражения

Опубликуйте проект и откройте приложение. Перейдите в раздел Отчеты на вкладку Отчет о продажах. В правом верхнем углу вы увидите созданную команду:

Редактор компонента с элементом «ФрагментКомандногоИнтерфейса»