Замена функции СохранитьЗначения() ВосстановитьЗначения() и штатный справочник "СохраненныеНастройки"

20.03.12

Разработка - Универсальные функции

Замена функции   СохранитьЗначения()  ВосстановитьЗначения()  и штатный справочник  "СохраненныеНастройки"

Захотелось мне сохранить некоторые значения в форме сразу для ВСЕХ ПОЛЬЗОВАТЕЛЕЙ  и  не "где-то на компе" а в моей базе.

Я хочу  совместными усилиями упростить код.

Вариант с добавлением кнопок на форму "СохранитьЗначения / Восстановить значения" не предлагать,  так не интересно,  хочется "покрутить ручки".

Хороший вариант //infostart.ru/public/22132/  но там надо заводить регистр сведений "СохраненныеНастройки"

Итак  вот мой код:

В любом документе или внешней форме
 

Процедура ПриОткрытии()
// из  "Хранилища" справочника "СохраненныеДанные" вытаскиваем значения некоторых полей и восстановим их на этой форме 

СпрСохранениеНастроек = Справочники.СохраненныеНастройки;

//Находим строку для текущего документа.

Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту("НастраиваемыйОбъект" ,СокрЛП("ОтчетОбъект."+ЭтаФорма.Метаданные().Имя) );

Хранилище=Поиск.ХранилищеНастроек.Получить();

// Присвоим полям формы данные из Хранилища (если данных еще нет, то "молчим" )

Если Хранилище<>НЕОПРЕДЕЛЕНО Тогда 

// Ваши поля

ЭтаФорма.НачПериода=Хранилище.НачПериода; 

 /// .......

КонецЕсли;

КонецПроцедуры;

 

 

 

 

 

Процедура ПриЗакрытии()
// Запишем в справочник "СохраненныеНастройки" некоторые данные 

СпрСохранениеНастроек = Справочники.СохраненныеНастройки;

//Находим строку для текущего документа. Если такой записи еще нет, то создаем 

Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту("НастраиваемыйОбъект" ,СокрЛП("ОтчетОбъект."+ЭтаФорма.Метаданные().Имя) ); 

Если  ПустаяСтрока(Поиск) Тогда 

  НоваяЗапись = СпрСохранениеНастроек.СоздатьЭлемент(); 

НоваяЗапись.НастраиваемыйОбъект "ОтчетОбъект."+ЭтаФорма.Метаданные().Имя;

//Узнаем имя как заданно в конфигураторе; 

НоваяЗапись.Наименование =  ЭтотОбъект.Метаданные();

НоваяЗапись.Описание = "Храним данные для моей формы"; // краткое описание строки, на какой хрен она нужна

  НоваяЗапись.Записать();

  // Запишем в табличную часть "Пользователи" всего одну строку для "Всех пользователей" 

  // снова ищем строку, она уже записанна, и становимся на нее. 

  Поиск= СпрСохранениеНастроек.НайтиПоРеквизиту("НастраиваемыйОбъект" ,СокрЛП("ОтчетОбъект."+ЭтаФорма.Метаданные().Имя) );

    Элемент=Поиск.ПолучитьОбъект(); // выбираем по этой строке   

  НоваяСтрока=Элемент.Пользователи.Добавить();   

НоваяСтрока.Пользователь=Справочники.ГруппыПользователей.ВсеПользователи; // в Справ "ГруппыПользователей" есть строка  "Все пользователи", ее и берем 

  НоваяСтрока.ПравоИзменения=Истина;

    Элемент.Записать();   

  КонецЕсли;

     

// Для "Хранилища" справочника "СохраненныеНастройки" укажем какие поля сохранять 

     СтруктураНастроек = Новый Структура;

    СтруктураНастроек.Вставить("ВашеПоле",ВашеПоле); ........

     ...... свои поля

  // запишем в "Хранилище" справочника "СохраненныеНастройки" указанные данные ( это штатная функция ! ) 

      // уточнить надо ли хранилище очищать ? или перезаписывается повех ?   

     СохранениеНастроек.СохранитьНастройкуОбъекта(Поиск,СтруктураНастроек);
КонецПроцедуры;
 

 

См. также

Универсальные функции Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Благодаря этим пяти строчкам можно больше не заморачиваться с загрузкой из внешних файлов. Пользуюсь везде, всегда и постоянно.

21.05.2024    25036    dimanich70    82    

149

Универсальные функции Программист Платформа 1С v8.3 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    4492    3    John_d    11    

57

Универсальные функции Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    25300    atdonya    25    

58

Универсальные функции Программист Платформа 1С v8.3 Бесплатно (free)

На заключительных этапах, когда идет отладка или доработка интерфейса, необходимо много раз переоткрыть внешний объект. Вот один из способов автоматизации этого.

30.11.2023    6053    ke.92@mail.ru    17    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    16511    YA_418728146    8    

170

Пакетная печать Печатные формы Адаптация типовых решений Универсальные функции Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    4247    73    progmaster    10    

4

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 1C:Бухгалтерия 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    19122    180    sapervodichka    112    

136
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Aleksey-29 09.11.11 09:59 Сейчас в теме
Зачем велосипед изобретать?? :?:
2. a-novoselov 1158 09.11.11 14:01 Сейчас в теме
Чушь какая-то. Какой "ОтчетОбъект."+ЭтаФорма.Метаданные().Имя? Во-первых, у формы нет метода Метаданные(). Во вторых, обработка и документ могут иметь одно и то же имя, а в настройке вообще будет написано, что она для отчета("ОтчетОбъект."). Да и в 8.2 есть в общих объектах хранилища настроек. Может все-таки через них делать такие вещи?
3. mtv:) 1028 21.03.12 20:17 Сейчас в теме
(0) Делал буквально на днях подобное, но использовал для этого свойство конфигурации "ХранилищеОбщихНастроек".
Хотя и в твоей идее есть что-то. Надо на досуге покопать в этом направлении. Спасибо за идею.
4. mart-sha 296 22.03.12 12:30 Сейчас в теме
Оставьте свое сообщение