Обычные формы. 8,2

Без изменения Отчета, процедуры Экспорт
---
(10)
Ребята все просто :)))

Если отчет на СКД

то в обработке добавляем как обычно "Форму"
в форме модуля пишем код

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    //Получаем схему из макета
    Отчет = Отчеты.есэ_РезервыТоваров.Создать(); // отчет наш "есэ_РезервыТоваров" замените своим
    СхемаКомпоновкиДанных = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    //Из схемы возьмем настройки по умолчанию
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

    //Помещаем в переменную данные о расшифровке данных
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    //Формируем макет, с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки, ДанныеРасшифровки);

    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);

    //Очищаем поле табличного документа
    Результат = ЭлементыФормы.Результат;
    Результат.Очистить();

    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);

    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    КонецПроцедуры
```
---
Как-то так

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

{ОбщийМодуль.ТиповыеОтчеты.Модуль(434)}: Поле объекта не обнаружено (ЗначенияНастроекПанелиПользователя)
 Если ОтчетОбъект.ЗначенияНастроекПанелиПользователя = Неопределено Тогда
---
отчет построен не на "Универсальном отчете"
---
Это лишь пример использования, не обязательно конечно всё это добавлять. В конфигурации поищите по слову "Отчеты." и найдете еще различные варианты
---
тчет построен не на "Универсальном

есть на скд

есть на универсальном
---
тогда -- программно открываем диалог выбора файла. получаем путь к двоичному файлу. затем создаем интерфейс "Внешнего отчета". подключаем двоичные данные. вызываем функцию объекта "Печать" и помещаем результат в табличное поле своей обработки.
---
тогда самый простой вариант:

Отчет = Отчеты.КакойТоОтчет.Создать();
ТабДокумент = Новый ТабличныйДокумент;
Отчет.СформироватьОтчет(ТабДокумент);
---
запускается, но пишет

Не указан период формирования отчета
Не указан интервал
---
Если интервал задается в реквизитах отчета, то соответственно надо прописать

```1c
    Отчет.НачалоПериода = ВашаДатаНачала;
```

или в случае параметра в скд то как

```1c
    ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "НачалоПериода", НачалоМесяца(ПериодРегистрации));
```

так же и для конца периода надо будет проставить (ну и других параметров).
А вообще поиск в модулях отчета сделайте по этим сообщениям ("Не указан период формирования отчета" и "Не указан интервал") и посмотрите, что конкретно там проверяется на заполненность.
---
отлично.
добавляем в код:

```1c
    ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "НачалоПериода", НачалоМесяца( тутДата ));
    ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "КонецПериода", КонецМесяца( тутДата ));
```

перед Отчет.СформироватьОтчет(ТабДокумент);
---
(11)

Все равно просит период

Может что я пропустил
1.Создал обработку, в ней Форму - "Форма"
2. В модуле формы пишу

```1c
    -----------
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    Отчет = Отчеты.Продажи.Создать();
    ТабДокумент = Новый ТабличныйДокумент;
    ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "НачалоПериода", НачалоМесяца('20050101200103'));
    ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "КонецПериода", КонецМесяца('20190101200103'));

    Отчет.СформироватьОтчет(ТабДокумент);
    КонецПроцедуры

    ----------
```

при нажатии говорит

Не указан период формирования отчета
Не указан интервал
---
тогда: ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "Период", КонецМесяца('20190101200103'));

и "Интервал":

ТиповыеОтчеты.УстановитьПараметр(Отчет.КомпоновщикНастроек, "Интервал", ссылкаСправочникаИнтервалы );
---
ругается на

сылкаСправочникаИнтервалы
---
может просто Выложите здесь отчет как внешний файл ?) так можно гадать и гадать
---
ок) ну вроде обычный отчет продажи....
---
(10)
Ребята все просто :)))

Если отчет на СКД

то в обработке добавляем как обычно "Форму"
в форме модуля пишем код

```1c
    Процедура КнопкаВыполнитьНажатие(Кнопка)

    //Получаем схему из макета
    Отчет = Отчеты.есэ_РезервыТоваров.Создать(); // отчет наш "есэ_РезервыТоваров" замените своим
    СхемаКомпоновкиДанных = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");

    //Из схемы возьмем настройки по умолчанию
    Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

    //Помещаем в переменную данные о расшифровке данных
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    //Формируем макет, с помощью компоновщика макета
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

    //Передаем в макет компоновки схему, настройки и данные расшифровки
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки, ДанныеРасшифровки);

    //Выполним компоновку с помощью процессора компоновки
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,,ДанныеРасшифровки);

    //Очищаем поле табличного документа
    Результат = ЭлементыФормы.Результат;
    Результат.Очистить();

    //Выводим результат в табличный документ
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);

    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    КонецПроцедуры
```
---
Попробуйте так

```1c
    Отчет = Отчеты.Продажи.Создать();
    ТабДокумент = Новый ТабличныйДокумент;
    Отчет.УниверсальныйОтчет.ДатаНач = НачалоМесяца(ТекущаяДата());
    Отчет.УниверсальныйОтчет.ДатаКон = КонецМесяца(ТекущаяДата());
    Отчет.СформироватьОтчет(ТабДокумент);
```
---
{Обработка.ВызовОтчета.Форма.Форма.Форма(16)}: Поле объекта не обнаружено (УниверсальныйОтчет)
Отчет.УниверсальныйОтчет.ДатаНач = НачалоМесяца(ТекущаяДата());
---
ооо... здесь нужно задать ссылку на элемент справочника "Интервалы"
---
Есть идеи, как реализовать потом в этом вызванном отчете расшифровку по двойному клику?
В самом отчете все работает, реализовано через макет на скд