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