Системные компоненты и компоненты интерфейса

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

Системные компоненты — это типы встроенного языка, существующие в изначально, и не зависящие от конкретного проекта. Полный список этих типов вы можете посмотреть здесь.

Компоненты интерфейса — это типы, описанные в проекте. Вы можете добавить в проект элемент вида КомпонентИнтерфейса, унаследованный от одного из системных компонентов. Например, от компонента Значок:

ВидЭлемента: КомпонентИнтерфейса
Ид: 7667ad86-d5f1-4ecf-9409-e3a2d8bc64a9
Имя: МойЗначок
Наследует:
    Тип: Значок
    Значение:
        Тип: Число
        Значение: 122
    Содержимое:
        Тип: Картинка
        Изображение:
            Тип: ДвоичныйОбъект.Ссылка
            Значение: icon-update.png
    Точка: Ложь
    МаксимальноеЗначение: 99

Компонент интерфейса получает все свойства, методы и события базового компонента (системного компонента, от которого он унаследован). Вы можете добавить ему собственные свойства и события, можете переопределить базовые свойства и события. Тем самым вы создаете собственный компонент, который в дальнейшем будете использовать для описания интерфейса приложения.

Совет: Свойства компонента интерфейса могут реализовывать контракт типа.

Описание компонента и использование компонента (описание экземпляра компонента)

Когда вы добавляете в проект компонент интерфейса вы только описываете тип, который будете использовать. Сам компонент при этом не появляется в интерфейсе. Чтобы он появился в каком-либо месте интерфейса вы должны описать экземпляр этого компонента в составе другого компонента.

Примечание: Исключение из этого правила составляют компоненты, унаследованные от абстрактного компонента КлиентскоеПриложение: СтандартноеКлиентскоеПриложениеСРазделами и ПроизвольноеКлиентскоеПриложение. Именно эти компоненты автоматически показывает при запуске приложения (подробнее).
Примечание: Еще одним исключением из этого правила являются формы. Во-первых, они имеют свойство ВключатьВАвтоИнтерфейс, с помощью которого команда открытия этой формы включается в автоматический интерфейс, а во-вторых форму можно открыть стандартной или навигационной командой (подробнее).
Экземпляры компонентов описываются, например:
  • В свойстве Содержимое у компонентов ОбычнаяГруппа, МатричнаяГруппа, Форма, ФормаОбъекта, ФормаСписка и др.:
  • В свойстве Меню у компонентов ИконкаДействия, Кнопка, КомпонентВыбора
  • В свойстве Картинка у компонента Кнопка, КомпонентВыбора
  • и т .д.

Например, в следующем примере в компоненте с именем МойЗначок описан экземпляр системного компонента Картинка:

ВидЭлемента: КомпонентИнтерфейса
Ид: 7667ad86-d5f1-4ecf-9409-e3a2d8bc64a9
Имя: МойЗначок
Наследует:
    Тип: Значок
    Значение:
        Тип: Число
        Значение: 122
    Содержимое:
        Тип: Картинка
        Изображение:
            Тип: ДвоичныйОбъект.Ссылка
            Значение: icon-update.png
    Точка: Ложь
    МаксимальноеЗначение: 99

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

ВидЭлемента: КомпонентИнтерфейса
Ид: 9c8c9b66-0f94-4a21-99ab-bdf89ffb5f0f
Имя: МояОбычнаяГруппа
Наследует:
    Тип: ОбычнаяГруппа
    Содержимое:
        -
            Тип: МойЗначок
            Имя: КоличествоСообщений
        -
            Тип: Надпись
            Заголовок: Сообщения

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

ВидЭлемента: КомпонентИнтерфейса
Ид: 9f51db7f-c98d-499c-9607-545d5e0a58c2
Имя: МояФормаОбъекта
Наследует:
    Тип: ФормаОбъекта
    ВключатьВАвтоИнтерфейс: Ложь
    Содержимое:
        Тип: ОбычнаяГруппа
        Содержимое:
            -
                Тип: Флажок
                Имя: ЗагружатьВсе
                Заголовок: Загружать все данные
                Значение:
                    Тип: Булево
                    Значение: Истина
            -
                Тип: Флажок
                Имя: ПерезаписыватьСтарые
                Заголовок: Перезаписывать старые элементы
При описании экземпляра компонента вы можете:
  • переопределить стандартные значения собственных свойств компонента (созданных вами) и базовых свойств;
  • переопределить обработчики базовых событий (при добавлении в проект компонента интерфейса вы могли назначить обработчики его базовых событий, здесь вы можете их переопределить);
  • назначить обработчики собственных событий компонента (при добавлении в проект компонента интерфейса вы могли создать ему события, здесь вы можете назначить обработчики этих событий).

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