Имя: Пароль:
1C
 
СКД и сохранение пользовательских реквизитов
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 - отдельное большое спасибо за неравнодушие.