Руководство разработчика

Ключевое слово ИНТЕРФЕЙС

1. Объявление интерфейсов

Для объявления интерфейсов ключевое слово ИНТЕРФЕЙС используется вне объявления типа и тела функции или метода.

Интерфейс - это абстрактный тип, расширяющий возможности использования объектных типов. Подробнее о совместном использовании интерфейсов и объектов см. здесь.

Синтаксис:

ИНТЕРФЕЙС <имя типа> [(<список базовых интерфейсов>)]
[
  <объявления методов интерфейса>
]

Пример:

ИНТЕРФЕЙС И_Заголовок
[
  ФУНКЦИЯ СТРОКА: Заголовок;
  ФУНКЦИЯ ЛОГИКА: Переименовать(СТРОКА: текст);
]

ИНТЕРФЕЙС И_ЭлементТаблицы
[
  ФУНКЦИЯ СТРОКА: Текст;
  ФУНКЦИЯ ЦВЕТ: ЦветТекста;
  ФУНКЦИЯ ЦВЕТ: ЦветФона;
]

ИНТЕРФЕЙС И_ЗаголовокСтолбца(И_Заголовок, И_ЭлементТаблицы)
[
  ФУНКЦИЯ ЧИСЛО: Ширина;
  ФУНКЦИЯ ИзменитьШирину(ЧИСЛО: ширина);
]

2. Запрос интерфейса

Для запроса интерфейса ключевое слово ИНТЕРФЕЙС используется в выражениях.

Синтаксис:

ИНТЕРФЕЙС(<выражение>, <имя интерфейса>)
<выражение>
Определяет исходный интерфейс, через который выполняется запрос.
<имя интерфейса>
Задает тип целевого интерфейса. Значение этого типа является результатом запроса.

Возвращаемое значение:

Всегда возвращает значение, запрашиваемого типа интерфейса. Значение целевого интерфейса может быть нулевым, если:

Использование ключевого слова ИНТЕРФЕЙС для тривиального преобразования от производного интерфейса к базовому считается ошибкой.

Пример:

ПЕРЕМ КНОПКА: кнопка     // реализует И_ЭЛЕМЕНТ
ПЕРЕМ РЕДАКТОР: редактор // реализует И_ЭЛЕМЕНТ, И_ПОЛЕ_ВВОДА

ПЕРЕМ И_ЭЛЕМЕНТ: эл1 = кнопка
ПЕРЕМ И_ЭЛЕМЕНТ: эл2 = редактор

ПЕРЕМ И_ПОЛЕ_ВВОДА: поле1 = ИНТЕРФЕЙС(эл1, И_ПОЛЕ_ВВОДА) // НОЛЬ
ПЕРЕМ И_ПОЛЕ_ВВОДА: поле2 = ИНТЕРФЕЙС(эл2, И_ПОЛЕ_ВВОДА) // ссылка на "редактор"

См. также: