Типы встроенного языка и свойства элемента проекта вида «ПереключаемаяКоманда»
Переключаемая команда выполняет алгоритм на встроенном языке и имеет два состояния: активное и неактивное. В каждом из этих состояний она отображается в виде картинки и заголовка, которые показывают состояние команды.
После того как вы добавите в проект переключаемую команду и дадите ей имя, «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 Вставить содержимое обработчика
;
Добавьте в него следующий код:
метод СкрытьДопПоляВводаОбработчик(Команда: ПереключаемаяКоманда)
ВидимостьПоляВвода = не ВидимостьПоляВвода
;
Опубликуйте проект и откройте приложение. Перейдите в раздел Отчеты на вкладку Отчет о продажах. В правом верхнем углу вы увидите созданную команду: