# 06 Действия

Действия добавляют жизнь вашему приложению. Они сохраняют данные, списывают средства с карт, регистрируют пользователей, отправляют письма, связываются со сторонними сервисами, отображают элементы и т.д.

## Зарегистрировать пользователя (Sign the user up) <a href="#actions.signup" id="actions.signup"></a>

Данное действие создает нового пользователя в базы данных приложения. Для регистрации пользователя требуется email и пароль. После создания пользователя он может войти в систему, выйти из системы и для данного пользователя может сохраняться информация. Обратите особое внимание на то, что при регистрации пользователя он мгновенно входит в систему. К его информации можно получить доступ из Конструктора выражений с помощью параметра "Current user's email" и подобных.

### Email (Email) <a href="#actions.signup.email" id="actions.signup.email"></a>

Данный email используется для регистрации пользователя. Это уникальный идентификатор пользователя. Обычно, данному параметру присваивается значение поля ввода и он выглядит как "Input email's value".

Обратите внимание: Два пользователя не могут иметь один и тот же email

### Пароль (Password) <a href="#actions.signup.password" id="actions.signup.password"></a>

Это пароль, который используется для регистрации пользователя. Обычно, данному параметру присваивается значение поля ввода и он выглядит как "Input password's value".

### Запрашивать подтверждение пароля (Require a password confirmation) <a href="#actions.signup.require_confirm" id="actions.signup.require_confirm"></a>

Поставьте здесь галочку, чтобы при регистрации запросить у пользователя ввести пароль повторно, чтобы убедиться, что пароль введен верно. Если вы активируете данную опцию форма должна содержать два разных поля ввода пароля.

### Подтверждение пароля (Password Confirmation) <a href="#actions.signup.password2" id="actions.signup.password2"></a>

Данное поле определяет, где взять подтверждение пароля. В нем должно быть содержимое поля ввода, отличное от изначального поля ввода пароля.

### Послать письмо, чтобы подтвердить email (Send an email to confirm the email) <a href="#actions.signup.send_confirm_email" id="actions.signup.send_confirm_email"></a>

Поставьте галочку, чтобы послать пользователю письмо, чтобы подтвердить, что введенный email корректен и они имеют к нему доступ. Данное письмо содержит ссылку, при переходе по которой параметр пользователя "email confirmed" примет значение "yes". Настройте содержимое данного письма в разделе Languages вкладки Settings. Там настраиваются "Email confirmation subject"/"Тема письма с подтверждением" и "Email confirmation body"/"Тело письма с подтверждением".

### Страница подтверждения (Confirmation page) <a href="#actions.signup.page" id="actions.signup.page"></a>

Введите адрес страницы, на которую перейдет пользователь при клике на ссылку в письме с подтверждением.

### Запомнить email (Remember the email) <a href="#actions.signup.remember_email" id="actions.signup.remember_email"></a>

Установите в данное поле значение true, чтобы браузер запомнил email, введенный в форму регистрации. В таком случае, когда пользователь выйдет из системы в поле ввода email будет отображаться последний сохраненный email.

### Изменить еще одно поле (Change another field) <a href="#actions.signup.changes" id="actions.signup.changes"></a>

Кликните по данной кнопке, чтобы записать дополнительные поля при регистрации пользователя. Это эквивалентно действию "Make change to current user"/"Внести изменения в текущего пользователя" или "Make change to thing"/"Внести изменения в сущность", примененному к текущему пользователю.

## Авторизовать пользователя (Log the user in) <a href="#actions.login" id="actions.login"></a>

Данное действие авторизует существующего пользователя по email и паролю.Для этого пользователь уже должен быть зарегистрирован. При успешном завершении данное действие запускает событие "The current user is logged in"/"Текущий пользователь вошел в систему".

### Email (Email) <a href="#actions.login.email" id="actions.login.email"></a>

Задайте, в каком поле нужно взять email. Обычно, это "Input email's value".

### Пароль (Password) <a href="#actions.login.password" id="actions.login.password"></a>

Задайте, в каком поле нужно взять пароль. Обычно, это "Input password's value".

### Оставаться в системе (Stay logged in) <a href="#actions.login.stay_logged_in" id="actions.login.stay_logged_in"></a>

Установите данному полю значение true, чтобы пользователь оставался в систему после того, как закрыл браузер. Данную опцию можно сделать динамической с помощью чекбокса, что является распространенной практикой.

### Запомнить email (Remember the email) <a href="#actions.login.remember_email" id="actions.login.remember_email"></a>

Установите в данное поле значение true, чтобы браузер запомнил email, введенный в форму регистрации. В таком случае, когда пользователь выйдет из системы в поле ввода email будет отображаться последний сохраненный email.

## Зарегистрироваться/войти с помощью социальной сети (Signup/login with a social network) <a href="#actions.oauthlogin" id="actions.oauthlogin"></a>

Данное действие регистрирует пользователя с использованием Facebook, Instagram или другой социальной сети, называемой поставщиком OAuth. Данное действие создает пользователя в базе данных приложения, но не использует для этого идентификацию по email и паролю. Вместо этого Bubble использует токен, предоставляемый поставщиком OAuth. Когда в ходе рабочего процесса встречается данное действие, пользователю предлагается предоставить доступ к его информации.

Для того, чтобы воспользоваться данным действием, создайте приложение в Facebook или другом поставщике и скопируйте ключи, которые вам выдадут, во вкладку Plugins.

Обратите внимание, что некоторым сервисам, например Google, нужно, чтобы вы указали точный URL в консоли разработчика с "/" на конце.

### Поставщик OAuth (OAuth provider) <a href="#actions.oauthlogin.oauth_provider" id="actions.oauthlogin.oauth_provider"></a>

Выберите, какой сервис будет использоваться для аутентификации. Установите соответствующий плагин в выпадающем меню во вкладке Plugins (Плагины) или добавьте API с помощью API коннектора.

## Разавторизовать пользователя (Log the user out) <a href="#actions.logout" id="actions.logout"></a>

Разавторизовывает пользователя и запускает событие "Current user is signed out"/"Текущий пользователь не в системе".

## Обновить учетные данные пользователя (Update the user's credentials) <a href="#actions.updatecredentials" id="actions.updatecredentials"></a>

Данное действие изменяет email или пароль пользователя. Система попросит пользователя ввести предыдущий пароль из соображений безопасности. При использовании данного действия в интерфейсе должна быть форма, содержащая старый пароль и новый email или пароль.

### Старый пароль (Old password) <a href="#actions.updatecredentials.old_password" id="actions.updatecredentials.old_password"></a>

Введите поле, из которого нужно взять старый пароль. Обычно это "Input old password's value".

### Изменить email (Change email) <a href="#actions.updatecredentials.change_email" id="actions.updatecredentials.change_email"></a>

Поставьте здесь галочку, чтобы разрешить пользователям менять пароль.

### Email (Email) <a href="#actions.updatecredentials.email" id="actions.updatecredentials.email"></a>

Задайте поле, из которого нужно взять новый email. Обычно это "Input new email's value".

### Изменить пароль (Change password) <a href="#actions.updatecredentials.change_password" id="actions.updatecredentials.change_password"></a>

Поставьте здесь галочку, чтобы разрешить пользователям изменять пароль.

### Новый пароль (New password) <a href="#actions.updatecredentials.password" id="actions.updatecredentials.password"></a>

Введите поле, из которого нужно взять новый пароль. Обычно это "Input new password's value".

### Запрашивать подтверждение пароля (Require password confirmation) <a href="#actions.updatecredentials.require_confirm" id="actions.updatecredentials.require_confirm"></a>

Поставьте здесь галочку, чтобы при регистрации запросить у пользователя ввести пароль повторно, чтобы убедиться, что пароль введен верно. Если вы активируете данную опцию форма должна содержать два разных поля ввода пароля.

### Подтверждение пароля (Confirmation) <a href="#actions.updatecredentials.password2" id="actions.updatecredentials.password2"></a>

Данное поле определяет, где взять подтверждение пароля. В нем должно быть содержимое поля ввода, отличное от изначального поля ввода пароля.

### Не отображать сообщение об успехе (Do not show success message) <a href="#actions.updatecredentials.do_not_show_success_alert" id="actions.updatecredentials.do_not_show_success_alert"></a>

По умолчанию Bubble отображает элемент Alert, который информирует пользователя об успешном завершении действия. Данный функционал можно отключить, поставив данную галочку, если вам нужно отображать собственное сообщение вместо сообщения, выводимого Bubble по умолчанию.

### Послать письмо, чтобы подтвердить email (Send an email to confirm the email) <a href="#actions.updatecredentials.send_confirm_email" id="actions.updatecredentials.send_confirm_email"></a>

Поставьте галочку, чтобы послать пользователю письмо, чтобы подтвердить, что введенный email корректен и они имеют к нему доступ. Данное письмо содержит ссылку, при переходе по которой параметр пользователя "email confirmed" примет значение "yes". Настройте содержимое данного письма в разделе Languages вкладки Settings. Там настраиваются "Email confirmation subject"/"Тема письма с подтверждением" и "Email confirmation body"/"Тело письма с подтверждением".

### Страница подтверждения (Confirmation page) <a href="#actions.updatecredentials.page" id="actions.updatecredentials.page"></a>

Введите адрес страницы, на которую перейдет пользователь при клике на ссылку в письме с подтверждением.

## Внести изменения в текущего пользователя (Make changes to current user) <a href="#actions.makechangecurrentuser" id="actions.makechangecurrentuser"></a>

Данное действие изменяет текущего пользователя и сохраняет данную информацию в базе данных приложения. Это эквивалент действия "Make change to thing"/"Внести изменение в сущность", примененного к текущему пользователю.

### Изменения (Changes) <a href="#actions.makechangecurrentuser.changes" id="actions.makechangecurrentuser.changes"></a>

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

## Послать email с подтверждением (Send confirmation email) <a href="#actions.sendconfirmationemail" id="actions.sendconfirmationemail"></a>

Данное действе посылает email пользователю, находящемуся в системе в данный момент, чтобы подтвердить правильность введенного email и наличие к нему доступа. Если email уже был подтвержден, то параметр пользователя "email confirmed"/"email подтвержден" будет помечен как неподтвержденный до того момента, как пользователь перейдет по ссылке в новом письме.

### Страница подтверждения (Confirmation page) <a href="#actions.sendconfirmationemail.page" id="actions.sendconfirmationemail.page"></a>

Введите адрес страницы, на которую перейдет пользователь при клике на ссылку в письме с подтверждением.

## Послать email сброса пароля (Send password reset email) <a href="#actions.sendpasswordresetemail" id="actions.sendpasswordresetemail"></a>

Данное действие посылает email, содержащий ссылку сброса пароля, если пользователь его забыл. Данная ссылка ведет на страницу "reset\_pw", которая встроена в Bubble и управляет сбросом пароля.

### Email для сброса (Email to reset) <a href="#actions.sendpasswordresetemail.to" id="actions.sendpasswordresetemail.to"></a>

Введите email, на который нужно послать ссылку сброса пароля. Форма должна содержать поле ввода email.

Обратите внимание: Этот email должен существовать в базу данных. В противном случае не существует пароля, который нужно сбросить.

### Тема (Subject) <a href="#actions.sendpasswordresetemail.subject" id="actions.sendpasswordresetemail.subject"></a>

Введите тему письма

### Тело письма (Body) <a href="#actions.sendpasswordresetemail.body" id="actions.sendpasswordresetemail.body"></a>

Введите содержимое письма. Ссылка сброса пароля добавляется к концу письма.

### Создать токен без отсылки письма (Just make token, don't send email) <a href="#actions.sendpasswordresetemail.just_make_token" id="actions.sendpasswordresetemail.just_make_token"></a>

Письмо сброса пароля содержит ссылку, которая выглядит как \[<http://yourdomain.com/reset_pw?reset=[LONG_ID](http://yourdomain.com/reset_pw?reset=[LONG_ID)\\>]

Токен - это та часть, что указывается на месте LONG\_ID. Вы можете позже вручную создать ссылку и тогда сбросить пароль. Токен может быть использован только один раз.

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

Вы можете получить LONG\_ID в виде результата данного действия из последующих действий рабочего процесса.

## Сбросить пароль (Reset password) <a href="#actions.resetpassword" id="actions.resetpassword"></a>

Данное действие сбрасывает пароль пользователя на странице rewet\_pw и передает токен в URL. См. выше "Создать токен без отсылки письма"/" Just make token, don't send email". Данный токен истечет через 24 часа.

### Пароль (Password) <a href="#actions.resetpassword.new_password" id="actions.resetpassword.new_password"></a>

Данное поле определяет, где нужно взять пароль. Форма reset\_pw встроена в приложение. Тем не менее, если вы измените форму, задайте поле, которое будет содержать пароль.

### Подтверждение (Confirmation) <a href="#actions.resetpassword.new_password_again" id="actions.resetpassword.new_password_again"></a>

Данное поле определяет, где взять подтверждение пароля. В нем должно быть содержимое поля ввода, отличное от изначального поля ввода пароля.

## Создать учетную запись для кого-то еще (Create an account for someone else) <a href="#actions.createuseraccount" id="actions.createuseraccount"></a>

Данное действие создает учетную запись для другого пользователя без его входа в систему. Это полезно в том случае, когда нужно создать страницу администрирования и управлять тем, кому можно регистрироваться. Получить доступ к данному пользователю можно в последующих действиях.

### Email (Email) <a href="#actions.createuseraccount.email" id="actions.createuseraccount.email"></a>

Введите email нового пользователя, который обычно берется из input\`а.

### Пароль (Password) <a href="#actions.createuseraccount.password" id="actions.createuseraccount.password"></a>

Задайте пароль для нового пользователя. Вы можете как задать его непосредственно, так и использовать поле ввода.

Обратите внимание: Данное поле было упразднено и доступно только в старых приложениях.

### Вернуть пользователя, если учетная запись уже существует (Return the user if the account already exists) <a href="#actions.createuseraccount.return_user_if_already_exists" id="actions.createuseraccount.return_user_if_already_exists"></a>

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

### Изменения (Changes) <a href="#actions.createuseraccount.changes" id="actions.createuseraccount.changes"></a>

Список изменений, применяемых к новому пользователю. Выберите изменяемое поле, операцию и новое значение.

## Проверить пароль текущего пользователя (Check password for the current user) <a href="#actions.checkuserpassword" id="actions.checkuserpassword"></a>

Данное действие сравнивает значение с "Current user's password"/"Пароль текущего пользователя". Если значение верное, то рабочий процесс продолжается. В противном случае он останавливается и пользователю показывается сообщение. Используйте данное действие, чтобы сверить пароль перед важной операцией, такой как удаление учетной записи.

### Пароль (Password) <a href="#actions.checkuserpassword.password" id="actions.checkuserpassword.password"></a>

Данное поле определяет, откуда брать предполагаемый пароль. Обычно он находится в элементе ввода.

## Назначить пользователю временный пароль (Assign a temp password to a user) <a href="#actions.settemporarypassword" id="actions.settemporarypassword"></a>

Данное действие удаляет пароль пользователя и назначает ему временный. Данное действие возвращает текстовое значение, которое может быть использовано в последующих рабочих процессах. Если пользователь пытается войти с использованием данного пароля, он будет перенаправлен на страницу, которая задана в настройке "Перенаправлять пользователей, которые не изменили свой пароль"/" Redirect users who haven't changed their password" в разделе General вкладки "Settings".

### Пользователь (User) <a href="#actions.settemporarypassword.user" id="actions.settemporarypassword.user"></a>

Данное поле определяет пользователя, которому назначается временный пароль. Оно должно иметь тип user. В случае несоответствия типа выражение будет помечено красным цветом.

## Сменить email другому пользователю (Change the email for another user) <a href="#actions.changeemailforanotheruser" id="actions.changeemailforanotheruser"></a>

Данное действие изменяет у пользователя email входа в систему. Данное действие предназначено для использования в административных рабочих процессах для изменения email пользователя, во время его его пользования приложением или вне его. Для того, чтобы пользователь сам изменил свой email, используйте действие "Update the user's credentials"/"Изменить учетные данный пользователя". Этот способ более безопасен, т.к. пользователь повторно вводит свой пароль для подтверждения своих прав на данное действие. А данное действие используется в тех случаях, когда администратору нужно изменить учетную запись другого пользователя, чей пароль неизвестен.

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

### Пользователь (User) <a href="#actions.changeemailforanotheruser.user" id="actions.changeemailforanotheruser.user"></a>

Задайте пользователя, которому меняется email.

### Новый email (New email) <a href="#actions.changeemailforanotheruser.new_email" id="actions.changeemailforanotheruser.new_email"></a>

Введите новый email. При следующем входе пользователь должен будет вводить этот email вместо предыдущего.

## Завершить другие сессии пользователя (Log out other user's sessions) <a href="#actions.logoutothersessions" id="actions.logoutothersessions"></a>

Данное действие позволяет вам завершить все сессии текущего пользователя кроме той, из которой запущено данное действие. Данное действие полезно для усиления безопасности, когда пользователь хочет убедиться в том, что ни на одном другом устройстве нет авторизованной сессии. Если вам нужно завершить и текущую сессию, вы можете после данного действиея воспользоваться действием " Log the user out"/"Разавторизовать пользователя".

## Сгенерировать 2FA QR код (QR код двухфакторной аутентификации) (Generate a 2FA QR code) <a href="#actions.generate2faqrcode" id="actions.generate2faqrcode"></a>

Данное действие позволяет создать для пользователя уникальный QR код, для установки двухфакторной аутентификации с помощью Google Authenticator или Authy . Пользователь должен подтвердить свой пароль.

Обратите внимание: Данная функция является дополнительной и доступна только на тарифе Production.

### Пароль (Password) <a href="#actions.generate2faqrcode.password" id="actions.generate2faqrcode.password"></a>

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

## Проверить токен и активировать 2FA (Validate token and activate 2FA) <a href="#actions.validate2fatoken" id="actions.validate2fatoken"></a>

Данное действие позволяет пользователю проверить уникальный токен, который он получит от Google Authenticator или Authy при первом подтверждении процесса. После того, как пользователь завершит данный процесс, он будет помечен как использующий двухфакторную аутентификацию и должен будет пройти процедуру проверки токена для входа в приложение.

### Токен (Token) <a href="#actions.validate2fatoken.token" id="actions.validate2fatoken.token"></a>

Это токен, который хочет подтвердить пользователь. Его нужно получать из поля ввода на странице.

## Проверить 2FA токен (Check 2FA token) <a href="#actions.check2fatoken" id="actions.check2fatoken"></a>

Данное действие позволяет пользователю проверить токен, полученный от Google Authenticator или Authy. После успешного завершения данного действия пользователь войдет в приложение.

### Токен (Token) <a href="#actions.check2fatoken.token" id="actions.check2fatoken.token"></a>

Это токен, который хочет проверить пользователь. Его нужно получать из поля ввода на странице.

### Действует 30 дней (Valid\_30\_days) <a href="#actions.check2fatoken.valid_30_days" id="actions.check2fatoken.valid_30_days"></a>

Если установлено "yes", то пользователю не нужно будет подтверждать токен в следующие 30 дней на текущем устройстве в текущем браузере.

## Отключить 2FA для текущего пользователя (Disable 2FA for the current user) <a href="#actions.disable2fa" id="actions.disable2fa"></a>

Данное действие отключает проверку временных токенов для текущего пользователя. После завершения данного шага ему не нужно будет вводить временный код для входа в систему.

### Пароль (Password) <a href="#actions.disable2fa.password" id="actions.disable2fa.password"></a>

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

### Токен (Token) <a href="#actions.disable2fa.token" id="actions.disable2fa.token"></a>

Это токен, который хочет проверить пользователь. Его нужно получать из поля ввода на странице.

## Сгенерировать одноразовый код восстановления (Generate one-time backup codes) <a href="#actions.generateonetimecodes" id="actions.generateonetimecodes"></a>

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

### Пароль (Password) <a href="#actions.generateonetimecodes.password" id="actions.generateonetimecodes.password"></a>

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

### Токен (Token) <a href="#actions.generateonetimecodes.token" id="actions.generateonetimecodes.token"></a>

Это токен, который хочет проверить пользователь. Его нужно получать из поля ввода на странице.

### Число кодов (Number\_of\_codes) <a href="#actions.generateonetimecodes.number_of_codes" id="actions.generateonetimecodes.number_of_codes"></a>

Это число генерируемых кодов. По умолчанию равно 10.

## Перейти на страницу... (Go to page ...) <a href="#actions.changepage" id="actions.changepage"></a>

Данное действие перенаправляет пользователя на другую страницу. Опционально можно задать данные, которые будут отправлены на эту страницу, если у целевой страницы есть тип содержимого. Если действие состоит в том, чтобы перейти на текущую страницу, но с новыми данными, содержимое страницы обновится без перезагрузки страницы.

Если действие смены страницы - единственное действие рабочего процесса, запускающееся при загрузке страницы, то перенаправление произойдет на стороне сервера. Обратите внимание, что в том случае, если к данному событию применяется условие, то перенаправление произойдет только в том случае, если в условии участвуют "Current user"/"Текущий пользователь" и "Current page thing"/"Сущность текущей страницы" .

### Отправляемые данные (Data to send) <a href="#actions.changepage.data_to_send" id="actions.changepage.data_to_send"></a>

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

### Отправить на страницу дополнительные данные (Send more parameters to the page) <a href="#actions.changepage.add_parameters" id="actions.changepage.add_parameters"></a>

На страницу могут быть отправлены дополнительные данные. Это может быть текст, число для поиска и т.д. Данная опция определяет отправляемые пары "ключ/значения"/" key/values". На целевой странице они будут использоваться с помощью источника данных "Получить данные из URL страницы"/" Get data from page URL".

### Дополнительные параметры (Additional parameters) <a href="#actions.changepage.url_parameters" id="actions.changepage.url_parameters"></a>

Задайте отправляемые на страницу пары "key/values"("ключ/значения")

*Предупреждение*: Из-за внутренней логики Bubble не пользуйтесь выражениями "id", "debug\_mode" или "resume" в качестве ключей.

### Заменить запись в истории браузера (Replace the entry in the browser history) <a href="#actions.changepage.replace_history" id="actions.changepage.replace_history"></a>

При перенаправлении на ту же страницу и обновлении отправляемых данных в историю добавляется новая запись. Поставьте галочку, если не хотите, чтобы начальная страница включалась в список.

## Обновить страницу (Refresh the page) <a href="#actions.refreshpage" id="actions.refreshpage"></a>

Данное действие перезагружает страницу. Оно эквивалентно нажатию пользователя в браузере кнопки "Обновить страницу".

## Перейти на предыдущую страницу (Go to previous page) <a href="#actions.goprevious" id="actions.goprevious"></a>

Данное действие переходит на предыдущую страницу истории браузера. Оно эквивалентно нажатию пользователем в браузере кнопки "Назад".

## Открыть сторонний вебсайт (Open an external website) <a href="#actions.openurl" id="actions.openurl"></a>

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

Подсказка: Чтобы открыть URL в другой вкладке браузера, воспользуйтесь элеменом "Ссылка"/"Link".

### Адрес (Destination) <a href="#actions.openurl.url" id="actions.openurl.url"></a>

Введите URL, который нужно открыть. Введите динамический адрес с помощью кнопки "Insert dynamic data"/"Вставить динамические данные".

## Добавить паузу перед следующим действием (Add a pause before next action) <a href="#actions.pausewfclient" id="actions.pausewfclient"></a>

Данное действие приостанавливает рабочий процесс на введенное количество миллисекунд. Это полезно, если вам нужно подождать перед анимацией элемента и т.д. Это не повлияет на действия, которые происходят на стороне сервера, такие как изменение данных, отправка писем и т.д.

### Длина паузы (мс) (Pause length (ms)) <a href="#actions.pausewfclient.length" id="actions.pausewfclient.length"></a>

Введите число миллисекунд, на которые нужно приостановить рабочий процесс.

### Скрыть полоску статуса при возникновении паузы (Hide the status bar as the pause occurs) <a href="#actions.pausewfclient.hide_status_bar" id="actions.pausewfclient.hide_status_bar"></a>

По умолчанию во время данного действия отображается полоса состояния. Чтобы её скрыть на время паузы поставьте здесь галочку.

## Перейти к элементу (Scroll to an element) <a href="#actions.scrolltoelement" id="actions.scrolltoelement"></a>

Данное действие используется для того, чтобы перейти к определенному элементу на странице. Страница будет сдвинута так, чтобы необходимый элемент оказался в самом верху окна браузера. Это полезно для кнопок навигации.

### Смещение (в пикселях) (Offset (pixels)) <a href="#actions.scrolltoelement.offset" id="actions.scrolltoelement.offset"></a>

Введите число пикселей, которые обозначают смещение относительно позиции элемента. Это полезно для плавающих заголовков, которые находятся близко к верхней части экрана.

## Анимировать элемент (Animate an element) <a href="#actions.animateelement" id="actions.animateelement"></a>

Данная функция используется для того, чтобы анимировать элемент на странице. Анимация " transition" скрывает или отображает элемент так же, как это сделало бы действие.

### Анимация (Animation) <a href="#actions.animateelement.animation" id="actions.animateelement.animation"></a>

Выберите анимацию, которую хотите использовать. В подсказке будет отображаться пример анимации.

### Задать свою длительность (Define a custom duration ) <a href="#actions.animateelement.customize_duration" id="actions.animateelement.customize_duration"></a>

По умолчанию у анимации уже установлена длительность. Поставьте галочку, если вы хотите задать своё значение.

### Длительность (мс) (Duration (ms)) <a href="#actions.animateelement.duration" id="actions.animateelement.duration"></a>

Введите длительность анимации в миллисекундах.

## Создать новую сущность (Create a new thing...) <a href="#actions.newthing" id="actions.newthing"></a>

Данное действие создает новый объект в базе данных приложения. Выберите существующий тип или задайте новый тип выбрав в выпадающем меню "Create a new type…"/"Создать новый тип". Типом может быть, например, "apartment to sell"/"продающиеся апартаменты", если ваше приложение наподобие Craigslist. Также вы можете задать поля для выбранного типа, такие как "location", "price" и "size". Для этого нужно просто задать, где искать нужные данные для каждого из таких полей или прописать их вручную.

Подсказка: Структуру данных и актуальные данные, хранящиеся в базе данных приложения можно посмотреть в разделах "Data Types"/"Типы данных" и "App Data"/"Данные приложения" вкладки "Data"/"Данные".

### Тип (Type) <a href="#actions.newthing.thing_type" id="actions.newthing.thing_type"></a>

Выберите тип создаваемой сущности. Задайте новый тип, выбрав в выпадающем меню опцию "Create a new type..."

### Начальные значения (Initial values) <a href="#actions.newthing.initial_values" id="actions.newthing.initial_values"></a>

Кликните по кнопке "Add another field", чтобы добавить новое поле и задать для него другое значение. Выберите изменяемое поле, операцию и новое значение.

## Внести изменения в сущность (Make changes to thing...) <a href="#actions.changething" id="actions.changething"></a>

Данное действие изменяет существующую запись в базе данных приложения. Например, если пользователь хочет обновить своё имя, воспользуйтесь действием "Make change action" для поля "Current user's first name".

### Сущность для изменения (Thing to change) <a href="#actions.changething.to_change" id="actions.changething.to_change"></a>

Выберите сущность, которую будете изменять.

### Создать сущность, если она не существует (Create if the thing doesn't exist) <a href="#actions.changething.create_if_missing" id="actions.changething.create_if_missing"></a>

По умолчанию данное действие не делает ничего, если сущность, которую вы пытаетесь изменить, не существует. Поставьте галочку, чтобы изменить данное поведение. В таком случае данное действие будет эквивалентно действию "Create a new thing" и будет использовать изменяемые значения в качестве начальных значений сущности.

*Важно*: Если изменяемая сущность, например, "Current user's thing"/"Сущность текущего пользователя" не существует, она будет создана, но не будет привязана к текущему пользователю.

*Предупреждение*: Данная опция была упразднена 18 июля 2107 года. Приложения, созданные позднее этой даты не смогут получить к ней доступ. (но она будет всё еще доступна в режиме работы). Вместо этого пользователь может использовать условие для действия и создать несуществующую сущность перед тем, как её изменять с помощью действия "Change Thing". Мы рекомендуем нашим пользователям, которые используют данную опцию, пойти тем же путем по мере развития их приложений.

### Изменения (Changes) <a href="#actions.changething.changes" id="actions.changething.changes"></a>

Добавьте вносимые изменения в изменяемую сущность. Выберите изменяемое поле, операцию и новое значение. В дополнение к простым действиям, таким как присвоение значения, в зависимости от типа поля доступны и другие операции. Если поле является списком, выберите одно из следующих:

#### *Добавить (Add)* <a href="#actions.changething.changes.add" id="actions.changething.changes.add"></a>

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

#### *Удалить (Remove)* <a href="#actions.changething.changes.remove" id="actions.changething.changes.remove"></a>

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

#### *Задать список (Set list)* <a href="#actions.changething.changes.set_list" id="actions.changething.changes.set_list"></a>

Заменить текущий список новым списком. Значение должно быть списком сущностей того же типа.

#### *Добавить список (Add list)* <a href="#actions.changething.changes.add_list" id="actions.changething.changes.add_list"></a>

Добавляет все заданные записи в существующий список. Если какие-то записи уже находятся в списке, они не будут добавлены.

#### *Удалить список (Remove list)* <a href="#actions.changething.changes.remove_list" id="actions.changething.changes.remove_list"></a>

Удаляет все записи из существующего списка. Если какие-то элементы не в списке, они не будут удалены.

#### *Очистить список (Clear list)* <a href="#actions.changething.changes.clear_list" id="actions.changething.changes.clear_list"></a>

Удаляет содержимое поля и заменяет его пустым списком.

## Внести изменения в список сущностей (Make changes to a list of things...) <a href="#actions.changelistofthings" id="actions.changelistofthings"></a>

Данное действие эквивалентно действию "Make changes to a thing", но может влиять более чем на одну запись. Задайте список сущностей, которые нужно изменить, и каждая сущность будет изменена в соответствии со списком изменений.

### Тип сущностей (Type of things) <a href="#actions.changelistofthings.type_to_change" id="actions.changelistofthings.type_to_change"></a>

Выберите тип изменяемых сущностей. Необходимо протестировать на соответствие типов с реальным списком.

### Изменяемый список (List to change) <a href="#actions.changelistofthings.to_change" id="actions.changelistofthings.to_change"></a>

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

### Изменения (Changes) <a href="#actions.changelistofthings.changes" id="actions.changelistofthings.changes"></a>

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

## Удалить сущность (Delete thing...) <a href="#actions.deletething" id="actions.deletething"></a>

Удаляет сущность из базы данных

### Удалить (To delete) <a href="#actions.deletething.to_delete" id="actions.deletething.to_delete"></a>

Выберите, какую сущность нужно удалить.

## Удалить список сущностей (Delete a list of things...) <a href="#actions.deletelistofthings" id="actions.deletelistofthings"></a>

Данное действие подобно действию "Delete thing", но удаляет более одной записи.

### Тип сущностей (Type of things) <a href="#actions.deletelistofthings.type_to_delete" id="actions.deletelistofthings.type_to_delete"></a>

Выберите тип удаляемых сущностей. Это нужно, чтобы проверить соответствие типов списку.

### Удаляемый список (List to delete) <a href="#actions.deletelistofthings.to_delete" id="actions.deletelistofthings.to_delete"></a>

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

## Скопировать список сущностей (Copy a list of things...) <a href="#actions.copylistofthings" id="actions.copylistofthings"></a>

Данное действие копирует список сущностей.

Важно: Из соображений безопасности и производительности, количество записей начального списка ограничивается 100 элементами. В случае превышения никакого действия не произойдет.

### Тип сущностей (Type of things) <a href="#actions.copylistofthings.type_to_copy" id="actions.copylistofthings.type_to_copy"></a>

Выберите тип копируемых сущностей. Это нужно, чтобы проверить соответствие типов списку.

### Копируемый список (List to copy) <a href="#actions.copylistofthings.to_copy" id="actions.copylistofthings.to_copy"></a>

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

## Скачать данные в виде CSV (Download data as CSV) <a href="#actions.downloaddataascsv" id="actions.downloaddataascsv"></a>

Данное действие позволяет пользователям скачать данные в виде CSV файла. Данное действие используется при создании страницы администрирования. Конечным пользователям будет предложено выбрать директорию для сохранения файла. Данная функция доступна на платных тарифах Bubble.

### Тип данных (Type of data) <a href="#actions.downloaddataascsv.data_type" id="actions.downloaddataascsv.data_type"></a>

Выберите тип экспортируемых данных.

### Источник данных (Data source) <a href="#actions.downloaddataascsv.data_source" id="actions.downloaddataascsv.data_source"></a>

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

### Имя файла (File name) <a href="#actions.downloaddataascsv.file_name" id="actions.downloaddataascsv.file_name"></a>

Введите имя файла

### Форматирование даты (Date formatting) <a href="#actions.downloaddataascsv.date_formatting" id="actions.downloaddataascsv.date_formatting"></a>

Выберите стиль для даты. Можно выбрать один из: Excel friendly (под Excel), Full (с часовым поясом) и Custom (Пользовательский)

### Пользовательский формат даты (Custom date format) <a href="#actions.downloaddataascsv.custom_format" id="actions.downloaddataascsv.custom_format"></a>

Введите пользовательский стиль даты.

### Разделитель (Separator) <a href="#actions.downloaddataascsv.separator" id="actions.downloaddataascsv.separator"></a>

Выберите разедлитель для элементов CSV файла.

### Включить подписи в первый ряд (Include labels in first row) <a href="#actions.downloaddataascsv.show_labels" id="actions.downloaddataascsv.show_labels"></a>

Если выбрана данная настройка первый ряд CSV файла будет содержать подписи к данным.

### Использовать подписи полей вместо ID (Use field captions instead of IDs) <a href="#actions.downloaddataascsv.use_caption_labels" id="actions.downloaddataascsv.use_caption_labels"></a>

По умолчанию в качестве заголовков столбцов используются неизменяемые ID полей. Поставив здесь галочку можно заменить заголовки столбцов. В таком случае вместо ID будут использоваться подписи, указанные в разделе Data Types вкладки Data/

*Обратите внимание*: Для добавления подписей в CSV файл должна быть выбрана настройка "Include labels in first row".

### Поместить значения в двойные кавычки (Wrap values in double quotes) <a href="#actions.downloaddataascsv.use_quotes" id="actions.downloaddataascsv.use_quotes"></a>

Если стоит галочка, то к данным будут добавлены кавычки.

### Скрытые столбцы (Hidden columns) <a href="#actions.downloaddataascsv.hide_some_fields" id="actions.downloaddataascsv.hide_some_fields"></a>

Выберите те поля, которые НЕ должны включаться в CSV файл.

## Загрузить данные из CSV (Upload data as CSV) <a href="#actions.uploadcsvdata" id="actions.uploadcsvdata"></a>

Данное действие позволяет пользователям загружать CSV файл и переводить его элементы в сущности базы данных приложения. Тип каждого столбца должен соответствовать типу выбранного поля. Поля должны иметь один из типов: text, number, date, address и yes/no. Данная функция доступна пользователям на платных тарифах Bubble.

Важно: Данное действие имеет ограничение на число элементов, загружаемых за один раз. Оно определяется тарифным планом.

### Тип данных (Type of data) <a href="#actions.uploadcsvdata.data_type" id="actions.uploadcsvdata.data_type"></a>

Выберите тип загружаемых данных.

### CSV файл (CSV file) <a href="#actions.uploadcsvdata.file" id="actions.uploadcsvdata.file"></a>

Задайте выражение, которое указывает на загружаемый файл. Обычно используется элемент file uploader.

### Разделитель (Separator) <a href="#actions.uploadcsvdata.separator" id="actions.uploadcsvdata.separator"></a>

Выберите разделитель, который будет использован в CSV файле.

## Удалить загруженный файл (Delete an uploaded file) <a href="#actions.deleteuploadedfile" id="actions.deleteuploadedfile"></a>

Данное действие удаляет загруженный файл из файлового хранилища. Будут удалены только файлы, загруженные вашим приложением. Если файл не найден, действие не совершит ничего.

Предупреждение: Данная функция должна использоваться с осторожностью, т.к. файл удаляется навсегда. **Вы не сможете восстановить удаленные файлы.**

### URL файла (File URL) <a href="#actions.deleteuploadedfile.url_to_delete" id="actions.deleteuploadedfile.url_to_delete"></a>

URL удаляемого файла. Он должен выглядеть как [https://s3.amazonaws.com/appforest\_uf//](https://s3.amazonaws.com/appforest_uf/)... или <https://domain.com/fileupload/>... для личных файлов. Обратите внимание, что если у текущего пользователя нет прав на чтение файла, то он не сможет его удалить.

## Послать email (Send email) <a href="#actions.sendemail" id="actions.sendemail"></a>

Данное действие отправляет email из вашего приложения. Если доменное имя еще не настроено, то письма будут приходить от <admin-no-reply@bubble.is>. Когда доменное имя настроено письма будут приходить от <what_you_want@your_domain.com> Настройте этот email в разделе Domain & Email вкладки Settings.

Обратите внимание: Доменное имя должно быть настроено до настройки email.

### Кому (To) <a href="#actions.sendemail.to" id="actions.sendemail.to"></a>

Задайте email, на который нужно отправить письмо. Это может быть либо "Current user's email" либо содержимое поля ввода. Более чем одному адресату можно отправить, задав список адресов и используя параметр "join" с запятой ",". Например, <email_1@bubble.is>, <email_2@bubble.is>.

### Задать другой адрес ответа (Specify a different reply-to address) <a href="#actions.sendemail.different_reply_to" id="actions.sendemail.different_reply_to"></a>

Поставьте галочку, чтобы задать другой адрес для ответа.

### Ответить на (Reply to) <a href="#actions.sendemail.replyto" id="actions.sendemail.replyto"></a>

Введите адрес для ответа. Им может быть, например, "Current user's email".

### Имя отправителя (Sender name) <a href="#actions.sendemail.sender_name" id="actions.sendemail.sender_name"></a>

С помощью данного поля можно вместо email адреса отображать имя отправителя.

### Cc <a href="#actions.sendemail.cc" id="actions.sendemail.cc"></a>

Задайте cc email адреса.

### Bcc <a href="#actions.sendemail.bcc" id="actions.sendemail.bcc"></a>

Задайте bcc email адреса.

### Тема (Subject) <a href="#actions.sendemail.subject" id="actions.sendemail.subject"></a>

Задайте тему письма

### Тело письма (Body) <a href="#actions.sendemail.body" id="actions.sendemail.body"></a>

Задайте тело письма. Чтобы сделать содержимое динамическим воспользуйтесь функцией "Insert dynamic data".

### Не применять шаблон SendGrid (Do not apply a Sendgrid template) <a href="#actions.sendemail.ignore_template" id="actions.sendemail.ignore_template"></a>

При использовании SendGrid при отправке сообщений вы можете задать ID шаблона в разделе Domain вкладки Settings. Поставьте галочку, чтобы для данного действия шаблон не использовался.

Обратите внимание: Данная настройка доступна только в том случае, когда установлен плагин SendGrid и в разделе Domain вкладки Settings настроен домен.

## Запустить пользовательское событие (Trigger a custom event) <a href="#actions.triggercustomevent" id="actions.triggercustomevent"></a>

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

### Пользовательское событие (Custom event) <a href="#actions.triggercustomevent.custom_event" id="actions.triggercustomevent.custom_event"></a>

Выберите пользовательское событие, которое нужно запустить.

### Сущность для рабочего процесса (Workflow thing) <a href="#actions.triggercustomevent.workflow_thing" id="actions.triggercustomevent.workflow_thing"></a>

Если для рабочего процесса нужна сущность, задайте её здесь.

## Запустить пользовательское событие при изменении данных (Trigger a custom event when data changes) <a href="#actions.triggercustomonchange" id="actions.triggercustomonchange"></a>

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

### Пользовательское событие (Custom event) <a href="#actions.triggercustomonchange.custom_event" id="actions.triggercustomonchange.custom_event"></a>

Выберите пользовательское событие, которое должно запускаться при изменении сущности.

### Сущность для рабочего процесса (Workflow thing) <a href="#actions.triggercustomonchange.workflow_thing" id="actions.triggercustomonchange.workflow_thing"></a>

Это сущность, изменения которой отслеживает событие. Она должна иметь тот же тип, что и сущность рабочего процесса, который запустится при выполнении данного события и которая будет передана в пользовательский рабочий процесс. Другими словами, если пользовательскому событию нужен тип user, поле должно быть user, а пользовательский рабочий процесс должен запускаться с данной сущностью типа user при её изменении.

### Поле (Field) <a href="#actions.triggercustomonchange.field" id="actions.triggercustomonchange.field"></a>

Это поле, изменения которого отслеживает событие. Например, если сущность рабочего процесса "Current user", а полем является "Name", то при изменении кем-либо "Current user's name" с Bob на Barbara запустится пользовательское событие.

## Запланировать пользовательское событие (Schedule a custom event) <a href="#actions.schedulecustom" id="actions.schedulecustom"></a>

Данное действие запускает выбранный пользовательский рабочий процесс в установленное время в будущем. Если пользователь перейдет на другую страницу до запуска рабочего процесса, этого не случится. В отличие от "Trigger a custom event"/"Запустить пользовательское событие", рабочие процессы, запущенные с помощью данного действия работают либо независимо, либо параллельно с рабочим процессом, их запустившим.

### Пользовательское событие (Custom event) <a href="#actions.schedulecustom.custom_event" id="actions.schedulecustom.custom_event"></a>

Выберите пользовательское событие, которое нужно запустить.

### Сущность для рабочего процесса (Workflow thing) <a href="#actions.schedulecustom.workflow_thing" id="actions.schedulecustom.workflow_thing"></a>

Если для рабочего процесса нужна сущность, задайте её здесь.

### Задержка (Delay) <a href="#actions.schedulecustom.delay" id="actions.schedulecustom.delay"></a>

Введите время в секундах, через которое нужно запустить пользовательский рабочий процесс. Допустимы дробные значения.

## Запустить пользовательское событие из элемента многократного использования (Trigger a custom event from a reusable element) <a href="#actions.triggercustomeventfromreusable" id="actions.triggercustomeventfromreusable"></a>

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

### Элемент многократного использования (Reusable element) <a href="#actions.triggercustomeventfromreusable.element_id" id="actions.triggercustomeventfromreusable.element_id"></a>

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

### Пользовательское событие (Custom event) <a href="#actions.triggercustomeventfromreusable.custom_event" id="actions.triggercustomeventfromreusable.custom_event"></a>

Выберите пользовательское событие, которое нужно запустить.

### Сущность для рабочего процесса (Workflow thing) <a href="#actions.triggercustomeventfromreusable.workflow_thing" id="actions.triggercustomeventfromreusable.workflow_thing"></a>

Если для рабочего процесса нужна сущность, задайте её здесь.

## Запланировать API процесс (Schedule API Workflow) <a href="#actions.scheduleapievent" id="actions.scheduleapievent"></a>

Данное действие позволяет вам запланировать запуск API процесса в будущем. Данное действие может быть использовано, чтобы послать email пользователю через неделю после регистрации или за неделю до наступления созданного ими события. Данное действие использует API процесс Bubble (Bubble API Workflow), см. ниже "Запланировать API процесс с помощью другого API процесса"/"Schedule an API workflow within another API workflow" Чтобы избежать бесконечного зацикливания он не может указывать сам на себя. В таком случае последующие вызовы будут игнорироваться.

*Обратите внимание*: Данное действие доступно только на платных тарифах Bubble. Активируйте API в разделе API вкладки Settings.

### API процесс (API Workflow) <a href="#actions.scheduleapievent.api_event" id="actions.scheduleapievent.api_event"></a>

Выберите API процесс, который нужно запустить. Это один из процессов, заданных на странице API Workflow, которая находится в Application Menu (Меню приложения) сверху панели инструментов. Если рабочий процесс принимает параметры, то они отображаются в Редакторе Свойств (Property Editor). Подробности см. в разделе API (!!!ЛНК!!!)

### Запланированная дата (Scheduled date) <a href="#actions.scheduleapievent.date" id="actions.scheduleapievent.date"></a>

Задайте дату выполнения рабочего процесса. Для того чтобы задать динамическую дату, воспользуйтесь Конструктором выражений (expression composer)

### Игнорировать правила конфиденциальности при запуске рабочего процесса (Ignore privacy rules when running the workflow) <a href="#actions.scheduleapievent.ignore_privacy_rules" id="actions.scheduleapievent.ignore_privacy_rules"></a>

Запланированный рабочий процесс запускается в контексте текущего пользователя. К этому пользователю применяются все правила конфиденциальности. Поставьте здесь галочку, чтобы обойти эти правила и запустить процесс от имени администратора с полным доступом.

*Предупреждение*: Так как речь идет о настройках безопасности и конфиденциальности, данная функция должна использоваться с осторожностью.

### Параметры рабочего процесса (Workflow parameters) <a href="#actions.scheduleapievent.parameters" id="actions.scheduleapievent.parameters"></a>

Это параметры, заданные на уровне API процесса.

## Запланировать API процесс со списком (Schedule API Workflow on a list) <a href="#actions.scheduleapieventonlist" id="actions.scheduleapieventonlist"></a>

Данное действие позволяет вам запланировать запуск API процесса в будущем для списка сущностей. Это полезно для обработки списков сущностей. Каждый рабочий процесс запускается с одним из элементов списка и каждый из них считается запуском процесса.

*Обратите внимание*: Данное действие доступно только для пользователей на планом тарифе Bubble. Активируйте API в разделе API вкладки Settings (Настройки).

### Тип сущностей (Type of things) <a href="#actions.scheduleapieventonlist.type_of_list" id="actions.scheduleapieventonlist.type_of_list"></a>

Выберите тип сущностей, в которыми будет производиться работа.

### Список для запуска (List to run on) <a href="#actions.scheduleapieventonlist.data_source" id="actions.scheduleapieventonlist.data_source"></a>

Задайте список для работы. Это может быть результат поиска, вызов API процедуры и т.д.

*Обратите внимание*: список определяется и вычисляется в момент создания расписания. Другими словами, если сущность соответствовала ограничениям на момент планирования запуска, а впоследствии изменилась и больше не соответствует им, то рабочий процесс всё равно будет запущен.

### API процесс (API Workflow) <a href="#actions.scheduleapieventonlist.api_event" id="actions.scheduleapieventonlist.api_event"></a>

Выберите API процесс, который нужно запустить. Это один из процессов, заданных на странице API Workflow, которая находится в Application Menu (Меню приложения) сверху панели инструментов. Если рабочий процесс принимает параметры, то они отображаются в Редакторе Свойств (Property Editor). Подробности см. в разделе API (!!!ЛНК!!!)

### Запланированная дата (Scheduled date) <a href="#actions.scheduleapieventonlist.date" id="actions.scheduleapieventonlist.date"></a>

Задайте дату запуска рабочего процесса. Для динамической даты используйте Конструктор выражений (Expression composer).

### Интервал (в секундах) (Interval (seconds)) <a href="#actions.scheduleapieventonlist.interval" id="actions.scheduleapieventonlist.interval"></a>

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

*Обратите внимание*: не рекомендуется вводить интервал меньше 5 секунд.

### Игнорировать правила конфиденциальности при запуске рабочего процесса (Ignore privacy rules when running the workflow) <a href="#actions.scheduleapieventonlist.ignore_privacy_rules" id="actions.scheduleapieventonlist.ignore_privacy_rules"></a>

Запланированный рабочий процесс запускается в контексте текущего пользователя. К этому пользователю применяются все правила конфиденциальности. Поставьте здесь галочку, чтобы обойти эти правила и запустить процесс от имени администратора с полным доступом.

*Предупреждение*: Так как речь идет о настройках безопасности и конфиденциальности, данная функция должна использоваться с осторожностью.

### Параметры рабочего процесса (Workflow parameters) <a href="#actions.scheduleapieventonlist.parameters" id="actions.scheduleapieventonlist.parameters"></a>

Это параметры, заданные на уровне API процесса.

## Отменить запланированный API процесс (Cancel a scheduled API Workflow) <a href="#actions.cancelscheduledapievent" id="actions.cancelscheduledapievent"></a>

Данное действие отменяет запланированный рабочий процесс. Он определяется числом, которое возвратило действие, запланировавшее процесс.

### ID запланированного API процесса (Scheduled API ID) <a href="#actions.cancelscheduledapievent.scheduled_id" id="actions.cancelscheduledapievent.scheduled_id"></a>

Введите ID. Скорее всего это будет выражение, которое содержит ID запланированного процесса, который нужно отменить.

## Отменить запланированные API процессы списком (Cancel a list of scheduled API Workflows) <a href="#actions.cancellistscheduledapievent" id="actions.cancellistscheduledapievent"></a>

Данное действие отменяет список запланированных процессов. Процессы определяются числом, которое возвратило действие, их запланировавшее.

### Список ID запланированных API процессов (List of scheduled API IDs) <a href="#actions.cancellistscheduledapievent.scheduled_ids" id="actions.cancellistscheduledapievent.scheduled_ids"></a>

Задайте выражение, которое будет возвращать динамический список ID. Это должен быть список текстов.

## Задать/отменить рекурсивное событие (Set/cancel a recurring event) <a href="#actions.setrecurringevent" id="actions.setrecurringevent"></a>

Данное действие планирует или отменяет работу заданного рекурсивного рабочего процесса с сущностью. Это полезно в тех случаях, когда что-то должно происходить ежедневно, ежемесячно и т.д. Для сущности базы данных может использоваться только одно рекурсивное событие. Если частота определена как None, то рекурсивное событие отменится.

### Рекурсивное событие (Recurring event) <a href="#actions.setrecurringevent.recurring_event" id="actions.setrecurringevent.recurring_event"></a>

Выберите событие, которое должно происходить периодически или которое нужно отменить. Данные события задаются на странице API Workflow в Меню приложения (Application menu) сверху от Панели инструментов.

### Сущность для рабочего процесса (Workflow thing) <a href="#actions.setrecurringevent.workflow_thing" id="actions.setrecurringevent.workflow_thing"></a>

У каждого рекурсивного процесса должна быть сущность, за ним закрепленная. Тип данной сущности должен совпадать с типом рекурсивного события.

### Частота (Frequency) <a href="#actions.setrecurringevent.frequency" id="actions.setrecurringevent.frequency"></a>

Выберите частоту, которая должна быть применена к данному рекурсивному событию. Можно выбрать одну из настроек: None (Нет), Weekly (Еженедельно), Monthly (Ежемесячно), Quarterly (Ежеквартально) и Yearly (Ежегодно). Частота None отменяет рекурсивное событие.

Обратите внимание: Для еженедельных событий требуется тариф Professional. Для ежедневных событий требуется тариф Team.

### Дата начала (Start date) <a href="#actions.setrecurringevent.start_date" id="actions.setrecurringevent.start_date"></a>

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

## Послать запрос на встречу по email (Send meeting request by email) <a href="#actions.sendicsfileemail" id="actions.sendicsfileemail"></a>

Данное действие посылает запрос, который интерпретируется как запрос встречи такими сервисами как: Gmail, Outlook, iCal и т.д.

### Кому (To) <a href="#actions.sendicsfileemail.to" id="actions.sendicsfileemail.to"></a>

Задайте email, на который нужно отправить письмо. Это может быть либо "Current user's email" либо содержимое поля ввода.

### Имя отправителя (Sender name) <a href="#actions.sendicsfileemail.sender_name" id="actions.sendicsfileemail.sender_name"></a>

С помощью данного поля можно вместо email адреса отображать имя отправителя.

### Дата начала (Start time) <a href="#actions.sendicsfileemail.start" id="actions.sendicsfileemail.start"></a>

Задайте дату начала события/встречи. Параметр должен иметь тип date.

### Задать продолжительность вместо времени окончания (Set a length instead of an end time) <a href="#actions.sendicsfileemail.specify_length" id="actions.sendicsfileemail.specify_length"></a>

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

### Время окончания (End time) <a href="#actions.sendicsfileemail.end" id="actions.sendicsfileemail.end"></a>

Задайте время окончания события/встречи. Параметр должен иметь типа date.

### Продолжительность (в минутах) <a href="#actions.sendicsfileemail.length" id="actions.sendicsfileemail.length"></a>

Задайте в минутах продолжительность встречи. Параметр должен иметь тип number.

### Повестка (Summary) <a href="#actions.sendicsfileemail.summary" id="actions.sendicsfileemail.summary"></a>

Введите описание, которое будет отображаться в календаре.

### Описание (Description) <a href="#actions.sendicsfileemail.event_description" id="actions.sendicsfileemail.event_description"></a>

Введите описание события

### Место (Location) <a href="#actions.sendicsfileemail.location" id="actions.sendicsfileemail.location"></a>

Введите место проведения события. Параметр должен иметь тип текст.

### Изменить тело письма (Change the body of the email) <a href="#actions.sendicsfileemail.change_body" id="actions.sendicsfileemail.change_body"></a>

Поставьте галочку, чтобы изменить тело письма.

### Тело (Body) <a href="#actions.sendicsfileemail.body" id="actions.sendicsfileemail.body"></a>

Введите тело письма со встречей во вложении. Это может быть либо статичный текст либо динамические данные.

## Отобразить элемент (Show an element) <a href="#actions.showelement" id="actions.showelement"></a>

Отображает элемент или всплывающее окно. Если элемент является контейнером, то отобразятся также и элементы внутри.

## Скрыть элемент (Hide an element) <a href="#actions.hideelement" id="actions.hideelement"></a>

Скрывает элемент или всплывающее окно. Если элемент является контейнером, то скроются также и элементы внутри.

### Анимация (для нативных приложений) (Animation (native app)) <a href="#actions.hideelement.animation" id="actions.hideelement.animation"></a>

При создании нативных приложений вы можете воспользоваться нативной анимацией при скрытия группы, например скольжение. Это создаст более привычную механику. Выберите одну из настроек: None (Нет), Slide (Скольжение), and Flip (Переворот).

### Направление анимации (Animation direction) <a href="#actions.hideelement.direction" id="actions.hideelement.direction"></a>

Выберите направление анимации. Доступные варианты: Left (Влево), Right (Вправо), Up (Вверх) и Down (Вниз).

## Завершить рабочий процесс (Terminate this workflow) <a href="#actions.terminateworkflow" id="actions.terminateworkflow"></a>

Данное действие, будучи запущенным, немедленно завершает рабочий процесс. Используется вместе с условием действия, например: если условие не выполняется, то рабочий процесс продолжается; если выполняется, то рабочий процесс завершается. Если данное действие запущено внутри пользовательского процесса, то будет завершен только этот процесс, а не тот, из которого он был вызван.

## Переключить элемент (Toggle an element) <a href="#actions.toggleelement" id="actions.toggleelement"></a>

Данное действие используется для переключения состояния элемента. Если элемент видимый, то станет скрытым. Если элемент скрыт, то станет видимым.

## Установить состояние элемента (Set state of an element) <a href="#actions.setcustomstate" id="actions.setcustomstate"></a>

Назначьте пользовательское состояние для элемента, чтобы хранить дополнительную информацию. Например, текущую вкладку, отображаемую в группе и т.д. Данное действие изменяет значение состояния. Состояние элемента можно использовать для того, чтобы менять его отображение на основании значения данного состояния, с помощью раздела Conditional, который находится в Редакторе свойств (Property editor).

### Пользовательское состояние (Custom state) <a href="#actions.setcustomstate.custom_state" id="actions.setcustomstate.custom_state"></a>

Выберите изменяемое состояние. Создайте новое состояние, выбрав в выпадающем меню "Create a new custom state..."/"Создать новое пользовательское состояние"

### Значение (Value) <a href="#actions.setcustomstate.value" id="actions.setcustomstate.value"></a>

Это значение, которое будет присвоено пользовательскому состоянию. Его тип должен совпадать с тем типом пользовательского состояние, который был указан при его создании.

## Установить фокус на элемент ввода (Set focus to an input element) <a href="#actions.setfocustoelement" id="actions.setfocustoelement"></a>

Данное действие устанавливает фокус на элемент ввода. Если элемент в данный момент невидим на экране, страница перейдет на него автоматически.

## Очистить соответствующие поля ввода (Reset relevant inputs) <a href="#actions.resetinputs" id="actions.resetinputs"></a>

Данное действие стирает содержимое полей ввода, которые были задействованы в ходе рабочего процесса, содержащего данное действие. Это полезно в тех случаях, когда вы не хотите, чтобы пользователь дважды кликнул по кнопке и дважды запустил рабочий процесс. Результат полей ввода будет либо пустым, либо содержать значения по умолчанию, заданные для каждого из них.

## Отображать сообщение в элементе Alert (Show message in an alert box) <a href="#actions.alertshowmessage" id="actions.alertshowmessage"></a>

Данное действие отображает Alert. Оно отличается от действия "Show element", т.к. элемент может отображаться с анимацией появления и исчезания.

### Появление (мс) (Fade in (ms)) <a href="#actions.alertshowmessage.fade_in" id="actions.alertshowmessage.fade_in"></a>

Введите длительность анимации появления (в миллисекундах)

### Задержка (мс) (Hold (ms)) <a href="#actions.alertshowmessage.hold" id="actions.alertshowmessage.hold"></a>

Введите время видимости Alert\`а в миллисекундах.

### Затухание (мс) (Fade out (ms)) <a href="#actions.alertshowmessage.fade_out" id="actions.alertshowmessage.fade_out"></a>

Введите длительность анимации исчезания (в миллисекундах)

### Изменить сообщение элемента Alert (Change the alert message) <a href="#actions.alertshowmessage.change_message" id="actions.alertshowmessage.change_message"></a>

Поставьте здесь галочку, чтобы перезаписать сообщение, заданное на уровне элемента Alert.

### Сообщение (Message) <a href="#actions.alertshowmessage.message" id="actions.alertshowmessage.message"></a>

Введите новое сообщение, которое будет отображаться в элементе.

## Отобразить данные в группу/всплывающее окно (Display data in a group/popup) <a href="#actions.displaygroupdata" id="actions.displaygroupdata"></a>

Данное действие определяет, какие данные должна использовать группа или всплывающее окно, на основании типа содержимого, заданного на уровне элемента. Это данные имеют приоритет над полем data source, заданным на уровне группы/всплывающего окна.

### Отправляемые данные (Data to display) <a href="#actions.displaygroupdata.data_source" id="actions.displaygroupdata.data_source"></a>

Выберите сущность, которую нужно передать во всплывающее окно или группу. Если её тип не совпадает с типом элемента, выражение будет помечено красным цветом или всплывающее окно предложит вам изменить тип элемента.

## Сбросить группу/всплывающее окно (Reset a group/popup) <a href="#actions.resetgroup" id="actions.resetgroup"></a>

Данное действие сбрасывает содержимое группы или всплывающего окна. Когда это происходит поле data source возвращается к значению, изначально установленному на уровне элемента и все поля ввода очищаются.

## Отобразить список в повторяющую группу (Display list in a repeating group) <a href="#actions.displaylistdata" id="actions.displaylistdata"></a>

Данное действие определяет, какой список сущностей будет отображаться в повторяющей группе. Эти данные имеют приоритет над данными, заданными на уровне элемента.

### Источник данных (Data source) <a href="#actions.displaylistdata.data_source" id="actions.displaylistdata.data_source"></a>

Здесь задаётся список сущностей, который будет отображаться в повторяющей группе. Если их тип не совпадает с типом элемента, выражение будет помечено красным цветом или всплывающее окно предложит вам изменить тип элемента.

## Очистить список в повторяющей группе (Clear list in a repeating group) <a href="#actions.listclear" id="actions.listclear"></a>

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

## Показать следующий элемент в повторяющей группе (Show next of a repeating group) <a href="#actions.listshownext" id="actions.listshownext"></a>

При использовании настройки повторяющей группы "Fixed number of cells", данное действие используется для того, чтобы перейти к её следующей странице.

### Идти по кругу (Wrap around) <a href="#actions.listshownext.wrap_around" id="actions.listshownext.wrap_around"></a>

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

## Показать предыдущий элемент в повторяющей группе (Show previous of a repeating group) <a href="#actions.listshowprevious" id="actions.listshowprevious"></a>

При использовании настройки повторяющей группы "Fixed number of cells", данное действие используется для того, чтобы перейти к её предыдущей странице.

### Идти по кругу (Wrap around) <a href="#actions.listshowprevious.wrap_around" id="actions.listshowprevious.wrap_around"></a>

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

## Перейти к странице повторяющей группы (Go to page of a repeating group) <a href="#actions.listgotopage" id="actions.listgotopage"></a>

При использовании настройки повторяющей группы "Fixed number of cells", данное действие используется для того, чтобы перейти к заданной странице.

### Страница (Page) <a href="#actions.listgotopage.page" id="actions.listgotopage.page"></a>

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

## Перейти к записи в повторяющей группе (Scroll to entry of a repeating group) <a href="#actions.scrolltolistentry" id="actions.scrolltolistentry"></a>

Прокручивает повторяющую группу так, чтобы указанная запись оказалась на первой строке списка. Данное действие не работает, если установлена настройка "Fixed number of cells". В режиме бесконечного скроллинга (Infinite scroll) список будет прокручен до корректного элемента. В режиме Полного списка (Full list) вся страница будет прокручена так, чтобы нужная запись оказалась на первой строчке экрана.

### Целевая запись (Entry to scroll to) <a href="#actions.scrolltolistentry.entry" id="actions.scrolltolistentry.entry"></a>

Это запись, к которой нужно перейти. Если её нет в списке, то ничего не произойдет. Её тип должен совпадать с типом повторяющей группы.

### Анимировать переход (Animate the scrolling) <a href="#actions.scrolltolistentry.animate" id="actions.scrolltolistentry.animate"></a>

Поставьте галочку, чтобы добавить анимацию прокрутки длительностью в 300 миллисекунд.

## Отобразить метки на карте (Display markers on a map) <a href="#actions.displaymapmarkerdata" id="actions.displaymapmarkerdata"></a>

Данное действие перезаписывает список мест, отображаемых на карте. Оно принимает список сущностей, которые содержат географические адреса и отображает их на карте. При этом масштаб автоматически подбирается так, чтобы отобразить все метки.

### Источник данных (Data source) <a href="#actions.displaymapmarkerdata.data_source" id="actions.displaymapmarkerdata.data_source"></a>

Задайте список сущностей, которые должны отобразиться на карте. Если тип не совпадает с типом карты, то выражение помечается красным цветом или всплывающее окно предлагает изменить тип элемента.

## Очистить метки с карты (Clear markers on a map) <a href="#actions.clearmapmarkers" id="actions.clearmapmarkers"></a>

Данное действие убирает метки с карты и использует источник данных (data source), заданный на уровне карты.

## Подобрать масштаб карты (Adjust map zoom) <a href="#actions.mapadjustzoom" id="actions.mapadjustzoom"></a>

Данное действие автоматически подбирает масштаб карты, чтобы все метки были видны.

### Задать центр и масштаб вручную (Set center and zoom manually) <a href="#actions.mapadjustzoom.manual_setting" id="actions.mapadjustzoom.manual_setting"></a>

По умолчанию действие подбирает масштаб и центр карты так, чтобы все метки были видны на карте. Поставьте здесь галочку, чтобы задать масштаб и центр вручную.

### Центр карты в (Map centered on) <a href="#actions.mapadjustzoom.center" id="actions.mapadjustzoom.center"></a>

Это адрес, который будет помещен в центр карты.

### Начальный масштаб (Initial zoom) <a href="#actions.mapadjustzoom.initial_zoom" id="actions.mapadjustzoom.initial_zoom"></a>

Это масштаб, который будет применен к карте.
