Подписка обработчика на создание объекта Назад В начало Вперед

Подписка на создание объекта производится по следующиму синтаксису:

handler <имя_обработчика> on createinstance <имя_таблицы>
action { <Action_код_на_языке_VIP> }

<имя_обработчика> - любой допустимый идентификатор Атлантиса.

Должено быть уникальным во ВСЕЙ системе!

<имя_таблицы> - имя таблицы, на которую подписывается обработчик. Таблица должна быть описана в словаре.

<Action_код_на_языке_VIP> - любые операторы Атлантиса. Доступны глобальные и локальные переменные и глобальные костанты. Код должен возвращать ссылку на VIP или OBJ интерфейс, если код отработал успешно и NullRef если нет. Если обработчик вернул валидную ссылку, то она возвращается в качестве проинициализированного объекта. Если же код вернул NullRef, то вызывается следующий по приоритету обработчик.

Пример 3

handler with replace DocumentCreator on createInstance BaseDoc
action
{
  var key : comp;

  if ( GetKeyValue(key) = tsOk )
	{
	 case pGlobalDocumenter.GetVidDoc( key ) of
	 201 : result := new(vInvoice,  InitKey( key ));
	 else  result := new(vDocument, InitKey( key ));
	 end;
}
  else result := nullRef;
}