﻿# Вкладка «Контекст»

> [HTML Version](360028941112.html)

На вкладке **Контекст** отображаются все свойства приложения. Каждое свойство — это отдельное поле для ввода данных в карточке создания, просмотра или редактирования. Каждое конкретное поле предназначено для внесения данных определённого типа. Например, свойство **Контактное лицо** имеет тип [Ф.И.О](360009707032.md#full-name). В карточке приложения оно отобразится как поле для ввода фамилии, имени и отчества контактного лица. 

**(context_tab-1.png)**

## Добавить свойство

Вы можете добавить новые свойства и указать, участвуют ли они в [поиске элемента приложения](360009669952.md). Для этого нажмите кнопку **+ Добавить**. В появившемся окне заполните поля:

**(context_tab-4.png)**

- **Отображаемое имя\*** — название свойства, которое будет отображаться на формах создания, просмотра и редактирования элемента приложения;

- **Имя свойства\*** — название свойства, использующееся при работе с API, скриптами, таблицами и т. д. Значение для поля генерируется автоматически. Обратите внимание, изменить значение поля можно только при создании свойства;

- **Подсказка**_ —_ дополнительная информация, поясняющая, каким образом можно заполнить поле на форме создания, просмотра или редактирования, например: **Выберите один вариант из списка**, **Внесите номер телефона в формате +7 9ХХ ХХХ ХХ ХХ**;

- **Тип\* **— [тип](360009707032.md) свойства, например, **Строка**, **Дата/время**, **Файлы** и т. д.;

- **Поиск и сортировка по полю **—** **отметьте опцию, чтобы значение данного поля использовалось в качестве параметра для [расширенного поиска](360009669952.md#expanded_search) по элементам приложения. Для свойства, отмеченного этой опцией, создаётся отдельный индекс в базе данных PostgreSQL;  

- **Быстрый поиск **— значение переменной будет участвовать в [быстром поиске](360009669952.md#full_text). Эта настройка становится доступной для полей типа **Строка**, если вы отметите флажком предыдущую опцию;

- **Заполняется по формуле** — эта опция доступна только для полей типа строка, число и деньги. Вы можете указать формулу, при помощи которой система будет автоматически рассчитывать значение для данного свойства. Подробнее читайте в статье [«Формулы и условное отображение полей»](360013448740.md); 

- **Отображается при выполнении условия** — эта опция позволяет скрывать или отображать свойство в зависимости от заданных вами условий. Подробнее читайте в статье [«Формулы и условное отображение полей»](360013448740.md). 

Обратите внимание, набор полей в данном окне может отличаться в зависимости от выбранного [типа свойства](360009707032.md).

После заполнения полей нажмите кнопку** Создать**.

Добавленное свойство можно отредактировать. Для этого нажмите на его название, внесите изменения и сохраните их.

## Удалить свойство

Вы можете использовать два способа, чтобы удалить свойство:

1. Мягкое удаление — позволяет в дальнейшем восстановить свойство. После такого удаления код, указанный в имени свойства, сохраняется. Вы не сможете создать новое свойство с таким же кодом.

2. Безвозвратное удаление — безвозвратно удаляет свойство и его код, заданный в имени свойства. После этого вы можете создать новое свойство с кодом, который использовался в удалённой переменной.

Для любого способа можно применить массовые действия. Зажмите клавишу **Ctrl** на клавиатуре и выделите нужные свойства, чтобы затем удалить их.

### Мягко удалить свойство

Выберите свойство в списке и в правом верхнем углу окна нажмите **Удалить**.

Чтобы восстановить свойство, включите опцию **Показывать удалённые переменные**, выберите нужное свойство в появившемся списке и нажмите **Восстановить**.

**(context_tab-2.png)**

Обратите внимание, свойства из списка удалённых переменных:

- не экспортируются вместе с приложением в другую компанию;

- сохраняются в последующих версиях приложения.

Если в определённой версии приложения добавлено свойство, оно сохранится мягко удалённым в предыдущих версиях приложения.

### Безвозвратно удалить свойство

Свойство можно удалить окончательно без возможности восстановления:

1. Предварительно проверьте, что свойство не используется в бизнес-процессах, виджетах, скриптах и других приложениях.

2. В списке **Удалённые переменные** выберите нужную строку и в правом верхнем углу окна нажмите **Удалить**.

3. Если текущее приложение содержит элементы, отобразится окно для их экспорта с целью предотвращения потери данных. Выберите действие:

**(context_tab-3.png)**

	- **Экспортировать данные сейчас** — откроется форма для выполнения [экспорта данных приложения](360009264480.md);

	- **Всё равно продолжить **— перейти к удалению свойства без экспорта данных.

4. В открывшемся окне подтвердите удаление свойства.

Обратите внимание, безвозвратно удалённые свойства не сохраняются ни в одной из версий приложения.

После внесения всех изменений сохраните настройки формы.

## Особенности сохранения контекста в версиях приложения

Если в системе активировано создание версий приложения, каждый раз при изменении его контекста создаётся новая версия приложения. Вы можете восстанавливать предыдущую версию приложения, чтобы сделать её текущей. Подробнее об этом читайте в статье [«Версионность структур в ELMA365»](elma365-structure-versioning.md).

При этом для переменных в контексте приложения применяются следующие правила:

- добавленная переменная сохраняется в последующих версиях приложения. При восстановлении предыдущей версии, где этой переменной ещё не было, она будет отмечена мягко удалённой;

- если вы [удаляете переменную](#delete), то:

	- мягко удалённая переменная сохраняется в последующих версиях с возможностью восстановить её. Код такой переменной нельзя использовать для создания новой переменной;

	- безвозвратно удалённая переменная и её код не сохраняются ни в одной версий приложения. Вы можете создать новую переменную с таким же кодом.

Рассмотрим пошаговый пример восстановления предыдущих версий приложения.

| | | |
|------|------|------|
| **Версии приложения** | **Порядок действий** | **Изменения в контексте приложения** |
| Версия 1 | Создайте приложение. | \- |
| Версия 2 | В контекст приложения добавьте переменную **А**. | Переменная **А **добавлена. |
| Версия 3 | Восстановите версию 1 приложения. | Переменная **А** отмечена мягко удалённой, поскольку её нет в версии 1. |
| Версия 4 | В контекст приложения добавьте переменную **В**. | - Переменная **А **отмечена мягко удалённой.<br>- Переменная **В** добавлена. |
| Версия 5 | Восстановите версию 2 приложения. | - Переменная **А **из версии 2** **добавлена. <br>- Переменная **В**  отмечена мягко удалённой, поскольку её нет в версии 2. |
