68.
Asdam
120
22.07.10 22:37
Сейчас в теме
Пример кода для открытия отчета с необходимой настройкой:
// наименование настройки отчета, которую используем при открытии
НаименованиеСохраненнойНастройки = "Для отдела продаж";
// отчет, который хотим открыть
Отчет = Отчеты.ДвиженияДенежныхСредств.Создать();
УниверсальныйОтчет = Отчет.УниверсальныйОтчет;
ФормаОтчета = Отчет.ПолучитьФорму();
СтруктураНастройки = Новый Структура;
СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь"));
СтруктураНастройки.Вставить("ИмяОбъекта", Строка(Отчет));
СтруктураНастройки.Вставить("НаименованиеНастройки", НаименованиеСохраненнойНастройки);
// найдем необходимую настройку
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| ВложенныйЗапрос.НаименованиеНастройки КАК НаименованиеНастройки,
| ВложенныйЗапрос.СохраненнаяНастройка КАК СохраненнаяНастройка,
| ВложенныйЗапрос.СохранятьАвтоматически КАК СохранятьАвтоматически,
| ВложенныйЗапрос.ИспользоватьПриОткрытии КАК ИспользоватьПриОткрытии
|ИЗ
| (ВЫБРАТЬ ПЕРВЫЕ 1
| СохраненныеНастройки.НаименованиеНастройки КАК НаименованиеНастройки,
| СохраненныеНастройки.СохраненнаяНастройка КАК СохраненнаяНастройка,
| СохраненныеНастройки.СохранятьАвтоматически КАК СохранятьАвтоматически,
| СохраненныеНастройки.ИспользоватьПриОткрытии КАК ИспользоватьПриОткрытии,
| 0 КАК ВидНастройки
| ИЗ
| РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
| ГДЕ
| СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
| И СохраненныеНастройки.Пользователь = &Пользователь
| И СохраненныеНастройки.НаименованиеНастройки = &НаименованиеНастройки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ ПЕРВЫЕ 1
| СохраненныеНастройки.НаименованиеНастройки,
| СохраненныеНастройки.СохраненнаяНастройка,
| СохраненныеНастройки.СохранятьАвтоматически,
| СохраненныеНастройки.ИспользоватьПриОткрытии,
| 1
| ИЗ
| РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
| ГДЕ
| СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
| И ВЫРАЗИТЬ(СохраненныеНастройки.Пользователь КАК Справочник.ГруппыПользователей).ПользователиГруппы.Пользователь = &Пользователь
| И СохраненныеНастройки.НаименованиеНастройки = &НаименованиеНастройки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ ПЕРВЫЕ 1
| СохраненныеНастройки.НаименованиеНастройки,
| СохраненныеНастройки.СохраненнаяНастройка,
| СохраненныеНастройки.СохранятьАвтоматически,
| СохраненныеНастройки.ИспользоватьПриОткрытии,
| 2
| ИЗ
| РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки
| ГДЕ
| СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта
| И СохраненныеНастройки.Пользователь = НЕОПРЕДЕЛЕНО
| И СохраненныеНастройки.НаименованиеНастройки = &НаименованиеНастройки) КАК ВложенныйЗапрос
|
|УПОРЯДОЧИТЬ ПО
| ВложенныйЗапрос.ВидНастройки";
// параметры запроса
Запрос.УстановитьПараметр("ИмяОбъекта", СтруктураНастройки.ИмяОбъекта);
Запрос.УстановитьПараметр("НаименованиеНастройки", СтруктураНастройки.НаименованиеНастройки);
Запрос.УстановитьПараметр("Пользователь", СтруктураНастройки.Пользователь);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
ВыборкаИзРезультатаЗапроса = РезультатЗапроса.Выбрать();
ВыборкаИзРезультатаЗапроса.Следующий();
СтруктураНастройки.Вставить("НаименованиеНастройки", ВыборкаИзРезультатаЗапроса.НаименованиеНастройки);
СтруктураНастройки.Вставить("СохраненнаяНастройка", ВыборкаИзРезультатаЗапроса.СохраненнаяНастройка.Получить());
СтруктураНастройки.Вставить("ИспользоватьПриОткрытии", ВыборкаИзРезультатаЗапроса.ИспользоватьПриОткрытии);
СтруктураНастройки.Вставить("СохранятьАвтоматически", ВыборкаИзРезультатаЗапроса.СохранятьАвтоматически);
// открываем отчет (если открывать потом, используется стандартная настройка)
ФормаОтчета.Открыть();
// применяем необходимую настройку
УниверсальныйОтчет.мТекущаяНастройка = СтруктураНастройки;
Отчет.ВосстановитьНастройкиИзСтруктуры(СтруктураНастройки.СохраненнаяНастройка);
УниверсальныйОтчет.ВосстановитьПараметрыПечати(УниверсальныйОтчет, Отчет, ФормаОтчета, СтруктураНастройки.СохраненнаяНастройка);
// установим нужный период отчета
Сутки = 86400;
ДатаВчера = ТекущаяДата() - Сутки;
УниверсальныйОтчет.ДатаНач = ДатаВчера;
УниверсальныйОтчет.ДатаКон = ДатаВчера;
// обновляем отчет с нужной настройкой
ФормаОтчета.ОбновитьОтчет();
Иначе
Предупреждение("Настройка """ + НаименованиеСохраненнойНастройки + """ не найдена!" , 60);
КонецЕсли;