# Форма отчёта

Форма, подключённая к объекту-отчёту (`Report`). Кроме обычных свойств формы у неё есть несколько свойств в `properties`, связывающих форму с механизмом компоновки (СКД): куда выводится результат, где данные расшифровки, какого она типа. Все они задаются в блоке `properties` верхнего уровня.

```json
"properties": {
  "reportFormType": "Main",
  "reportResult": "РезультатОтчета",
  "detailsData": "ДанныеРасшифровки"
}
```

Ни одно из этих свойств не обязательно — указывайте только те, что нужны конкретной форме.

## Тип формы отчёта (`reportFormType`)

Роль формы в составе отчёта:

| Значение | Назначение |
|----------|-----------|
| `Main` | Основная форма отчёта (результат + настройки) |
| `Settings` | Форма настроек |
| `Variant` | Форма варианта |

```json
"reportFormType": "Main"
```

## Привязка к компоновке

| Ключ | Тип | Назначение |
|------|-----|-----------|
| `reportResult` | string | Имя реквизита-результата формы (табличный документ, куда выводится отчёт) |
| `detailsData` | string | Имя реквизита данных расшифровки |
| `variantAppearance` | string | Имя реквизита оформления варианта |

Значение каждого ключа — имя реквизита формы (а не путь к данным). Реквизит с таким именем должен присутствовать в `attributes` формы.

## Группа пользовательских настроек (`customSettingsFolder`)

Группа-элемент формы, в которую генерируются пользовательские настройки компоновщика. Задаётся **по имени** элемента-группы:

```json
"customSettingsFolder": "ГруппаПользовательскихНастроек"
```

## Прочие свойства компоновки

Редкие, задавайте только при явной необходимости:

| Ключ | Значения | Назначение |
|------|----------|-----------|
| `autoShowState` | `Auto`, `DontShow`, `ShowOnComposition` | Автопоказ состояния формирования |
| `reportResultViewMode` | `Auto` | Режим просмотра результата |
| `viewModeApplicationOnSetReportResult` | `Auto` | Применение режима просмотра при установке результата |

## Реалистичный пример

Основная форма отчёта со СКД: реквизит-результат, данные расшифровки и группа пользовательских настроек.

```json
{
  "properties": {
    "reportFormType": "Main",
    "reportResult": "РезультатОтчета",
    "detailsData": "ДанныеРасшифровки",
    "customSettingsFolder": "ГруппаПользовательскихНастроек"
  },
  "attributes": [
    { "name": "РезультатОтчета", "type": "SpreadsheetDocument" },
    { "name": "ДанныеРасшифровки", "type": "DataCompositionDetailsData" }
  ],
  "elements": [
    { "group": "vertical", "name": "ГруппаПользовательскихНастроек" },
    { "spreadsheet": "РезультатОтчета", "path": "РезультатОтчета",
      "titleLocation": "none" }
  ]
}
```
