________________________________________________________________________
Сформируем тестовый отчёт СКД, задав его параметр "Период" и отбор "Водитель" в обычном приложении с использованием обычных форм.
Для этого нам понадобится:
- Получить объект отчёта;
- Из объекта отчёта получить КомпоновщикНастроек СКД;
- При помощи вспомогательной процедуры "УстановитьПараметрСКД", в настройках СКД установить необходимые параметры отчёта;
- При помощи вспомогательной процедуры "УстановитьОтборСКД", в настройках СКД установить необходимые отборы отчёта;
- При помощи метода "ПолучитьФорму", объекта отчёта, получить форму отчёта;
- При помощи метода "СкомпоноватьРезультат", сформировать отчёт, в качестве первого параметра данного метода нужно указать элемент табличного поля формы отчёта, в котором отображается результат;
- Открыть форму отчёта.

Процедура ОткрытьОтчётСОтборомНажатие(Элемент)
	
	Перем ОбъектОтчёта, КомпоновщикНастроек, Период, ФормаОтчёта; 
	
	ОбъектОтчёта = Отчеты.ТестовыйОтчёт.Создать();
	КомпоновщикНастроек = ОбъектОтчёта.КомпоновщикНастроек;
	
	Период = Новый СтандартныйПериод();
	Период.ДатаНачала = Дата(2021,08,01);
	Период.ДатаОкончания = Дата(2021,08,31,23,59,59);
	
	УстановитьПараметрСКД(КомпоновщикНастроек, "Период", Период);
	УстановитьОтборСКД(КомпоновщикНастроек, "Водитель", "Петров");
	ФормаОтчёта = ОбъектОтчёта.ПолучитьФорму("ФормаОтчета");
	ОбъектОтчёта.СкомпоноватьРезультат(ФормаОтчёта.ЭлементыФормы.Результат, ФормаОтчёта.ДанныеРасшифровки);
	ФормаОтчёта.Открыть();
	
КонецПроцедуры //  ОткрытьОтчётСОтборомНажатие
Процедура УстановитьПараметрСКД(КомпоновщикНастроек, ИмяПараметра, Значение)
	
	Перем ПараметрДанных;
	
	ПараметрДанных = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
	
	ПараметрДанных.Использование = Истина;
	ПараметрДанных.Значение = Значение;
	
КонецПроцедуры  //  УстановитьПараметрСКД
Процедура УстановитьОтборСКД(КомпоновщикНастроек, ИмяОтбора, Значение, ВидСравнения = Неопределено)
	
	Перем Настройки, ПолеКД, Элем, ЭлементОтбора;
	
	Настройки = КомпоновщикНастроек.Настройки;
	
	ПолеКД = Новый ПолеКомпоновкиДанных(ИмяОтбора);
	
	Для Каждого Элем Из Настройки.Отбор.Элементы Цикл
		
		Если Элем.ЛевоеЗначение = ПолеКД Тогда
			ЭлементОтбора = Элем;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Если ЭлементОтбора = Неопределено Тогда
		
		ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.ЛевоеЗначение = ПолеКД;
	КонецЕсли;		
	
	ЭлементОтбора.Использование = (Значение <> Неопределено);
	ЭлементОтбора.ВидСравнения = ?(ВидСравнения <> Неопределено, ВидСравнения, ВидСравненияКомпоновкиДанных.Равно); 
	ЭлементОтбора.ПравоеЗначение  = Значение;
КонецПроцедуры //  УстановитьОтборСКД
Результат выполнения кода:

________________________________________________________________________
Сформируем тестовый отчёт СКД, задав его параметр "Период" и отбор "Водитель" в управляемом приложении с использованием управляемых форм.
Для этого нам понадобится:
- Получить форму отчёта;
- Из реквизита "Отчет", формы отчёта, получить КомпоновщикНастроек СКД;
- При помощи вспомогательной процедуры "УстановитьПользовательскийПараметрСКД", в настройках СКД установить необходимые параметры отчёта;
- При помощи вспомогательной процедуры "УстановитьПользовательскийОтборСКД", в настройках СКД установить необходимые отборы отчёта;
- Сформировать параметры формы;
- Открыть форму отчёта.
&НаКлиенте
Процедура КомандаОткрытьОтчётСОтбором(Команда)
	
	Перем ФормаОтчёта, КомпоновщикНастроек, Период, ПараметрыФормы;
	
	ФормаОтчёта = ПолучитьФорму("Отчет.ТестовыйОтчёт.Форма");
	КомпоновщикНастроек = ФормаОтчёта.Отчет.КомпоновщикНастроек;
	
	Период = Новый СтандартныйПериод();
	Период.ДатаНачала = Дата(2021,08,01);
	Период.ДатаОкончания = Дата(2021,08,31,23,59,59);
	
	УстановитьПользовательскийПараметрСКД(КомпоновщикНастроек, "Период", Период);
	УстановитьПользовательскийОтборСКД(КомпоновщикНастроек, "Водитель", "Петров");
	
	ПараметрыФормы = Новый Структура();
	ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
	ПараметрыФормы.Вставить("КлючВарианта", "Основной");
	ПараметрыФормы.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки); 
	
	ОткрытьФорму("Отчет.ТестовыйОтчёт.Форма", ПараметрыФормы, ЭтаФорма);
	
КонецПроцедуры //  КомандаОткрытьОтчётСОтбором
&НаКлиенте
Процедура УстановитьПользовательскийПараметрСКД(КомпоновщикНастроек, ИмяПараметра, Значение)
	
	Перем ПараметрДанных, Настройки, ПользовательскиеНастройки, ПользовательскийПараметр;
	
	Настройки = КомпоновщикНастроек.Настройки;
	
	ПараметрДанных = Настройки.ПараметрыДанных.Элементы.Найти(ИмяПараметра);
	
	Если ЗначениеЗаполнено(ПараметрДанных.ИдентификаторПользовательскойНастройки) Тогда
		
		ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;
		ПользовательскийПараметр = ПользовательскиеНастройки.Элементы.Найти(ПараметрДанных.ИдентификаторПользовательскойНастройки);
		ПользовательскийПараметр.Использование = Истина;
		ПользовательскийПараметр.Значение = Значение;
	КонецЕсли;
	
КонецПроцедуры  //  УстановитьПользовательскийПараметрСКД
&НаКлиенте
Процедура УстановитьПользовательскийОтборСКД(КомпоновщикНастроек, ИмяОтбора, Значение, ВидСравнения = Неопределено)
	
	Перем	ПолеКД, Элем, ЭлементОтбора, Настройки, 
			ПользовательскиеНастройки, ПользовательскийОтбор;
	
	Настройки = КомпоновщикНастроек.Настройки;
	
	ПолеКД = Новый ПолеКомпоновкиДанных(ИмяОтбора);
	
	Для Каждого Элем Из Настройки.Отбор.Элементы Цикл
		
		Если Элем.ЛевоеЗначение = ПолеКД Тогда
			ЭлементОтбора = Элем;
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Если ЭлементОтбора = Неопределено Тогда
		Возврат;		
	КонецЕсли;		
	
	Если ЗначениеЗаполнено(ЭлементОтбора.ИдентификаторПользовательскойНастройки) Тогда
		
		ПользовательскиеНастройки = КомпоновщикНастроек.ПользовательскиеНастройки;
 		ПользовательскийОтбор = ПользовательскиеНастройки.Элементы.Найти(ЭлементОтбора.ИдентификаторПользовательскойНастройки);
		ПользовательскийОтбор.Использование = (Значение <> Неопределено);
		ПользовательскийОтбор.ВидСравнения = ?(ВидСравнения <> Неопределено, ВидСравнения, ВидСравненияКомпоновкиДанных.Равно); 
		ПользовательскийОтбор.ПравоеЗначение  = Значение;
	КонецЕсли;
КонецПроцедуры //  УстановитьПользовательскийОтборСКД
Результат выполнения кода:

________________________________________________________________________
Представленные реализации не претендуют на «истину в последней инстанции», безусловно данная задача может иметь и другие варианты реализации, например:
1С СКД. Программный запуск отчета с открытием и настройкой (Данная ссылка была предоставлена
А ссылка ниже – краткое руководство по составным частям компоновщика настроек СКД и программной работе с ними:
ТОП-5 ИНСТРУМЕНТОВ ДЛЯ РАЗРАБОТЧИКА 1С
Подборка лучших инструментов для разработчика 1С включает Toolkit, DCT, OneDebugger, PrintWizard, DataFormWizard — и доступна со скидкой 20% при покупке от двух решений.
Вступайте в нашу телеграмм-группу Инфостарт
 
  
                                     
                                     
                                     
                                    