Отчеты сброс настроек отбора

Внимание! Данный форум является модерируемым.
Для получения к нему доступа необходимо зарегистрироваться или авторизоваться на сайте.

Страницы: 1
RSS
Отчеты сброс настроек отбора
 
Добрый день, при использовании типового отчета на СКД например Взаиморасчеты при смене варианта, например с Остатки взаиморасчетов на Взаиморасчеты, сбрасываются настройки отбора, Контрагент, Договор взаиморасчетов например. Это очень не удобно, можно ли как то это исправить ?
 
Андрей Владимирович, добрый день, настройки отбора - это настройки конкретного варианта отчета. Естественно,что при изменении варианта отчета настройки сбрасываются,чтобы Вы могли выставить те настройки, что необходимы именно данному варианту.
 
Это не совсем верно, если мы говорим о пользовательских вариантах отчета. которые они себе сохранили то да, но тут идет речь о предопределенный вариантах отчета, коих в указанном мною отчете 3.

Почему это не удобно: например в документе пользователь видит на форме что у контрагента имеется задолженность, по нажатию открывается отчет Взаиморасчеты с отбором по этому контрагенту и договору, и текущие остатки по сделка, но если нужно посмотреть, разобраться почему такие остатки и какие были движения, пользователь пробует переключить отчет на вариант Движения взаиморасчетов. и все сбрасывается. Это очень не удобно, и пользователи не пользуются этими отчетами.
 
Андрей Владимирович, все верно, по гиперссылке из документа открывается вариант отчета с выставленными настройками. Вариант настройки сохранен разработчиками при написании данного функционала. При выборе другого варианта, прежние настройки не сохраняются.
 
Как вариант можно было бы спрашивать при изменении варианта настроек, Сбросить настройки или нет, дать выбор пользователю.
 
Андрей Владимирович, таких изменений не планируется.
 
Сделал изменения в коде для Сохранения настроек отбора при изменении варианта отчета, вдруг кому пригодится. Заменить процедуры на указанные ниже.

Общие формы - Отчет_Тонкий_Клиент - Процедура ИзменитьВариантОтчета()
Код
&НаСервере
Процедура ИзменитьВариантОтчета()
   
   Настройки = ХранилищаНастроек.ХранилищеВариантовОтчетов.ПолучитьНастройки(ЭтаФорма.КлючОтчета, ЭтаФорма.КлючТекущегоВарианта);
   Если НЕ Настройки = Неопределено Тогда
      
      ОтборСтарый = Отчет.КомпоновщикНастроек.Настройки.Отбор;

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

Общие формы - ОтчетФормаНастройки - Процедура ВыбратьВариантНаСервере()
Код
&НаСервере
Процедура ВыбратьВариантНаСервере(ИмяВарианта)
   
   ОтчетыСервер.УстановитьЗаголовокВарианта(ЭтаФорма, ИмяВарианта);
   
   СхемаКомпоновкиДанных = ПолучитьИзВременногоХранилища(СхемаКомпоновки);
      
   РежимТолькоЭксперт = Ложь;
   ТиповойВариантНастроек = СхемаКомпоновкиДанных.ВариантыНастроек.Найти(ЭтаФорма.КлючТекущегоВарианта);
   
   ОтборСтарый = Отчет.КомпоновщикНастроек.Настройки.Отбор;
   
   Если ТиповойВариантНастроек = Неопределено Тогда
      // Пользовательский вариант настроек
      Настройки = ХранилищаНастроек.ХранилищеВариантовОтчетов.ПолучитьНастройки(КлючОтчета, КлючТекущегоВарианта);
      Если НЕ Настройки = Неопределено Тогда
         Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
         ОбновитьНастройкиОтчета(Отчет.КомпоновщикНастроек.Настройки);
      КонецЕсли;
   Иначе
      Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(ТиповойВариантНастроек.Настройки);
      Для Каждого СтрокаОтбор ИЗ Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
         Для Каждого СтрокаОтборСтарый ИЗ ОтборСтарый.Элементы Цикл
            Если СтрокаОтбор.ЛевоеЗначение    = СтрокаОтборСтарый.ЛевоеЗначение И ЗначениеЗаполнено(СтрокаОтборСтарый.ПравоеЗначение) Тогда
               СтрокаОтбор.ПравоеЗначение    = СтрокаОтборСтарый.ПравоеЗначение;
               СтрокаОтбор.ВидСравнения    = СтрокаОтборСтарый.ВидСравнения;
               СтрокаОтбор.Использование    = Истина;
            КонецЕсли;
         КонецЦикла;
      КонецЦикла;
      ОбновитьНастройкиОтчета(Отчет.КомпоновщикНастроек.Настройки);
   КонецЕсли;
   
КонецПроцедуры
 
Спасибо. Полезное исправление!!
Страницы: 1
Читают тему
Поддержка отраслевых решений «1С-Рарус»
Услуги 1С