События - это механизм, позволяющий в определенные моменты времени выполнять те или иные действия (эти действия будем называть обработками событий).

Типы событий

События бывают двух типов:

В свою очередь, с точки зрения области видимости изменений, события можно разделить на:

Таким образом, события могут быть синхронными локальными, синхронными глобальными, асинхронными локальными и асинхронными глобальными. Отметим, что по умолчанию глобальные события - синхронные, а локальные - асинхронные (как самые часто используемые комбинации). Также, по умолчанию, все события глобальные.

Преимущества синхронных событий:

Преимущества асинхронных событий:

Преимущества локальных событий:

Преимущества глобальных событий:

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

Событийный режим операторов изменений

При выполнении обработки событий можно использовать специальный режим работы оператора предыдущего значения свойства (будем называть его событийным). В этом режиме оператор предыдущего значения будет возвращать значения свойства не на момент начала сессии, а на момент предыдущего возникновения этого события (а точнее, окончания выполнения всех его обработок). Аналогичный режим поддерживается для всех операторов изменений.

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

По умолчанию, при использовании в обработке событий используются следующие режимы:

Для операторов изменений и оператора предыдущего значения при выполнении глобальных синхронных событий эти режимы (стандартный и событийный) совпадают

Язык

Для создания действий, обрабатывающих события, используется инструкция ON.

Примеры