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

После того, как вы добавили в проект компонент интерфейса и дали ему имя, создаст один тип встроенного языка. Имя этого типа совпадает с именем вашего компонента.

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

Тип <ИмяКомпонента>

Тип <ИмяКомпонента> доступен на клиенте. Он содержит:

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

Этот тип вы можете использовать при описании экземпляров компонентов, наряду с системными компонентами:

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

 пер МояФиксированнаяГруппа = новый ФиксированнаяГруппа(Владелец = этот)
 пер ОбычнаяКнопка = новый Кнопка(Владелец = этот, Заголовок = "Обычная кнопка")
 пер НеобычнаяКнопка = новый МояКнопка(Владелец = этот, Заголовок = "Необычная кнопка")

 // Вариант 1
 МояФиксированнаяГруппа.Содержимое.Добавить(ОбычнаяКнопка)
 МояФиксированнаяГруппа.Содержимое.Добавить(НеобычнаяКнопка)

 // Вариант 2
 МояФиксированнаяГруппа.Содержимое = [ОбычнаяКнопка, НеобычнаяКнопка]

В конструкторе компонента интерфейса каждому свойству компонента (за небольшим исключением) соответствует параметр конструктора. Имя параметра совпадает с именем инициализируемого этим параметром свойства компонента.

Для компонентов интерфейса, добавленных в проект, в параметры конструктора включаются как собственные свойства, так и свойства, унаследованные от системного компонента.

Свойства системных компонентов, которые не включаются в конструктор:

  • Для всех компонентов
    • ЕстьНаведение
  • ПолеВвода
    • ТекстРедактирования
    • ДиапазонВыделения
  • ВыборФайлов

    • ВыбранныеФайлы
  • ПроизвольныйСписок, Таблица
    • ВыделеннаяСтрока
  • ПроизвольнаяСтрокаСписка, СтрокаСписка
    • ДанныеСтроки
  • ВсплывающийКомпонент
    • Открыт
  • ВсплывающееМеню
    • Открыт

Свойства компонента интерфейса (добавленного в проект), которые не включаются в конструктор:

  • СобственнаяМодифицированность
  • РассчитаннаяМодифицированность
  • Компоненты
  • Менеджер

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

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

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

Также, при необходимости, вы можете передать этот экземпляр компонента интерфейса в другой метод, используя ключевое слово этот:
МойМетод(этот)
Совет: В модуле компонента может находиться реализация методов контракта типа.

Тип <ИмяКомпонента>.Компоненты

Тип <ИмяКомпонента>.Компоненты — это служебный тип, который предоставляет доступ ко всем именованным экземплярам компонентов, описанным в данном компоненте.

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

ВидЭлемента: КомпонентИнтерфейса
ОбластьВидимости: ВПодсистеме
Ид: 653a4bf3-6988-47ed-9d81-a7d320cc867f
Имя: ФормаКомпоненты
Наследует:
    Тип: Форма
    Содержимое: 
        Тип: ФиксированнаяГруппа
        Имя: КорневаяГруппа
        Содержимое:
            -
                Тип: Кнопка
                Имя: КнопкаСИменем
                Заголовок: Кнопка с именем
            -
                Тип: Кнопка
                Заголовок: Кнопка без имени    

Для такой формы коллекция Компоненты будет содержать два элемента: КнопкаСИменем и КорневаяГрупппа: