Базовые компоненты интерфейса
Компонент интерфейса получает все свойства, методы и события базового компонента (системного компонента, от которог о он унаследован). Вы можете добавить ему собственные свойства и события или переопределить базовые. Тем самым вы создаете собственный компонент, который в дальнейшем будете использовать для описания интерфейса приложения.
Свойства компонента интерфейса могут реализовывать контракт типа.
Описание компонента и использование компонента (описание экземпляра компонента)
Добавляя в проект компонент интерфейса, вы только описываете тип, который будете использовать. Сам компонент при этом не появляется в интерфейсе. Чтобы он появился в каком-либо месте интерфейса, необходимо описать экземпляр этого компонента в составе другого компонента.
Исключение из этого правила составляют компоненты, унаследованные от абстрактного компонента КлиентскоеПриложение: СтандартноеКлиентскоеПриложениеСРазделами и ПроизвольноеКлиентскоеПриложение. Именно эти компоненты автоматически показывает «1С:Шина» при запуске приложения (подробнее).
Еще одним исключением из этого правила являются формы. Во-первых, они имеют свойство ВключатьВАвтоИнтерфейс, с помощью которого команда открытия этой формы включается в автоматический интерфейс, а во-вторых, форму можно открыть стандартной или навигационной командой (подробнее).
Экземпляры компонентов описываются, например:
- в свойстве Содержимое у компонентов ФиксированнаяГруппа, Матричная Группа, Форма, ФормаОбъекта, ФормаСписка и других;
- в свойстве Меню у компонентов Кнопка и КомпонентВыбора;
- в свойстве Картинка у компонентов Кнопка и КомпонентВыбора и т. д.
Например, в следующем примере в компоненте с именем МояКнопка описан экземпляр системного компонента Картинка:
ВидЭлемента: КомпонентИнтерфейса
Ид: 3bb6a20e-f859-4ba8-b1de-aa6232473933
Имя: МояКнопка
ОбластьВидимости: ВПодсистеме
Наследует:
Тип: Кнопка
Заголовок: Добавить файлы
Подсказка: Нажмите, чтобы добавить файлы
Картинка:
Имя: КартинкаНаКнопке
Изображение: Вложение.svg
В свою очередь экземпляр этого компонента интерфейса МояКнопка может быть описан в составе другого компонента, например в составе группы МояГруппа:
ВидЭлемента: КомпонентИнтерфейса
Ид: 68f5f2c1-44dd-4b11-8112-2a9f7393ebb5
Имя: МояГруппа
ОбластьВидимости: ВПодсистеме
Наследует:
Тип: ФиксированнаяГруппа
Содержимое:
-
Тип: МояКнопка
Имя: ИмяКнопки
-
Тип: МояКартинка
Имя: ИмяКартинки
Описание одного экземпляра компонента может включать в себя описание экземпляров других компонентов. Например, в следующем примере в содержимом формы описан экземпляр системного компонента ФиксированнаяГруппа, в составе которого описаны два экземпляра системного компонента Флажок с именами ЗагружатьВсе и ПерезаписыватьСтарые:
ВидЭлемента: КомпонентИнтерфейса
Ид: 9f51db7f-c98d-499c-9607-545d5e0a58c2
Имя: МояФормаОбъекта
Наследует:
Тип: ФормаОбъекта<МойСправочник.Объект>
ВключатьВАвтоИнтерфейс: Ложь
Содержимое:
Тип: ПроизвольныйШаблонФормы
Содержимое:
Тип: ФиксированнаяГруппа
Содержимое:
-
Тип: Флажок
Имя: ЗагружатьВсе
Заголовок: Загружать все данные
Значение:
Тип: Булево
Значение: Истина
-
Тип: Флажок
Имя: ПерезаписыватьСтарые
Заголовок: Перезаписывать старые элементы
При описании экземпляра компонента вы можете:
- переопределить стандартные значения собственных свойств компонента (созданных вами) и базовых свойств;
- переопределить обработчики базовых событий (при добавлении в проект компонента интерфейса вы могли назначить обработчики его базовых событий, здесь вы можете их переопределить);
- назначить обработчики собственных событий компонента (при добавлении в проект компонента интерфейса вы могли создать для него события, здесь вы можете назначить обработчики этих событий).
Пример описания компонента вы можете посмотреть здесь.