Книга знаний

1С:Предприятие / v8 / Объекты конфигурации / Отчеты

v8: Настройки отчетов

Настройки отчетов - это входные параметры, которые пользователь обычно указывает для формирования отчета или выполнения обработки. К таким параметрам относятся те, которые определяют структуру отчета, его внешний вид, выводимые данные.Автор статьи: Волшебник | Редакторы:
Последняя редакция №2 от 11.01.06 | История
URL: http://kb.mista.ru/article.php?id=47

Настройки отчетов - это входные параметры, которые пользователь обычно указывает для формирования отчета или выполнения обработки. К таким параметрам относятся те, которые определяют структуру отчета, его внешний вид, выводимые данные. К настройкам отчета обычно НЕ относится период формирования отчета.

Настройки отчета обычно включают:

  • Группировки строк и столбцов (для кросс-таблиц) с учетом их порядка и иерархии

  • Показатели
  • Дополнительные поля

  • Отборы
  • Условия сортировки

  • Другие данные (флажки, поля ввода, таблицы, списки)


Возможность сохранять/восстанавливать настройки штатными средствами платформы доступна для форм отчетов и обработок, т.е. для таких форм, у которых основной реквизит имеет тип ОтчетОбъект, ОбработкаОбъект или для внешних обработок. В свойствах формы нужно устанавливить флажок "Сохранять значения" и заполнить список "Сохраняемые значения" (отметить галочками те элементы формы, значения которых надо сохранять). При сохранении и восстановлении настроек вызываются события ПередСохранениемЗначений и ПослеВосстановленияЗначений соответственно: в них можно запрограммировать свои действия.

Сохраненные настройки отчетов хранятся в профиле пользователя (в папке C:\Documents and Settings\<имя юзера>\Application Data\1C\1Cv8), поэтому к нему нужно относиться бережно, не удалять его. Настройки отчетов привязаны к базе, поэтому при пересоздании базы они пропадают.

см. также статью на ИТС: Мет. поддержка 8.0 -> Администрирование -> Сохранение параметров между сеансами. Если база файловая - или в файле 1Cv8.pfl в каталоге базы, или в файле 1Cv8.pfl в каталоге C:\Documents and Settings\<Имя пользователя>\Application Data\1C\1Cv8\<UID базы>\<UID пользователя>\




Чтобы настройки не пропадали и/или были глобальными (т.е. общими для всех пользователей этой базы), их можно сохранить в самой базе. Это можно сделать так:

1. Создать справочник "НастройкиОтчетов" с реквизитами:

  • ИмяОтчета - индексирование с доп. упорядочиванием

  • Комментарий
  • СохраненныеНастройки - строка неогр. длины



В каждом отчете (или лучше сделать процедуры в общем модуле):

2. В форме отчета разместить поле ввода, типа "СправочникСсылка.НастройкиОтчетов"

У этого поля ввода есть события:

Процедура НастройкаОтчетаПриИзменении(Элемент) 
    
   Если НЕ НастройкаОтчета.Пустая() Тогда 
        
       Если ЗначениеЗаполнено(НастройкаОтчета.СохраненныеНастройки) Тогда 
           СохраненныеНастройки = ЗначениеИзСтрокиВнутр(НастройкаОтчета.СохраненныеНастройки); 
           ПослеВосстановленияЗначений(); 
           ОбновитьОтчет(); 
       КонецЕсли; 
        
   КонецЕсли; 
    
КонецПроцедуры 

Процедура НастройкаОтчетаНачалоВыбора(Элемент, СтандартнаяОбработка) 
   СтандартнаяОбработка = Ложь; 
    
   ФормаВыбора = Справочники.НастройкиОтчетов.ПолучитьФормуВыбора(); 
   ФормаВыбора.ВладелецФормы = ЭлементыФормы.НастройкаОтчета; 
   ФормаВыбора.ИмяОтчета = ЭтотОтчет.Метаданные().Имя; 
   ФормаВыбора.Открыть(); 
    
КонецПроцедуры


3. Далее нужно переписать обработчик события для формы:

Процедура ПередСохранениемЗначений(Отказ) 
    
   СохраненныеНастройки = ЭтотОтчет.СформироватьСтруктуруДляСохраненияНастроек(ПоказыватьЗаголовок); 
    
   Если РольДоступна("ПолныеПрава") Тогда 
       Если НЕ НастройкаОтчета.Пустая() И ЗначениеЗаполнено(НастройкаОтчета.СохраненныеНастройки) Тогда 
            Если Вопрос("Вы действительно хотите перезаписать отчет '" + НастройкаОтчета.Наименование + "'?",РежимДиалогаВопрос.ДаНет)=КодВозвратаДиалога.Да Тогда 
               Об_НастройкаОтчета = НастройкаОтчета.ПолучитьОбъект(); 
               Об_НастройкаОтчета.СохраненныеНастройки = ЗначениеВСтрокуВнутр(СохраненныеНастройки); 
               Об_НастройкаОтчета.Записать(); 
           КонецЕсли; 
       КонецЕсли; 
   КонецЕсли; 
        
КонецПроцедуры // ПередСохранениемЗначений() 


4. У справочника "НастройкиОтчета" создать форму выбора, у которой переписать обработчик события

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка) 
    
   Если ЗначениеЗаполнено(ИмяОтчета) Тогда 
       СправочникСписок.Отбор.ИмяОтчета.Установить(ИмяОтчета); 
   КонецЕсли; 
    
КонецПроцедуры 





Другой вариант на эту же тему рассматривается здесь:

http://itland.ru/forum/index.php?showtopic=9347




Если отчет использует ПостроительОтчета, тогда можно использовать его метод ПолучитьНастройки(), которые возвращают значение с типом НастройкиПостроителя. Это значение можно также сохранить в базу и после восстановить методом УстановитьНастройки().

Описание | Рубрикатор | Поиск | ТелепатБот | Захваченные статьи | Установки | Форум
© Станислав Митичкин (Волшебник), 2005-2025 | Mista.ru

Яндекс.Метрика