Застрял вроде бы на простом вопросе, есть отчет на СКД, помещенный в справочник Дополнительные отчеты и обработки, без формы
Открываю программно в расширении, нужно передать параметры НачПериода и КонПериода

```1c
    &НаКлиенте
    Процедура Расш_Остатки_ОтчетЧекиККИПосле(Команда)

    ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("Отчет чеки ККМ УТ11");

    ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);

    ПараметрыФормы = Новый Структура;

    ПараметрыФормы.Вставить("КлючВарианта","Основной2");
    ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);

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

    ПараметрыФормы.Вставить("ПользовательскиеНастройки",ПользовательскиеНастройки);

    ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма",ПараметрыФормы, ЭтаФорма);

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

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
    Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
    КонецФункции
```

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

```1c
    &НаКлиенте
    Процедура Расш_Остатки_ОтчетЧекиККИПосле(Команда)

    ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("Отчет чеки ККМ УТ11");

    ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);

    ПараметрыФормы = Новый Структура;

    ПараметрыФормы.Вставить("КлючВарианта","Основной2");
    ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);

    ПользовательскиеНастройки=ПолучитьПользовательскиеНастройки(ВнешнийОтчетОбработкаДляОткрытияСсылка);
    ПараметрыФормы.Вставить("ПользовательскиеНастройки",ПользовательскиеНастройки);

    ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма",ПараметрыФормы, ЭтаФорма);

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

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
    Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
    КонецФункции

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

почему в допсвойства, а не в элементы?
---
1. сформировать програмно СКД с установкой параметров (рекомендую) используя КомпоновщикНастроек
2. или как то так(не рекомендованно):

 Отчет = ПолучитьИмяВнешнегоОбъекта("Отчет по серийным номерам");
 ФормаОтчет = ПолучитьФорму("ВнешнийОтчет." + Отчет+ ".Форма.ФормаОтчета");

        // установка параметров.
 ФормаОтчет .Этаформа.Номенклатура = Объект.Номенклатура;
 ФормаОтчет .Этаформа.СерийныеНомера = Объект.СерийныйНомер;

        // запуск процедур
 ФормаОтчет .ОбновитьСписокСН();
 ФормаОтчет .СформироватьПоНоменклатуреНаСервере();

        // открытие формы отчета.
 ОткрытьФорму(ФормаОтчетПоСерийнымНомерам);
---
(7)
Заработало, получил форму отчета, далее Отчет.КомпоновщикНастроек, дальше дело техники, всем спасибо

```1c
    Процедура Расш_Остатки_ОтчетЧекиККИПосле(Команда)

    ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("Отчет чеки ККМ УТ11");

    ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);

    ПараметрыФормы = Новый Структура;

    ПараметрыФормы.Вставить("КлючВарианта","Основной2");
    ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);

    Форма=ПолучитьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма");
    ПользовательскиеНастройки=ПолучитьПользовательскиеНастройки(Форма.Отчет.КомпоновщикНастроек);
    ПараметрыФормы.Вставить("ПользовательскиеНастройки",ПользовательскиеНастройки);

    ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма",ПараметрыФормы, ЭтаФорма);

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

    &НаСервереБезКонтекста
    Функция ПолучитьПользовательскиеНастройки(КомпоновщикНастроек);
    Настройки=КомпоновщикНастроек.ПолучитьНастройки();
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачПериода",НачалоДня(ТекущаяДата()));
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонПериода",КонецДня(ТекущаяДата()));
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    Возврат КомпоновщикНастроек.ПользовательскиеНастройки;
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
    Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
    КонецФункции
```
---
Делал по примеру https://www.e-du.ru/2018/03/1c-open-ext-report.html\
Но у меня нет формы для отчета СКД, думаю как получить настройки из внешнего отчета типа

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

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

```1c
    &НаКлиенте
    Процедура Расш_Остатки_ОтчетЧекиККИПосле(Команда)

    ВнешнийОтчетОбработкаДляОткрытияСсылка = ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере("Отчет чеки ККМ УТ11");

    ИмяОбработкиСлужебное = ДополнительныеОтчетыИОбработкиВызовСервера.ПодключитьВнешнююОбработку(ВнешнийОтчетОбработкаДляОткрытияСсылка);

    ПараметрыФормы = Новый Структура;

    ПараметрыФормы.Вставить("КлючВарианта","Основной2");
    ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);

    ПользовательскиеНастройки=ПолучитьПользовательскиеНастройки(ВнешнийОтчетОбработкаДляОткрытияСсылка);
    ПараметрыФормы.Вставить("ПользовательскиеНастройки",ПользовательскиеНастройки);

    ОткрытьФорму("ВнешнийОтчет." + ИмяОбработкиСлужебное + ".Форма",ПараметрыФормы, ЭтаФорма);

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

    &НаСервереБезКонтекста
    Функция ПолучитьСсылкуНаВнешнийОтчетОбработкуПоИмениНаСервере(ИмяОтчетаОбработки)
    Возврат Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию(ИмяОтчетаОбработки).Ссылка;
    КонецФункции

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

Метод объекта не обнаружен (ПолучитьОбъектВнешнейОбработки)
В Управление нашей фирмой, редакция 3.0 (3.0.2.112). Хотел как у Вас сделать.
---
в УНФ метод называется по другому - ОбъектВнешнейОбработки
---
Скорее все в новых версиях БСП метод "ПолучитьОбъектВнешнейОбработки "
ДополнительныеОтчетыИОбработкиВызовСервера.ПолучитьОбъектВнешнейОбработки
был заменен на "ОбъектВнешнейОбработки"
ДополнительныеОтчетыИОбработкиВызовСервера.ОбъектВнешнейОбработки
---
почему-то параметры передает, а при формировании ничего не формирует пусто, в при компоновке также указал настройки, у вас так было?
---
Огромное спасибо, прямо то что надо!
---
Спасибо, очень помогло!
Если у кого-то этот код не сработает, то обратите внимание чтобы параметры были включены в пользовательские настройки (Галка "Включать в пользовательские настройки").
---
Спасибо за предупреждение - во вторник часа 2 убил прежде чем понял
---
Хорошо! А каким образом передать в отчет ссылку на документ из которого данный отчет вызывается (в отчете формы нет).
Суть проблемы. Вызываю из документа счетнаоплатупоставщика внешний отчет СКД - сформировал данные и хочу записать их в форму документа из которой они вызывались.
Отчет вызывается данные формируются а вот вернуть их обратно не получается.
Пока просто пишу в ДокЗаказ = Документы.Счетнаоплатупоставщика.СоздатьДокумент();
а хотелось бы вернуть данные сразу в открытый документ
---
т.е. отчет на СКД формирует некие данные, которые выведутся в табличный документ отчета - и их оттуда нужно получить?
---
данные уже получены
формирую два источника данных табличный документ и ТЗ для записи
в отчете стоит признак выводить или нет
после того как пользователь понял что он все настроил и нужная инфа на экране
устанавливает приз формирует отчет и записывает ТЗ в документ
так вот каким образом получить форму документа из которой вызывался отчет?
остальное все сделано
---
ВладелецФормы в форме отчета
---
Пытаюсь запустить и передать хотябы даты - не получается
отчет запускается но параметры не передаются
---
а формы нету...
Может быть возможно передать владелецформы.объект как параметр?
---
ну немного разобрался даты передаются
но вот что делать с владельцем формы?
---
Спасибо большое!
Помогли!
---
написал внешний отчет без формы. Есть только СКД. Что нужно в модуле объекта прописать, чтобы задать программно параметры отчета? Бьюсь уже несколько часов, не могу понять этот БСП...
---
В настоящий момент для этого есть типовой метод в ОМ ДополнительныеОтчетыИОбработкиКлиент

```1c
    Процедура ОткрытьВариантДополнительногоОтчета(Ссылка, КлючВарианта) Экспорт
```
---
можете выложить пример как по кнопке на форме документа открыть ВнешнийОтчет что хранится в базе дополнительные отчеты и обработки?

Рабочего решения не нашел. Спасибо.
---
По программному открытию внешней обработки и внешнего отчёта есть универсальное решение на основе метода БСП:

Как программно открыть внешний отчет из "Дополнительных отчетов и обработок" и передать параметры (при помощи БСП)
---
Сделал рабочий код с текущим вариантом отчета:
Проверял работу на УТ 11.4
//Данные не передавал, стояла задача просто открыть отчет с текущим вариантом отчета.

```1c
    &НаКлиенте
    Процедура НеотгруженныеОрдера(Команда)
    КомандаОткрытьВнешнийОтчет("\\192.168.0.3\Отчеты\Другие отчеты\НеотгруженныеОрдера.erf");
    КонецПроцедуры

    &НаКлиенте
    Процедура КомандаОткрытьВнешнийОтчет(Путь)

    ОписаниеОповещения = Новый ОписаниеОповещения("ПоместитьФайлВХранилищеЗавершениеОтчет", ЭтотОбъект);
    НачатьПомещениеФайла(ОписаниеОповещения, , Путь, Ложь);
    КонецПроцедуры

    &НаКлиенте
    Процедура ПоместитьФайлВХранилищеЗавершениеОтчет(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт

    РезЗапроса = ПодключитьВнешнийОтчетНаСервереОтчет(Адрес);
    ИмяОтчета = РезЗапроса.ИмяОтчета;
    КлючВарианта = РезЗапроса.ВариантОтчета;
    ПараметрыОткрытия = Новый Структура("КлючВарианта", КлючВарианта);
    Уникальность ="ВнешнийОтчет." + ИмяОтчета;
    ОткрытьФорму("ВнешнийОтчет." + ИмяОтчета + ".Форма", ПараметрыОткрытия, Неопределено, Уникальность)

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

    &НаСервере
    Функция ПодключитьВнешнийОтчетНаСервереОтчет(АдресХранилища)

    результат = Новый Структура;
    ИмяОтчета = ВнешниеОтчеты.Подключить(АдресХранилища);
    ВариантыОтчета = ХранилищеВариантовОтчетов.ПолучитьСписок("Отчет."+ИмяОтчета);
    КлючОбъекта = "ВнешнийОтчет."+ИмяОтчета+"/КлючТекущегоВарианта";
    ВариантОтчета = ОбщегоНазначения.ХранилищеСистемныхНастроекЗагрузить(КлючОбъекта, ");
    Мт = ВариантыОтчета.НайтиПоЗначению(ВариантОтчета);
    Если МТ <> Неопределено Тогда
    ВариантОтчета = МТ.Представление;
    КонецЕсли;
    результат.Вставить("ИмяОтчета",ИмяОтчета);
    результат.Вставить("ВариантОтчета",ВариантОтчета);

    Возврат Результат;
    КонецФункции

    &НаСервереБезКонтекста
    Функция ПолучитьПользовательскиеНастройки(ВнешнийОтчетОбработкаДляОткрытияСсылка);

    КомпоновщикНастроек=ДополнительныеОтчетыИОбработкиВызовСерве­<wbr>­ра.ОбъектВнешнейОбработки(ВнешнийОтчетОбработкаДляОткрытияСсылка).КомпоновщикНастроек;
    Настройки=КомпоновщикНастроек.ПолучитьНастройки();
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("НачПериода",НачалоДня(ТекущаяДата()));
    Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("КонПериода",КонецДня(ТекущаяДата()));
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
    Возврат КомпоновщикНастроек.ПользовательскиеНастройки;
    КонецФункции
```