Замена функции СохранитьЗначения() ВосстановитьЗначения() и штатный справочник СохраненныеНастройки
Замена функции СохранитьЗначения() ВосстановитьЗначения() и штатный справочник "СохраненныеНастройки"
- Описание
- Подробнее
Описание
Захотелось мне сохранить некоторые значения в форме сразу для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ и не «где-то на компе» а в моей базе.
Я хочу совместными усилиями упростить код.
Вариант с добавлением кнопок на форму «СохранитьЗначения / Восстановить значения» не предлагать, так не интересно, хочется «покрутить ручки».
Хороший вариант //sale.itcity.ru/public/22132/ но там надо заводить регистр сведений «СохраненныеНастройки»
Итак вот мой код:
В любом документе или внешней форме
Процедура ПриОткрытии()
// из «Хранилища» справочника «СохраненныеДанные» вытаскиваем значения некоторых полей и восстановим их на этой форме
СпрСохранениеНастроек = Справочники.СохраненныеНастройки;
//Находим строку для текущего документа.
Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту(«НастраиваемыйОбъект» ,СокрЛП(«ОтчетОбъект.»+ЭтаФорма.Метаданные().Имя) );
Хранилище=Поиск.ХранилищеНастроек.Получить();
// Присвоим полям формы данные из Хранилища (если данных еще нет, то «молчим» )
Если Хранилище<>НЕОПРЕДЕЛЕНО Тогда
// Ваши поля
ЭтаФорма.НачПериода=Хранилище.НачПериода;
/// …….
КонецЕсли;
КонецПроцедуры;
Процедура ПриЗакрытии()
// Запишем в справочник "СохраненныеНастройки" некоторые данные
СпрСохранениеНастроек = Справочники.СохраненныеНастройки;
//Находим строку для текущего документа. Если такой записи еще нет, то создаем
Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту(«НастраиваемыйОбъект» ,СокрЛП(«ОтчетОбъект.»+ЭтаФорма.Метаданные().Имя) );
Если ПустаяСтрока(Поиск) Тогда
НоваяЗапись = СпрСохранениеНастроек.СоздатьЭлемент();
НоваяЗапись.НастраиваемыйОбъект = «ОтчетОбъект.»+ЭтаФорма.Метаданные().Имя;
//Узнаем имя как заданно в конфигураторе;
НоваяЗапись.Наименование = ЭтотОбъект.Метаданные();
НоваяЗапись.Описание = «Храним данные для моей формы»; // краткое описание строки, на какой хрен она нужна
НоваяЗапись.Записать();
// Запишем в табличную часть «Пользователи» всего одну строку для «Всех пользователей»
// снова ищем строку, она уже записанна, и становимся на нее.
Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту(«НастраиваемыйОбъект» ,СокрЛП(«ОтчетОбъект.»+ЭтаФорма.Метаданные().Имя) );
Элемент=Поиск.ПолучитьОбъект(); // выбираем по этой строке
НоваяСтрока=Элемент.Пользователи.Добавить();
НоваяСтрока.Пользователь=Справочники.ГруппыПользователей.ВсеПользователи; // в Справ «ГруппыПользователей» есть строка «Все пользователи», ее и берем
НоваяСтрока.ПравоИзменения=Истина;
Элемент.Записать();
КонецЕсли;
// Для «Хранилища» справочника «СохраненныеНастройки» укажем какие поля сохранять
СтруктураНастроек = Новый Структура;
СтруктураНастроек.Вставить(«ВашеПоле»,ВашеПоле); ……..
…… свои поля
// запишем в «Хранилище» справочника «СохраненныеНастройки» указанные данные ( это штатная функция ! )
// уточнить надо ли хранилище очищать ? или перезаписывается повех ?
СохранениеНастроек.СохранитьНастройкуОбъекта(Поиск,СтруктураНастроек);
КонецПроцедуры;

