9 сент. 2016 г.

Сохранить восстановить настройки формы

Данная часть кода по событиям с процедурами и функциями даст возможность сохранить настройки (заполненные поля), например внешней обработке при закрытии этой обработки, а так же при открытии восстановить эти же настройки (заполнения поля) в форму обработки.
&НаКлиенте
Перем НужноЗакрыватьФорму; 


// СОХРАНЕНИЕ

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

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

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

Процедура СохранитьНастройкиПользователя(Настройки)
        КлючОбъекта  = "OpenCartSQL";
        КлючНастроек = "OpenCartSQL_Настройки";
                               
        ХранилищеОбщихНастроек.Сохранить(КлючОбъекта,КлючНастроек,Настройки,,Пользователи.ТекущийПользователь());
КонецПроцедуры


// ВОССТАНОВЛЕНИЕ 

&НаКлиентеПроцедура 
ПриОткрытии(Отказ)
        ВосстановитьНастройкиПользователя();
КонецПроцедуры

Процедура ВосстановитьНастройкиПользователя()
        КлючОбъекта  = "OpenCartSQL";
        КлючНастроек = "OpenCartSQL_Настройки";
        // Для восстановления настроек необходимо воспользоваться функцией Загрузить
        СтруктураНастроек = Неопределено;
        Попытка
                СтруктураНастроек = ХранилищеОбщихНастроек.Загрузить(КлючОбъекта,КлючНастроек,,Пользователи.ТекущийПользователь());
                // если настроек нет, то будет возвращено значение "Неопределено"
        Исключение
                Сообщить("Нет прав на восстановление настроек.");
        КонецПопытки;
       
        Если СтруктураНастроек <> Неопределено Тогда
                ВосстановитьЗначенияРеквизитов(СтруктураНастроек);       
        КонецЕсли;
КонецПроцедуры

Процедура ВосстановитьЗначенияРеквизитов(СтруктураНастроек)
        Для Каждого Эл Из СтруктураНастроек Цикл 
                ЭтаФорма[Эл.Ключ] = Эл.Значение;   
        КонецЦикла;
КонецПроцедуры
 

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07