Имя: Пароль:
1C
1С v8
Программное открытие УФ отчета с определенными пользовательскими настройками
,
0 Yorokonde
 
25.09.11
09:30
Всем добрый день!
Есть отчет на СКД, форма управляемая. В пользовательские настройки в быстрый доступ включено поле Покупатель.
Нужно решение элементарной задачи - программное открытие отчета с отбором по покупателю.

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

Плюсы: задача как бы решается, НО...
Минусы: Если не ошибаюсь при таком открытии Отбор выставляется на уровне Фиксированных настроек. Получается что пользовательская настройка - поле Покупатель остается незаполненным, флаг использования не установлен и т.п.
И самое неприятное, что в открытом таким образом отчете пользователь уже не может указать другое значение Покупателя: при попытке сформировать отчет вываливается ошибка "Не возможно применить фиксированные настройки. Пересекаются элементы отборов".

Есть еще у Упр. формы отчета в параметрах "КлючПользовательскихНастроек" и "ПользовательскиеНастройки", но в первом случае не знаю что является ключем, а во втором не понимаю как сформировать эти настройки, в СП конструктор типа не указан.

Ткните носом в верном направлении :)
1 IamAlexy
 
25.09.11
10:09
покури подсистему варианты отчетов из БСП...
2 Yorokonde
 
25.09.11
10:09
Ушел курить :)
3 Yorokonde
 
25.09.11
10:19
(1) Покурил... Варианты отчетов... оказались вариантами отчетов. Открыть отчет с определенным вариантом - нет никакой сложности - в моем примере это как раз реализовано. А подсистема Варианты отчетов из БСП занимается красивым выводом этих вариантов в виде панели отчетов. Открытия с определенными настройками там нигде нет... Так что вопрос все еще актуален.
4 Yorokonde
 
25.09.11
10:21
Я могу, конечно, решить проблему через передачу своих параметров в форму отчета, и установку их в пользовательские настройки именно при создании формы отчета... НО.. это некрасиво и все таки хотелось бы понять как можно использовать параметры формы отчета "КлючПользовательскихНастроек" и "ПользовательскиеНастройки"
5 IamAlexy
 
25.09.11
10:26
(3) открой УТ11, открой отчеты по продажам под нужным пользователем, сделай вариант отчета, сохрани, проставь флаг быстрого доступа, укажи в какой подсистеме и для какого пользователя - и наблюдай этот вариант (что характерно со всеми настройками) на панели вариантов отчетов прямо в интерфейсе
6 IamAlexy
 
25.09.11
10:26
+(5) это намек был..
7 IamAlexy
 
25.09.11
10:26
+(5) причем каждый пользователь может под себя панельку делать и свои варианты в интерфейс добавлять, что характерно - именно с определенными настройками
8 Yorokonde
 
25.09.11
10:39
(7) Ушел курить плотнее )))
9 Yorokonde
 
25.09.11
11:04
Покурил поплотнее... все-равно не совсем то, что мне нужно.
Подсистема позволяет сохранять эти варианты... именно ВАРИАНТЫ отчетов. Пользовательские настройки - часть конкретного варианта.
На панель отчетов выводится ссылка на ВАРИАНТ отчета, в которому УЖЕ записаны пользовательские настройки...

т.е. в конце так или иначе в БСП просто открывается нужный вариант, который хранится в справочнике ВариантыОтчетов.. и открывается он по параметру "КлючВарианта".

Все еще маюсь )
10 acsent
 
25.09.11
11:20
СхемаКомпоновкиДанных = Отчеты.усОстаткиТоваров.ПолучитьМакет("ОсновнаяСхема");

   КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных;
   КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
   КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);

   сткОтбор = Новый Структура("Номенклатура", спзНоменклатура);
   сткПараметры = Новый Структура("Отбор, СформироватьПриОткрытии, ПользовательскиеНастройки", сткОтбор, Истина, КомпоновщикНастроекКомпоновкиДанных.ПользовательскиеНастройки);
   ОткрытьФорму("Отчет.усОстаткиТоваров.Форма", сткПараметры, ЭтаФорма);