Устанавливаем значения параметров отчета СКД программно в 1С
Например у отчета есть следующие параметры:
Программно их задать можно следующим образом:
1 2 3 4 |
//Последовательно, начиная с 0 задаем значения параметров: ( НачПериода это 0 элемент, КонПериода - 1, ВыбНалог =2 ) КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = НачПериода; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = КонПериода; КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[2].Значение = ВыбНалог; |
Есть параметр, предопределенное при открытии отчета каждый раз. Как его правильно указать в СКД?
1 2 3 4 5 6 7 |
Процедура ПриОткрытии() //........................ ПараметрДанных= КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Товар"); ПараметрДанных.Значение = Справочники.Номенклатура.НайтиПоНаименованию("Гвозди"); ПараметрДанных.Использование=Истина; //........................................... КонецПроцедуры |
или
1 2 3 4 5 6 7 8 |
//Пропишем ТОЧКИ МАРШРУТА СписТочек = Новый СписокЗначений; СписТочек.Добавить(БизнесПроцессы.м_Документооборот.ТочкиМаршрута.ОПФПД); СписТочек.Добавить(БизнесПроцессы.м_Документооборот.ТочкиМаршрута.ОСФПД); ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТочкаМаршрута"); ПараметрСКД.Значение = СписТочек; ПараметрСКД.Использование = ИСТИНА; |
Для УП
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьПривилегированныйРежим(Истина); СтандартнаяОбработка = Ложь; // если не отключить стандартную обработку, то настройки затрутся ДатаОтчета = ТекушаяДата(); 3начениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Найти3начениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНач")); Если НЕ ЗначениеПараметра = Неопределено Тогда ЗначениеПараметра.Использование = Истина; ЗначениеПараметра.Значение = КонецДня(ДатаОтчета) - (7 * 86400); КонецЕсли; 3начениеПараметра = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Найти3начениеПараметра(Новый ПараметрКомпоновкиДанных("Свойство1")); Если НЕ ЗначениеПараметра = Неопределено Тогда ЗначениеПараметра.Использование = Истина; 3начениеПараметра = Справочники.3наченияСвойствОбъектов.НайтиПоКоду("000000004"); КонецЕсли; КонецПроцедуры |