Добрый день.

Задача следующая: при нажатии на кнопку обработки должен открыться отчет и сразу сфомироваться. Отчет должен сформироваться на базе таблицы значений которая передается в СКД через набор данных.

В отчете создал обработчик. В форму передается ТЗ как параметр.:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("ТЗ") Тогда
    ТЗДанных = Параметры.ТЗ.Получить(0);
    ДокументОбъект = РеквизитФормыВЗначение("Отчет");
    ДокументОбъект.ПриСозданииНаСервере(ЭтаФорма, Ложь, Ложь, ДанныеИзОбработки);
    КонецЕсли;
    КонецПроцедуры
```

Дальше открывается процедура в модуле объекта. И после срабатывает процедура ПриКомпоновкеРезультата.

```1c
    Процедура ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка, ДанныеИзОбработки) Экспорт
    ПриКомпоновкеРезультата(Неопределено, Неопределено, Ложь, ДанныеИзОбработки);
    КонецПроцедуры

    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка, ДанныеИзОбработки)

    СтандартнаяОбработка = Ложь;
    внешниеДанные = новый Структура("таблицаДанных", ДанныеИзОбработки);

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

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

Но отчет не формируется. То есть просто фраза "Отчет не сформирован". В чем может быть проблема?
---
Спасибо, натолкнули на правильную мысль.

Проблема была в том что я в обработку ПриКомпоновкеРезультата передавал ДокументРезультат = неопределенно, а ДокументРезультат это как раз и есть результат отчета. На форме есть реквизит ДокументРезультат. Его и надо передавать в обработку. Чтобы процедура ПриКомпоновкеРезультата заполняла данными именно ДокументРезультат из формы.

Ну а чтобы избавиться от поля которое затемняет отчет и пишет "отчет не сформирован" решается ЭтаФорма.АвтоОтображениеСостояния = РежимАвтоОтображенияСостояния.НеОтображать;
---
Это все лишнее.
- Можете задать параметр формы (СП: СформироватьПриОткрытии (GenerateOnOpen));

//ПриКомпановке результата не нужно вызывать самостоятельно. Это событие вызовется при формировании отчета.

- Еще по схожему вопросу есть обсуждение: https://forum.infostart.ru/forum9/topic93901/

- Ну и совсем харкорный вариант: Shell script^ ctrl+enter при открытии формы - но это в виде извращения)
---
Спасибо, натолкнули на правильную мысль.

Проблема была в том что я в обработку ПриКомпоновкеРезультата передавал ДокументРезультат = неопределенно, а ДокументРезультат это как раз и есть результат отчета. На форме есть реквизит ДокументРезультат. Его и надо передавать в обработку. Чтобы процедура ПриКомпоновкеРезультата заполняла данными именно ДокументРезультат из формы.

Ну а чтобы избавиться от поля которое затемняет отчет и пишет "отчет не сформирован" решается ЭтаФорма.АвтоОтображениеСостояния = РежимАвтоОтображенияСостояния.НеОтображать;