---
title: Подключение к подсистеме Варианты отчетов
slug: общие-бсп-подключение-к-подсистемам/подключение-к-подсистеме-варианты-отчетов
---

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

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

- __контекстные варианты отчетов__ могут использоваться только в контексте работы с каким-либо объектом приложения (например, отчет по сотруднику, подразделению и т. п.). Как правило, такие варианты отчетов открываются из формы объекта и списков;
- __обычные варианты отчетов__ могут одинаково открываться из любого места приложения (например, из панели отчетов), не требуя передачи контекста. Как правило, такие варианты отчетов открываются из командного интерфейса.

## Настройка объектов конфигурации
Настройка подсистемы состоит из следующих этапов:

- Подключить хранилище вариантов отчетов.
- Подключить форму отчета.
- Подключить подсистему к разделам командного интерфейса.
- Установить настройки вариантов отчетов.
- Подключить контекстные отчеты.
- Установить настройки формы отчета.
- Обновить данные справочника ВариантыОтчетов.

### Подключение хранилища вариантов
![Изображение](/bsp-varianty-otchetov/0.png)

### Подключение форм отчетов
Необходимо указать в свойствах конфигурации общие формы:
- основная форма отчета – `ФормаОтчета`;
- основная форма настроек отчета – `ФормаНастроекОтчета`;
- основная форма варианта отчета – `ФормаВариантаОтчета`.

![Изображение](/bsp-varianty-otchetov/1.png)

### Подключить подсистему к разделам командного интерфейса
Необходимо определить разделы командного интерфейса, в которых должны быть **размещены панели отчетов**

Для каждого раздела необходимо создать отдельную **общую команду** для открытия панели отчетов.
**Имя команды** рекомендуется задавать по шаблону `ПанельОтчетов<ИмяРаздела>`, например `ПанельОтчетовПродажи`.
**Синоним команды** рекомендуется определять по шаблону `Отчеты по <ПредставлениеРаздела>`, например `Отчеты по продажам`.

В **обработчике команды** необходимо вставить вызов по шаблону:
```bsl
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполнения)
    ВариантыОтчетовКлиент.ПоказатьПанельОтчетов("<ИмяРаздела>", ПараметрыВыполнения);
КонецПроцедуры
```
<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
<summary style="font-weight: bold; cursor: pointer;">Панель отчетов в разделе "Главное"</summary>
    
Для того чтобы в первом параметре <ИмяРаздела> указать **начальную страницу**, следует использовать функцию `ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы`:

```bsl
ВариантыОтчетовКлиент.ПоказатьПанельОтчетов(
    ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(), 
    ПараметрыВыполнения);
```

</details>

Выбранные разделы необходимо перечислить в процедуре `ОпределитьРазделыСВариантамиОтчетов` общего модуля `ВариантыОтчетовПереопределяемый`. В представлениях разделов (используются в качестве заголовков панелей отчетов) рекомендуется указывать **синонимы команд**, созданных на предыдущем шаге.
```bsl
Процедура ОпределитьРазделыСВариантамиОтчетов(Разделы) Экспорт
    
    Разделы.Добавить(Метаданные.Подсистемы.Анкетирование, НСтр("ru = 'Отчеты по анкетированию'"));
    Разделы.Добавить(ВариантыОтчетовКлиентСервер.ИдентификаторНачальнойСтраницы(), НСтр("ru = 'Основные отчеты'"));	
    
КонецПроцедуры
```

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

### Установить настройки вариантов отчетов
Настройки вариантов отчетов задаются в процедуре `НастроитьВариантыОтчетов` общего модуля `ВариантыОтчетовПереопределяемый`

```bsl
Процедура НастроитьВариантыОтчетов(Настройки) Экспорт

    ВариантыОтчетов.НастроитьОтчетВМодулеМенеджера(Настройки, Метаданные.Отчеты.ИмяОтчета);
    
КонецПроцедуры
```

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

// Параметры:
//   Настройки - см. ВариантыОтчетовПереопределяемый.НастроитьВариантыОтчетов.Настройки.
//   НастройкиОтчета - см. ВариантыОтчетов.ОписаниеОтчета.
//
Процедура НастроитьВариантыОтчета(Настройки, НастройкиОтчета) Экспорт
    
    МодульВариантыОтчетов = ОбщегоНазначения.ОбщийМодуль("ВариантыОтчетов");
    МодульВариантыОтчетов.УстановитьРежимВыводаВПанеляхОтчетов(Настройки, НастройкиОтчета, Ложь);
    
    НастройкиОтчета.ОпределитьНастройкиФормы = Истина;
    
    НастройкиВарианта_Горизонталь = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Основной");
    НастройкиВарианта_Горизонталь.Описание = НСтр("ru = 'Горизонтальное размещение колонок с измерениями, ресурсами и реквизитами регистров.'");
    НастройкиВарианта_Горизонталь.НастройкиДляПоиска.КлючевыеСлова = НСтр("ru = 'Движения документа'");
    НастройкиВарианта_Горизонталь.Включен = Ложь;
    НастройкиВарианта_Горизонталь.ПоказыватьВПодменюВариантов = Истина;
    
    НастройкиВарианта_Вертикаль = ВариантыОтчетов.ОписаниеВарианта(Настройки, НастройкиОтчета, "Дополнительный");
    НастройкиВарианта_Вертикаль.Описание = НСтр("ru = 'Вертикальное размещение колонок с измерениями, ресурсами и реквизитами позволяет расположить данные более компактно, для просмотра регистров с большим количеством колонок.'");
    НастройкиВарианта_Вертикаль.НастройкиДляПоиска.КлючевыеСлова = НСтр("ru = 'Движения документа'");
    НастройкиВарианта_Вертикаль.Включен = Ложь;
    НастройкиВарианта_Вертикаль.ПоказыватьВПодменюВариантов = Истина;

КонецПроцедуры

```

<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
<summary style="font-weight: bold; cursor: pointer;">Подробное описание аргументов "Настройки" и "НастройкиОтчета"</summary>
    
- `Включен` – если установить в `Ложь`, то вариант отчета не регистрируется в справочнике и, как следствие, не выводится в панелях отчетов и других формах подсистемы (всегда скрыт от пользователей). При этом вариант отчета остается в конфигурации, и его по-прежнему можно открывать при программном открытии формы отчета. Например, **может потребоваться отключение контекстных вариантов отчетов**.

- `ВидимостьПоУмолчанию` – если установить в `Ложь`, то вариант отчета по умолчанию будет скрыт на панелях отчетов. Скрытый вариант отчета можно вывести на панель отчетов администратору – сразу для всех пользователей (через форму элемента), пользователю – на свою панель отчетов (через режим настройки). Например, может потребоваться скрывать менее частотные варианты отчетов.

- `Описание` – служит подсказкой на панели отчетов и содержит более подробное описание варианта отчета. **Свойство рекомендуется заполнять, поскольку участвует в поиске отчета**.

- `Размещение` – служит для привязки вариантов отчетов к подсистемам конфигурации. Подсистемы первого уровня считаются разделами, второго и выше – группами. Если вариант включен в раздел, то на панели отчетов он будет выведен без группы. При необходимости для каждой подсистемы можно указать `Важность`:
  - `Важный` – вариант отчета будет выделен жирным шрифтом и размещен в начале группы.
  - `СмТакже` – вариант отчета будет выведен внизу панели отчетов, в группе См. также.

- `ФункциональныеОпции` – служит для скрытия вариантов отчетов по функциональным опциям. Содержит **массив строк из имен функциональных опций** конфигурации. Вариант отчета считается включенным в том случае, если включена одна из функциональных опций отчета (если они указаны) и одна из функциональных опций варианта отчета (если они указаны).

- `НастройкиДляПоиска` – дополнительные сведения для поиска этого варианта отчета. Является структурой со следующими свойствами:
  - `НаименованияПолей` – представления полей варианта отчета;
  - `НаименованияПараметровИОтборов` – представления настроек варианта отчета;
  - `КлючевыеСлова` – дополнительная терминология (в т. ч. специализированная или устаревшая).

</details>


### Подключить контекстные отчеты

**Контекстный отчёт** — это отчёт, доступ к которому осуществляется из формы конкретного объекта конфигурации (справочника, документа, регистра и т.д.) и который автоматически строится с учётом выбранного в данный момент элемента или данных.

Иными словами, контекстный отчёт показывает информацию **в контексте текущего объекта** — например:

* для документа — отчёт о его движениях по регистрам;
* для элемента справочника — отчёт об использовании этого элемента;
* для регистра — отчёт по связанным данным.

Главная особенность — **автоматическая передача параметров** из текущего объекта в отчёт, что упрощает работу пользователя.

Для подключения контекстных отчетов к объектам конфигурации следует:

1. Объекты метаданных, для которых требуется выводить команды отчетов, перечислить в процедуре `ОпределитьОбъектыСКомандамиОтчетов` модуля `ВариантыОтчетовПереопределяемый`.
2. В **модуле менеджера** каждого из этих объектов в области `ПрограммныйИнтерфейс` определить пустую процедуру **ДобавитьКомандыОтчетов** по шаблону:
   
```bsl

// Параметры:
//  КомандыОтчетов - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.КомандыОтчетов
//  Параметры - см. ВариантыОтчетовПереопределяемый.ПередДобавлениемКомандОтчетов.Параметры
//
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт

    // например
    Если ПравоДоступа("Просмотр", Метаданные.Отчеты.КонтрольРассылкиОтчетов) Тогда
        Команда = КомандыОтчетов.Добавить();
        Команда.Представление = НСтр("ru = 'Контроль рассылки отчетов'");
        Команда.КлючВарианта  = "КонтрольРассылкиОтчетов";
        Команда.Картинка  = БиблиотекаКартинок.Отчет;
        Команда.МножественныйВыбор = Ложь;
        Команда.Менеджер = "Отчет.КонтрольРассылкиОтчетов";
        Команда.ТипПараметра = Новый ОписаниеТипов("СправочникСсылка.РассылкиОтчетов");
    КонецЕсли;

    // Или для конкретной формы
    Если Не ПравоДоступа("Просмотр", Метаданные.Отчеты.СертификатыЭлектроннойПодписи) Тогда
        Возврат;
    КонецЕсли;
    
    Если Параметры.ИмяФормы = "ОбщаяФорма.НастройкиЭлектроннойПодписиИШифрования" Тогда
        Команда = КомандыОтчетов.Добавить();
        Команда.КлючВарианта      = "СертификатыЭлектроннойПодписи";
        Команда.Представление     = НСтр("ru = 'Сертификаты электронной подписи'");
        Команда.Идентификатор     = "СертификатыЭлектроннойПодписи";
        Команда.Менеджер          = "Отчет.СертификатыЭлектроннойПодписи";
        Команда.Неконтекстный     = Истина;
        
        Команда = КомандыОтчетов.Добавить();
        Команда.КлючВарианта      = "ЗаканчиваетсяСрокДействия";
        Команда.Представление     = НСтр("ru = 'Сертификаты, у которых заканчивается срок действия'");
        Команда.Идентификатор     = "ЗаканчиваетсяСрокДействия";
        Команда.Менеджер          = "Отчет.СертификатыЭлектроннойПодписи";
        Команда.Неконтекстный     = Истина;
        
        Команда = КомандыОтчетов.Добавить();
        Команда.КлючВарианта      = "ТребуетсяМЧД";
        Команда.Представление     = НСтр("ru = 'Сертификаты, для которых требуется МЧД'");
        Команда.Идентификатор     = "ТребуетсяМЧД";
        Команда.Менеджер          = "Отчет.СертификатыЭлектроннойПодписи";
        Команда.Неконтекстный     = Истина;
    КонецЕсли;

КонецПроцедуры

```
3. Встроить в формы объектов метаданных подсистему **ПодключаемыеКоманды**
В `командную панель`, для целей оптимизации производительности, рекомендуется добавить подменю для вывода команд отчетов:
Имя: `ПодменюОтчеты`,
Заголовок: `Отчеты`,
Вид: `Подменю`,
Отображение: `Картинка`.
Картинка: `Отчет` (стандартная картинка).

Для вывода в подменю `Отчеты` **большого количества команд** (более 10) рекомендуется добавить **вложенные** группы кнопок с суффиксами `Важное`, `Обычное` и `СмТакже`. Например: `ПодменюОтчетыВажное`, `ПодменюОтчетыОбычное` и `ПодменюОтчетыСмТакже`. Тогда разработчики команд контекстных отчетов смогут указывать суффиксы этих групп в свойстве Важность своих команд.

### Установить настройки формы очтета

Если в процедуре `НастроитьВариантыОтчета` установить свойство структуры `НастройкиОтчета.ОпределитьНастройкиФормы`  в значение `Истина`, то в **модуле объекта** отчета следует определить процедуру `ОпределитьНастройкиФормы` по шаблону:

```bsl
// Параметры:
//   Форма - ФормаКлиентскогоПриложения, Неопределено
//   КлючВарианта - Строка, Неопределено
//   Настройки - см. ОтчетыКлиентСервер.НастройкиОтчетаПоУмолчанию
//
Процедура ОпределитьНастройкиФормы(Форма, КлючВарианта, Настройки) Экспорт
    
КонецПроцедуры
```

`Настройки` формы отчета задаются в процедуре `ОпределитьНастройкиФормы` модуля объекта отчета, в которой можно задать значения следующим параметрам:

 - `ФормироватьСразу` – если установить в значение `Истина`, то отчет будет формироваться после открытия, после выбора пользовательских настроек и после выбора другого варианта отчета. По умолчанию – `Ложь`.
 - `ВыводитьСуммуВыделенныхЯчеек` – если установить в значение `Ложь`, то в отчете не будет выводиться поле с автоматически рассчитываемой суммой выделенных ячеек. По умолчанию – `Истина`.
 - `РазрешеноИзменятьСтруктуру` – если установить в значение `Ложь`, то в настройках отчета будет скрыта вкладка `Структура`. По умолчанию – `Истина`. По умолчанию вкладка `Структура` показывается для отчетов на СКД – в расширенном режиме, а также в простом режиме, если в пользовательские настройки выведены флажки использования группировок.
 - `РазрешеноИзменятьВарианты` – если установить в значение `Ложь`, то в форме отчета и настроек скрываются кнопки изменения вариантов этого отчета. Если у текущего пользователя нет прав `СохранениеДанныхПользователя` и `Добавление` справочника `ВариантыОтчетов`, то принудительно устанавливается в `Ложь`. По умолчанию – `Истина`.
- `Печать` – `Структура` – параметры печати табличного документа (могут переопределяться пользователем):
  - `ПолеСверху` – `Число` – отступ сверху при печати (в миллиметрах);
  - `ПолеСлева` – `Число` – отступ слева при печати (в миллиметрах);
  - `ПолеСнизу` – `Число` – отступ снизу при печати (в миллиметрах);
  - `ПолеСправа` – `Число` – отступ справа при печати (в миллиметрах);
  - `ОриентацияСтраницы` – `ОриентацияСтраницы` – Портрет или Ландшафт;
  - `АвтоМасштаб` – `Булево` – автоматически подгонять масштаб под размер страницы;
  - `МасштабПечати` – `Число` – масштаб изображения (в процентах).
- `События` – `Структура` – события, для которых определены обработчики в модуле объекта отчета (обработчики событий рекомендуется определять в области ПрограммныйИнтерфейс, **после процедуры** `ОпределитьНастройкиФормы`):

<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
<summary style="font-weight: bold; cursor: pointer;">Подробнее про события</summary>

  - `ПриСозданииНаСервере` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПриСозданииНаСервере` по шаблону:

```bsl
// См. ОтчетыПереопределяемый.ПриСозданииНаСервере.
Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

КонецПроцедуры
```
  - `ПередЗагрузкойНастроекВКомпоновщик` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПередЗагрузкойНастроекВКомпоновщик` по шаблону
  
```bsl
// Параметры:
//   Контекст - Произвольный
//   КлючСхемы - Строка
//   КлючВарианта - Строка, Неопределено
//   НовыеНастройкиКД - НастройкиКомпоновкиДанных, Неопределено
//   НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных, Неопределено
//
Процедура ПередЗагрузкойНастроекВКомпоновщик(Контекст, КлючСхемы, КлючВарианта, НовыеНастройкиКД, НовыеПользовательскиеНастройкиКД) Экспорт
    
КонецПроцедуры
```
Вызывается перед загрузкой новых настроек, используется для изменения СКД.

<details style="margin: 1em 0; padding: 0.5em; border: 1px solid #ccc; border-radius: 6px;">
<summary style="font-weight: bold; cursor: pointer;">Примеры</summary>

Пример № 1. Компоновщик отчета инициализируется на основании схемы из общих макетов:

```bsl
Если КлючСхемы <> "1" Тогда
    КлючСхемы = "1";
    СхемаКД = ПолучитьОбщийМакет("МояОбщаяСхемаКомпоновки");
    ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКД, КлючСхемы);
КонецЕсли;
```

Пример № 2. Схема зависит от значения параметра, выведенного в пользовательские настройки отчета:

```bsl
Если ТипЗнч(НовыеПользовательскиеНастройкиКД) = Тип("ПользовательскиеНастройкиКомпоновкиДанных") Тогда
    ПолноеИмяОбъектаМетаданных = "";
    Для Каждого ЭлементКД Из НовыеПользовательскиеНастройкиКД.Элементы Цикл
        Если ТипЗнч(ЭлементКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
            ИмяПараметра = Строка(ЭлементКД.Параметр);
            Если ИмяПараметра = "ОбъектМетаданных" Тогда
                ПолноеИмяОбъектаМетаданных = ЭлементКД.Значение;
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Если КлючСхемы <> ПолноеИмяОбъектаМетаданных Тогда
        КлючСхемы = ПолноеИмяОбъектаМетаданных;
        СхемаКД = Новый СхемаКомпоновкиДанных;
        // Наполнение схемы...
        ОтчетыСервер.ПодключитьСхему(ЭтотОбъект, Контекст, СхемаКД, КлючСхемы);
    КонецЕсли;
КонецЕсли;
```

</details>

  - `ПослеЗагрузкиНастроекВКомпоновщик` если `Истина`, то в модуле объекта отчета следует определить процедуру `ПослеЗагрузкиНастроекВКомпоновщик` по шаблону:

```bsl
//  Параметры:
//    ДополнительныеПараметры - Структура
//
Процедура ПослеЗагрузкиНастроекВКомпоновщик(ДополнительныеПараметры) Экспорт

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

  - `ПередЗагрузкойВариантаНаСервере` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПередЗагрузкойВариантаНаСервере` по шаблону:

```bsl
// См. ОтчетыПереопределяемый.ПередЗагрузкойВариантаНаСервере.
Процедура ПередЗагрузкойВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
    
КонецПроцедуры
```
Вызывается в обработчике одноименного события формы отчета и формы настройки отчета. Подробнее см. "Расширение управляемой формы для отчета.ПередЗагрузкойВариантаНаСервере" в синтакс-помощнике.

  - `ПриЗагрузкеВариантаНаСервере` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПриЗагрузкеВариантаНаСервере` по шаблону:

```bsl
// Параметры:
//   Форма - ФормаКлиентскогоПриложения
//         - РасширениеУправляемойФормыДляОтчета:
//     * Отчет - ДанныеФормыСтруктура
//             - ОтчетОбъект
//   НовыеНастройкиКД - НастройкиКомпоновкиДанных
//
Процедура ПриЗагрузкеВариантаНаСервере(Форма, НовыеНастройкиКД) Экспорт
    
КонецПроцедуры 
```
Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. Подробнее см. "Расширение управляемой формы для отчета.ПриЗагрузкеВариантаНаСервере" в синтакс-помощнике.

  - `ПриЗагрузкеПользовательскихНастроекНаСервере` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПриЗагрузкеПользовательскихНастроекНаСервере` по шаблону:

```bsl
// Параметры:
//   Форма - ФормаКлиентскогоПриложения
//   НовыеПользовательскиеНастройкиКД - ПользовательскиеНастройкиКомпоновкиДанных
//
Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Форма, НовыеПользовательскиеНастройкиКД) Экспорт
    
КонецПроцедуры
```
Вызывается в обработчике одноименного события формы отчета после выполнения кода формы. Подробнее см. "Расширение управляемой формы для отчета.ПриЗагрузкеПользовательскихНастроекНаСервере" в синтакс-помощнике.

  - `ПередЗаполнениемПанелиБыстрыхНастроек` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПередЗаполнениемПанелиБыстрыхНастроек` по шаблону:

```bsl
// Параметры:
//   Форма - ФормаКлиентскогоПриложения
//   ПараметрыЗаполнения - Структура
//
Процедура ПередЗаполнениемПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
    
КонецПроцедуры
```
Вызывается до перезаполнения панели настроек формы отчета.

  - `ПослеЗаполненияПанелиБыстрыхНастроек` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПослеЗаполненияПанелиБыстрыхНастроек` по шаблону:

```bsl

// Параметры:
//   Форма - ФормаКлиентскогоПриложения
//   ПараметрыЗаполнения - Структура
//
Процедура ПослеЗаполненияПанелиБыстрыхНастроек(Форма, ПараметрыЗаполнения) Экспорт
    
КонецПроцедуры

```
Вызывается после перезаполнения панели настроек формы отчета.

  - `ПриОпределенииОсновныхПолей` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПриОпределенииОсновныхПолей` по шаблону:

```bsl
// См. ОтчетыПереопределяемый.ПриОпределенииОсновныхПолей.
Процедура ПриОпределенииОсновныхПолей(Форма, ОсновныеПоля) Экспорт
    
КонецПроцедуры
```
Позволяет задать список часто используемых полей, которые будут выводиться в подменю для команд контекстного меню "Вставить поле слева", "Вставить группировку ниже" и т.п.
  
  - `ПередФормированиемОтчета` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПередФормированиемОтчета` по шаблону:

```bsl

// Параметры:
//   ФормаОтчета - ФормаКлиентскогоПриложения
//   ДополнительныеПараметры - Структура:
//     * ТекстПредупреждения - Строка
//     * ИмяПараметраХраненияОтказаОтПредупреждения - Строка
//
Процедура ПередФормированиемОтчета(Форма, ДополнительныеПараметры) Экспорт
    
КонецПроцедуры

```
Позволяет перед формированием отчета показать вопрос с текстом `ТекстПредупреждения` и кнопками `Продолжить` и `Отмена`. Например, предупредить о том, что отчет будет очень долго формироваться и потребует много памяти и порекомендовать более узкую настройку отборов. Если также задать свойство `ИмяПараметраХраненияОтказаОтПредупреждения`, то в окне вопроса появится опция больше его не показывать

  - `ПриОпределенииПараметровВыбора` – если установить в значение `Истина`, то в модуле объекта отчета следует определить процедуру `ПриОпределенииПараметровВыбора` по шаблону:

```bsl
// См. ОтчетыПереопределяемый.ПриОпределенииПараметровВыбора.
Процедура ПриОпределенииПараметровВыбора(Форма, СвойстваНастройки) Экспорт
    
КонецПроцедуры
```
Вызывается в форме отчета и в форме настройки отчета перед выводом настройки для указания дополнительных параметров выбора. Это устаревшее событие, вместо него рекомендуется применять событие `ПослеЗагрузкиНастроекВКомпоновщик`.

</details>

### Обновить данные справочника ВариантыОтчетов

- Для **перезаполнения** этих данных (рекомендуется при разработке) предназначена внешняя обработка ОбновлениеВспомогательныхДанных.epf, которая входит в состав дистрибутива библиотеки.
- Для **стандартного обновления** (только в части изменений конфигурации) можно указать параметр запуска `ЗапуститьОбновлениеИнформационнойБазы` в конфигураторе или через параметр командной строки /С.
- При закладке изменений в хранилище, которые могут привести к необходимости обновления вспомогательных данных, можно увеличивать номер версии конфигурации, тогда у других участников коллективной разработки автоматически запустятся обязательные обработчики обновления.