# Параметры выбора и связь по типу

Свойства поля ввода (`input`), управляющие выбором значения: чем ограничен список выбора и каким будет тип значения. Имена параметров — строки 1С как есть (`"Отбор.Х"`).

```json
{ "input": "Контрагент", "path": "Объект.Контрагент",
  "choiceParameters": [
    { "name": "Отбор.Активный", "value": true },
    { "name": "Отбор.ВидПродукции", "value": ["Enum.Виды.Агрохимикат", "Enum.Виды.Пестицид"] }
  ],
  "choiceParameterLinks": [
    { "name": "Отбор.Организация", "dataPath": "Объект.Организация" },
    { "name": "Отбор.Тип", "dataPath": "Объект.Тип", "valueChange": "DontChange" }
  ],
  "typeLink": { "dataPath": "Объект.ЗначениеДата", "linkItem": 0 }
}
```

## Параметры выбора (`choiceParameters`)

Фиксированные значения параметров выбора, отбирающие список значений независимо от данных формы. Массив объектов `{ name, value }`:

- `name` — имя параметра (`"Отбор.Активный"`).
- `value` — значение. Допустимы: bool, число, строка, ISO-дата (`"2020-01-01T00:00:00"`), ссылка-путь (`Enum.X.Y`, `Catalog.X`). **Массив** значений задаёт фиксированный массив.

Короткая форма — строки `"name=value"`; значение с запятыми становится массивом, `true`/`false` → bool, число → число, остальное → строка/ссылка:

```json
"choiceParameters": [
  "Отбор.Активный=true",
  "Отбор.ВидПродукции=Enum.Виды.Агрохимикат, Enum.Виды.Пестицид"
]
```

## Связи параметров выбора (`choiceParameterLinks`)

Параметры выбора, значение которых берётся из **другого поля формы** (а не задано фиксированно). Типовой случай — отбор списка договоров по выбранному контрагенту. Массив объектов `{ name, dataPath, valueChange? }`:

- `name` — имя параметра выбора.
- `dataPath` — путь к полю формы, чьё значение подставляется в параметр.
- `valueChange` — что делать с уже выбранным значением при смене источника: `Clear` (очистить, необязательно — поведение по умолчанию) / `DontChange` (не менять).

```json
{ "input": "Договор", "path": "Объект.Договор",
  "choiceParameterLinks": [
    { "name": "Отбор.Владелец", "dataPath": "Объект.Контрагент" }
  ]
}
```

Короткая форма — строки `"name=dataPath"`, опциональный хвост `:Clear` / `:DontChange`:

```json
"choiceParameterLinks": [ "Отбор.Организация=Объект.Организация", "Отбор.Тип=Объект.Тип:DontChange" ]
```

## Связь по типу (`typeLink`)

Тип значения поля определяется другим полем формы (напр. поле «Значение» субконто, тип которого задаётся выбранным видом субконто). Объект `{ dataPath, linkItem }`:

- `dataPath` — путь к полю, задающему тип.
- `linkItem` — индекс элемента связи (необязательно, по умолчанию `0`).

```json
"typeLink": { "dataPath": "Объект.ВидСубконто", "linkItem": 0 }
```

Короткая форма — строка `"dataPath"` либо `"dataPath#linkItem"`:

```json
"typeLink": "Объект.ВидСубконто"
"typeLink": "Объект.ВидСубконто#1"
```
