![]() |
![]() |
![]() |
|
СКД и сохранение пользовательских реквизитов | ☑ | ||
---|---|---|---|---|
0
folo
01.07.25
✎
16:32
|
Добрый день. Вопрос простой- как запретить сохранение пользовательских настроек при закрытии формы СКД. При создании задаю пользовательские настройки. В шапке отчета они верные, а в быстром отборе - то на чем была закрыта форма ранее. Даже в процедуре ПриЗагрузкеПользовательскихНастроекНаСервере заново устанавливаю нужные параметры- не помогает.
|
|||
1
folo
01.07.25
✎
16:39
|
Нажимаю кнопку установить стандартные настройки- все встает на места как должно быть. Автосохранение данных отключено.
|
|||
2
youalex
01.07.25
✎
18:04
|
>в процедуре ПриЗагрузкеПользовательскихНастроекНаСервере заново устанавливаю
Текущие очищаешь при этом? В ПриЗагрузкеПользовательскихНастроекНаСервере() - они уже в компоновщике, можно предварительно очищать в ПередЗагрузкойПользовательскихНастроекНаСервере(Настройки или в ПриСохраненииПользовательскихНастроекНаСервере(Настройки - твой вопрос. У настроек которых ты добавляешь программно - идентификатор заполняешь? Режим отображения = Быстрый выбор? |
|||
3
folo
01.07.25
✎
18:29
|
Не понял зачем очищать если они перезаписываются.
При сохранении пользовательских настроек тоже неверно. Завтра пользователь зайдет с другими настройками и текущие будут кривыми. Идентификатор не меняется , он привязан к настройкам компоновщика. |
|||
4
folo
01.07.25
✎
18:30
|
Настройки не добавляются а переустанавливаются.
|
|||
5
youalex
01.07.25
✎
18:42
|
Покажи код, где "При создании задаю пользовательские настройки"
|
|||
6
folo
01.07.25
✎
18:46
|
После создания на сервере она автоматом идет в процедуру Перед загрузкой Ваарианта на сервере
&НаСервере Процедура ПередЗагрузкойВариантаНаСервере(Настройки) Расшифровка = ПолучитьИзВременногоХранилища(параметры.АдресРасшифровки); _Период = Новый СтандартныйПериод; _Период.ДатаНачала = расшифровка.Объект.НачалоПериода; _период.ДатаОкончания = расшифровка.Объект.КонецПериода; ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных("Период"); //параметрСКД = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки); ПараметрСКД = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки); ПараметрСКД.Значение = _Период; ПараметрСКД.Использование = Истина; Если ЗначениеЗаполнено(ПараметрСКД.ИдентификаторПользовательскойНастройки) Тогда ПользовательскийПараметр = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти( ПараметрСКД.ИдентификаторПользовательскойНастройки); Если ТипЗнч(ПользовательскийПараметр) = Тип("ЗначениеПараметраНастроекКомпоновкиДанных") Тогда ПользовательскийПараметр.Значение = ПараметрСКД.Значение; КонецЕсли; КонецЕсли; Попытка //Для каждого Элемент Из Отчет.КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл Для каждого Элемент Из Настройки.Отбор.Элементы Цикл Если Строка(Элемент.ЛевоеЗначение) = "Счет" Тогда ОтборСчет = Элемент; ОтборСчет.ПравоеЗначение = параметры.РеквизитыПравилРасшифровки.Счет; ОтборСчет.Использование = ЗначениеЗаполнено(параметры.РеквизитыПравилРасшифровки.Счет); ПользовательскийОтбор = Отчет.КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти( ОтборСчет.ИдентификаторПользовательскойНастройки); ПользовательскийОтбор.ПравоеЗначение = параметры.РеквизитыПравилРасшифровки.Счет; ПользовательскийОтбор.Использование = Истина; ИначеЕсли Строка(Элемент.ЛевоеЗначение) = "Субконто1" Тогда Элемент.ПредставлениеПользовательскойНастройки = параметры.РеквизитыПравилРасшифровки.Счет.ВидыСубконто[0].ВидСубконто; ИначеЕсли Строка(Элемент.ЛевоеЗначение) = "Субконто2" Тогда Элемент.ПредставлениеПользовательскойНастройки = параметры.РеквизитыПравилРасшифровки.Счет.ВидыСубконто[1].ВидСубконто; ИначеЕсли Строка(Элемент.ЛевоеЗначение) = "Субконто3" Тогда Элемент.ПредставлениеПользовательскойНастройки = параметры.РеквизитыПравилРасшифровки.Счет.ВидыСубконто[2].ВидСубконто; КонецЕсли; КонецЦикла; Исключение КонецПопытки; СкомпоноватьРезультат(РежимКомпоновкиРезультата.Непосредственно); КонецПроцедуры |
|||
7
folo
01.07.25
✎
18:48
|
Потом иду в ПриЗагрузкеПользовательскихНастроекНаСервере. Там параметр ИспользуютсяСтандартныеНастройки =ложь если настройки взяты из хранилища.
|
|||
8
folo
01.07.25
✎
18:48
|
Тогда еще раз устанавливаю.
|
|||
9
folo
01.07.25
✎
18:54
|
Похоже дошло. Менять сохраненные на свои нужно в процедуре ПередЗагрузкойПользовательскихНастроекНаСервере. Спасибо всем. Особо youalex - отдельное большое спасибо за неравнодушие.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |