0
vladimir80
16.09.19
✎
16:21
|
Всем привет!
УТ 11.4, УФ.
Написал отчет (скд) в расширении. Формы отчета стандартные для конфигурации. Написал в расширении обработку расшифровки - хочу открывать иной вариант этого же отчета.
&НаКлиенте
Процедура ОткрытьОтчетПоСотруднику(Сотрудник)
СтрПараметры = Новый Структура;
СтрПараметры.Вставить("Месяц", ЭтотОбъект.Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра( Новый ПараметрКомпоновкиДанных("Месяц") ).Значение);
ПользовательскиеНастройки = УстановитьПользовательскиеНастройкиОтчета("Табель", СтрПараметры);
Отбор = Новый Структура;
Отбор.Вставить("Сотрудник", Сотрудник);
ПараметрыФормы = Новый Структура("Отбор, ПользовательскиеНастройки, СформироватьПриОткрытии, КлючВарианта, КлючНазначенияИспользования", Отбор,ПользовательскиеНастройки, Истина , "ПоСотруднику", "ПоСотруднику");
ОткрытьФорму("Отчет.Табель.ФормаОбъекта", ПараметрыФормы);
КонецПроцедуры
&НаСервере
Функция УстановитьПользовательскиеНастройкиОтчета(ТипОтчета,СтруктураПараметров)
СтруктураНастроек = Новый Структура;
ОтчетОбъект = Отчеты[ТипОтчета].Создать();
ПользовательскиеНастройки = ОтчетОбъект.КомпоновщикНастроек.ПользовательскиеНастройки;
Для Каждого ЭлПараметр Из СтруктураПараметров Цикл
Для Каждого ПараметрСКД Из ПользовательскиеНастройки.Элементы Цикл
Если ТипЗнч(ПараметрСКД) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда
Если строка(ПараметрСКД.Параметр) = ЭлПараметр.Ключ Тогда
ПараметрСКД.Значение = ЭлПараметр.Значение;
ПараметрСКД.Использование = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Возврат ПользовательскиеНастройки;
КонецФункции
Отбор передается прекрасно, параметр не заполняется. Все вышеописанное основано на коде с интернетов. Возможно кто-то пнет в нужном направлении, как передать параметр в отчет СКД.
|
|