Этот документ был переведён с помощью ИИ. Для получения точной информации обратитесь к английской версии.
Поток событий
Введение
Если вы хотите инициировать какие-либо пользовательские действия при изменении формы, вы можете использовать для этого поток событий. Помимо форм, страницы, блоки, кнопки и поля также поддерживают настройку пользовательских действий с помощью потоков событий.
Как использовать
Ниже на простом примере показано, как настроить поток событий. Давайте реализуем связь между двумя таблицами: при нажатии на строку в левой таблице данные в правой таблице будут фильтроваться автоматически.

Шаги настройки следующие:
- Нажмите на иконку «молнии» в правом верхнем углу блока левой таблицы, чтобы открыть интерфейс настройки потока событий.

- Нажмите «Добавить поток событий (Add event flow)», в поле «Триггерное событие» выберите «Клик по строке (Row click)», что означает запуск при нажатии на строку таблицы.

- Настройте «Время выполнения (Execution timing)», которое определяет очередность этого потока событий относительно встроенных системных процессов. Обычно можно оставить значение по умолчанию; если вы хотите вывести уведомление или выполнить переход после завершения встроенной логики, выберите «После всех потоков (After all flows)». Подробнее см. ниже в разделе Время выполнения.

- «Условие триггера (Trigger condition)» используется для настройки условий, при которых будет запускаться поток событий. В данном случае настройка не требуется, поток будет срабатывать при каждом нажатии на строку.

- Наведите курсор на «Добавить шаг (Add step)», чтобы добавить действия. Выберите «Установить область данных (Set data scope)», чтобы настроить область данных для правой таблицы.

- Скопируйте UID правой таблицы и вставьте его в поле «UID целевого блока (Target block UID)». Сразу после этого отобразится интерфейс настройки условий, где можно задать область данных для правой таблицы.

- Настройте условие, как показано на рисунке ниже:

- После настройки области данных необходимо обновить блок, чтобы отобразить результаты фильтрации. Далее настроим обновление блока правой таблицы. Добавьте шаг «Обновить целевые блоки (Refresh target blocks)» и введите UID правой таблицы.

- Наконец, нажмите кнопку сохранения в правом нижнем углу, и настройка будет завершена.
Подробное описание событий
Перед рендерингом (Before render)
Общее событие, которое можно использовать на страницах, в блоках, кнопках или полях. В этом событии можно выполнить задачи инициализации. Например, настроить различные области данных при разных условиях.
Клик по строке (Row click)
Эксклюзивное событие для табличного блока. Запускается при нажатии на строку таблицы. При срабатывании в контекст добавляется переменная Clicked row record, которую можно использовать в условиях и шагах.
Изменение значений формы (Form values change)
Эксклюзивное событие для блока формы. Запускается при изменении значения поля формы. В условиях и шагах можно получить значения формы через переменную Current form.
Клик (Click)
Эксклюзивное событие для кнопок. Запускается при нажатии на кнопку.
Время выполнения
В настройках потока событий есть два понятия, которые легко перепутать:
- Триггерное событие: когда начинать выполнение (например: Перед рендерингом, Клик по строке, Клик, Изменение значений формы и т. д.).
- Время выполнения: в какое место встроенного процесса после возникновения триггерного события должен быть вставлен ваш пользовательский поток событий.
Что такое «встроенный процесс / встроенные шаги»?
Многие страницы, блоки или операции сами по себе имеют набор встроенных системных процессов обработки (например: отправка формы, открытие модального окна, запрос данных и т. д.). Когда вы добавляете пользовательский поток событий для того же события (например, «Клик»), «Время выполнения» определяет:
- Выполнить ли ваш поток событий до или после встроенной логики;
- Или вставить ваш поток событий до или после определенного шага встроенного процесса.
Как понимать варианты времени выполнения в интерфейсе?
- До всех потоков (по умолчанию): выполняется первым. Подходит для «перехвата/подготовки» (например, валидация, подтверждение действия, инициализация переменных и т. д.).
- После всех потоков: выполняется после завершения встроенной логики. Подходит для «завершения/обратной связи» (например, показ уведомления, обновление других блоков, переход на страницу и т. д.).
- До указанного потока / После указанного потока: более точная точка вставки. После выбора необходимо выбрать конкретный «Встроенный процесс».
- До шага указанного потока / После шага указанного потока: максимально точная точка вставки. После выбора необходимо одновременно выбрать «Встроенный процесс» и «Шаг встроенного процесса».
Подсказка: если вы не уверены, какой встроенный процесс или шаг выбрать, приоритетно используйте первые два варианта («До» или «После»).

