Имя: Пароль:
1C
1С v8
Открыть форму отчета с установленными параметрами (СКД)
0 Nesh
 
28.11.11
14:29
В СП посмотрел Расширение формы отчета, там есть как в параметры формы передать отбор, а вот как параметры отчета задать?
1 teapot123
 
28.11.11
14:36
управляемое приложение?
2 Nesh
 
28.11.11
14:37
(1) да
3 teapot123
 
28.11.11
14:41
в настройках СКД пкм по Отчету "Свойства элемента пользовательских настроек"
4 semiluki
 
28.11.11
14:42
Я делал так
ПараметрСКД = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ДатаНачала");
   ПараметрСКД.Использование = Истина;
   ПараметрСКД.Значение  = НачалоДня(ТекущаяДата());
5 teapot123
 
28.11.11
14:46
для пользовательских настроек:
идОтбор = КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки;
ЭлементОтбора = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(идОтбор).Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение    = Новый ПолеКомпоновкиДанных("Организация");
ЭлементОтбора.ВидСравнения        = ВидСравненияКомпоновкиДанных.НеВСписке;
ЭлементОтбора.Использование    = Истина;
ЭлементОтбора.ПравоеЗначение    = СписокОрганизаций;
ЭлементОтбора.ПредставлениеПользовательскойНастройки    = "Доступные организации";
6 Nesh
 
28.11.11
14:54
я вот пока делаю так
ПараметрыОтчета = Новый Структура("СформироватьПриОткрытии",Истина);
   ОткрытьФормуМодально("Отчет.ОтчетСверкаПоОтвесамИСилоснойДоске.Форма",ПараметрыОтчета);

что мне еще в параметры формы втулить чтобы открылась уже с заполненными параметрами скд?
7 teapot123
 
28.11.11
14:59
(6) параметры в настройках СКД указаны или все программно?
8 Nesh
 
28.11.11
15:04
(7) параметры указаны в настройках
9 teapot123
 
28.11.11
15:06
(8) в настройках на каждом параметре включи флажок "включать в пользовательские настройки". так они будут вместе со всеми настройками
10 Nesh
 
28.11.11
15:08
(9) да, я так и сделал. только как их теперь программно создать.
ПараметрыОтчета = Новый Структура("СформироватьПриОткрытии, ПользовательскиеНастройки",Истина);
   ПараметрыОтчета.ПользовательскиеНастройки = Новый ПользовательскиеНастройкиКомпоновкиДанных;
   
   ОткрытьФормуМодально("Отчет.ОтчетСверкаПоОтвесамИСилоснойДоске.Форма",ПараметрыОтчета);

как их тут заполнить пока хз
11 teapot123
 
28.11.11
15:13
(10) а зачем их программно создавать? все настраиваешь в СКД. если надо установить новое значение - в (4) все есть. если своя форма настроек - путь к данным: Отчет.КомпоновщикНастроек.ПользовательскиеНастройки
12 Nesh
 
28.11.11
15:16
сделал так. вроде работает но, имхо, можно проще. пока хз как


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

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

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