1.
G_108408780541402684893
308.11.23 10:13 Сейчас в теме
Как можно сохранить отбор при закрытии обычной формы? Как здесь https://infostart.ru/1c/articles/88010/ но только для обычной формы и не динамического списка?
11.
G_108408780541402684893
310.11.23 13:07 Сейчас в теме
В итоге такое решение:
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПараметрыОтбор1 =Новый Структура;
ПараметрыОтбор1 = ЭтаФорма.Отбор;
СохранитьЗначение("ПараметрыОтбор1",ПараметрыОтбор1);
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ПараметрыОтбор1 = ВосстановитьЗначение("ПараметрыОтбор1");
Если ПараметрыОтбор1<>Неопределено Тогда
Для каждого Эл из ПараметрыОтбор1 Цикл
Если Эл.Использование = Истина Тогда
Имя2 = Эл.Имя;
ЗаполнитьЗначенияСвойств(Список.Отбор.Найти( Имя2 ), Эл);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
(5)
Написал за минуту на коленке, возможно не заработает для диапазонов или его-то подобного.
После вставки кода нужно процедуры подвязать к событиям формы.
Процедура ПриЗакрытии()
СохранитьЗначение(КлючУникальностиМодуля(), Отбор);
КонецПроцедуры
Процедура ПриОткрытии()
ОтборСохраненныйРанее = ВосстановитьЗначение(КлючУникальностиМодуля());
Если ОтборСохраненныйРанее <> Неопределено Тогда
Для Каждого ЭлементОтбора из ОтборСохраненныйРанее Цикл
ЗаполнитьЗначенияСвойств(Отбор.Найти( ЭлементОтбора.Имя ), ЭлементОтбора);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Функция КлючИмениОтбора()
Возврат "Например, полное имя модуля/формы, по красоте - получать с метаданных, но лень думать как" + "_Отбор";
КонецФункции
Таким образом можно получать/устанавливать настройки не только для текущего пользователя, но и любого другого по его имени. Т.е. можно переносить настройки любому пользователю.
(7) примерно так, точность не гарантирую, смотреть в СП
Процедура ПриЗакрытии()
ПараметрыОтбор=Новый Структура;
ПараметрыОтбор.Вставить("Отбор",ЭтаФорма.Отбор);
СохранитьЗначение("ПараметрыОтбор",ПараметрыОтбор);
////
Процедура ПриОткрытии()
ПараметрыОтбор=ВосстановитьЗначение("ПараметрыОтбор");
Если ПараметрыОтбор<>Неопределено Тогда
Для сч=1 по ЭтаФорма.Отбор.Количество() Цикл
ЭтаФорма.Отбор.Удалить[сч-1];
КонецЦикла;
Для каждого Эл из ПараметрыОтбор.Отбор Цикл
ЭтаФорма.Отбор.Добавить(Эл.Значение,Эл.Имя,Эл.Представление);
КонецЦикла;
КонецЕсли;
11.
G_108408780541402684893
310.11.23 13:07 Сейчас в теме
В итоге такое решение:
Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
ПараметрыОтбор1 =Новый Структура;
ПараметрыОтбор1 = ЭтаФорма.Отбор;
СохранитьЗначение("ПараметрыОтбор1",ПараметрыОтбор1);
КонецПроцедуры
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
ПараметрыОтбор1 = ВосстановитьЗначение("ПараметрыОтбор1");
Если ПараметрыОтбор1<>Неопределено Тогда
Для каждого Эл из ПараметрыОтбор1 Цикл
Если Эл.Использование = Истина Тогда
Имя2 = Эл.Имя;
ЗаполнитьЗначенияСвойств(Список.Отбор.Найти( Имя2 ), Эл);
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры