﻿# Настройка полей контракта

> [HTML Version](set-up-contract-fields.html)

Вся работа в **Контракте** ведётся с элементами добавленных в него [источников](add-contract-source.md) — приложений ELMA365 из любых разделов и решений. Чтобы добавить источник и настроить отображение его элементов на странице контракта, необходимо связать его поля с полями созданного контракта. После этого в поля контракта будут передаваться значения полей его источников. В дальнейшем вы сможете использовать их в бизнес-процессах и скриптах как переменные. 

В контракте используется два вида полей: 

- **Системные поля** — свойства, добавленные в контракт по умолчанию. Это поля, присутствующие в любом созданном в ELMA365 приложении: **Идентификатор**, **Дата создания**, **Автор**, **Дата изменения**, **Редактор**, **Дата удаления**, **Название**. А также добавленное только в контракт поле **Ссылка на оригинальный элемент**. С его помощью элемент в контракте связывается с элементом в приложении-источнике. Это поле удобно использовать, чтобы обращаться к оригинальному элементу в бизнес-процессах и скриптах. 

Системные поля нельзя удалить. При добавлении в контракт источника системные поля будут связываться друг с другом автоматически;

- **Пользовательские поля** — свойства, которые добавляются вручную в контекст контракта. Они передают в контракт другие поля источника, помимо системных. Обратите внимание, для корректной связи полей контракта и источника их [типы](360009707032.md) должны совпадать. Перед добавлением нового источника убедитесь, что в нём созданы все поля, которые соответствуют по типу каждому из полей контракта. Иначе подключить приложение к контракту невозможно.

## Создать поля контракта

Добавить пользовательские поля в контракт можно ещё на этапе его создания при открытии окна **Настройка полей**. Если вы пропустили этот шаг или вам понадобилось изменить свойства контракта, вы можете сделать это в настройках контрактов, выбрав пункт **Настройка полей**. 

При добавлении полей учитывайте, что поле такого же типа должно присутствовать во всех приложениях, с которыми планируется работать в контракте. Иначе подключить приложение к контракту невозможно.

Чтобы открыть настройки: 

1. Нажмите значок шестерёнки справа от названия контракта.

2. В открывшемся меню настроек выберите пункт **Настройка полей**. 

3. В появившемся окне создайте свойство контракта, нажав **+ Добавить**.  
**(contract-fields-1.png)**

4. В открывшемся окне выберите **Тип\*** свойства, укажите **Отображаемое имя\***. При необходимости укажите настройки, отличающиеся в зависимости от выбранного [типа свойства](360009707032.md). 

5. Нажмите кнопку **Создать**. Если нужно добавить ещё одно поле, нажмите кнопку **Создать и новое**. 

Поле отобразится в общем списке свойств. 

6. Включите для свойства опцию [Поиск и сортировка](360028941112.md#search), чтобы искать по нему элементы на странице контракта. Для полей типа **Строка** также доступна опция [Быстрый поиск](360028941112.md#full_text_search). 

Созданное в контракте свойство добавится в контекст источника. Если в нём уже присутствует свойство с аналогичным названием и типом, поля контракта и источника автоматически свяжутся.

Обратите внимание, если в контекст источника добавлено свойство с аналогичным названием, но другим типом, связь контракта и источника будет утеряна. Перейдите в [настройки источников контракта](add-contract-source.md#choose-source) и восстановите связь вручную, сопоставив поля одинаковых типов.

Чтобы удалить свойство из контракта, выделите его в списке, в правом верхнем углу нажмите кнопку **Удалить** и подтвердите действие. Для системных полей опция удаления не доступна.

### Пример связывания полей

Рассмотрим работу с полями контракта и источника на примере.

Предположим, вы создали контракт **Документы с контрагентами** и хотите связать его с приложениями **Исходящие договоры** и **Входящие счета**.

**Контракт** является пустым интерфейсом, в который передаются элементы других приложений. Чтобы настроить связь контракта и его источника, вам необходимо добавить пользовательские свойства в контекст контракта. В них будут передаваться данные из приложений, например, информация о контрагенте или сумме. Обратите внимание, чтобы источник подключился к контракту корректно, для каждого поля источника, которое вы хотите передать, необходимо создать схожее по типу свойство в контракте.

Перейдите в **Настройки контракта > Настройка полей**, как описано выше. Нажмите кнопку **+Добавить** и создайте свойство с названием **Компания** и типом [Приложение](app-data-type.md). В его настройках выберите приложение [Компании](360012584980.md) из раздела **CRM**. Таким же образом добавьте свойство **Сумма** с типом [Деньги](360009707032.md).

Теперь вы можете перейти в **Настройки источников** и добавить приложения **Исходящие договоры** и **Входящие счета**. При добавлении источников свяжите поле контракта **Компания** с полем **Контрагент** из обоих приложений. В поле **Сумма** передайте значения полей **Сумма договора** и **Сумма счёта**.

Поля контракта и источника, совпадающие по названию и типу, будут связываться автоматически.

Вы можете создать в контракте дополнительное свойство типа **Приложение**, чтобы записать в него значение поля **Тип договора** из приложения **Исходящие договоры**. Однако, в этом случае связь контракта с приложением **Входящие счета** может быть утеряна, если в этом источнике есть поле с таким же названием, но другим типом. На странице **Настройки источников** название такого источника будет отмечено красным шрифтом.

Если совпадений по названию нет, в приложении **Входящие счета** автоматически создастся новое поле.