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

Ключевое слово ОБЪЕКТ


1. Проверка типа объекта, реализующего интерфейс.

Для проверки типа объекта, реализующего интерфейс, ключевое слово ОБЪЕКТ используется в выражениях.

Синтаксис:

ОБЪЕКТ(<выражение>, &<имя объектного типа>)
<выражение>
Определяет исходный интерфейс, через который выполняется запрос.
<имя объектного типа>
Задает проверяемый объектный тип.

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

Возвращает значение логического типа:

Возврат значения ДА дает гарантию, что запрос объекта указанного типа будет выполнен без ошибки (см. п.2).

Пример:

ФУНКЦИЯ ОчиститьТаблицу(ПЕРЕМ ТАБЛИЦА: таблица)
  таблица.кол_строк = 0
  СБРОС(таблица.элементы)
КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ОчиститьЭлемент(И_ЭЛЕМЕНТ: эл)
  ЕСЛИ ОБЪЕКТ(эл, &ТАБЛИЦА) ТО // только для объектов типа ТАБЛИЦА и производных от ТАБЛИЦА
    ОчиститьТаблицу(ОБЪЕКТ(эл, ТАБЛИЦА))
  КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ

2. Запрос объекта, реализующего интерфейс.

Для запроса объекта, реализующего интерфейс, ключевое слово ОБЪЕКТ используется в выражениях.

Синтаксис:

ОБЪЕКТ(<выражение>, <имя объектного типа>)
<выражение>
Определяет исходный интерфейс, через который выполняется запрос.
<имя объектного типа>
Задает тип запрашиваемого объектного значения.

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

Возвращает ссылку на объектное значение, которая может быть использована для изменения объекта. Например, ссылка может быть передана как параметр-переменная при вызове функции или метода. С помощью именованной ссылки можно сопоставить локальное имя возвращенному объектному значению.

Ошибка времени выполнения возникает в следующих ситуациях:

Пример:

ФУНКЦИЯ ОчиститьТаблицу(ПЕРЕМ ТАБЛИЦА: таблица)
  таблица.кол_строк = 0
  СБРОС(таблица.элементы)
КОНЕЦ_ФУНКЦИИ

ФУНКЦИЯ ОчиститьЭлемент(И_ЭЛЕМЕНТ: эл)
  ВЫБОР (эл.ИДЕНТ)
  #"поле_ввода": ОБЪЕКТ(эл, РЕДАКТОР).текст = ""
  #"табл"      : ОчиститьТаблицу(ОБЪЕКТ(эл, ТАБЛИЦА))
  КОНЕЦ_ВЫБОРА
КОНЕЦ_ФУНКЦИИ

Пример (именованная ссылка):

ФУНКЦИЯ ОчиститьЭлемент(И_ЭЛЕМЕНТ: эл)
  ЕСЛИ ОБЪЕКТ(эл, &ТАБЛИЦА) ТО // только для объектов типа ТАБЛИЦА и производных от ТАБЛИЦА
    ПЕРЕМ& табл = ОБЪЕКТ(эл, ТАБЛИЦА) // получаем ссылку
    табл.кол_строк = 0
    СБРОС(табл.элементы)
  КОНЕЦ_ЕСЛИ
КОНЕЦ_ФУНКЦИИ

См. также: