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

20.03.12

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// Ваши поля

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

 /// .......

КонецЕсли;

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

 

 

 

 

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  КонецЕсли;

     

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

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

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

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

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

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

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

 

См. также

GUID в 1С 8.3 - как с ними быть

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

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

12.02.2024    4331    atdonya    22    

41

Переоткрытие внешних обработок

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

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

30.11.2023    3885    ke.92@mail.ru    16    

60

Валидация JSON через XDTO (включая массивы)

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

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

28.08.2023    8563    YA_418728146    6    

139

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

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

2 стартмани

22.08.2023    2022    21    progmaster    7    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 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    16016    131    sapervodichka    112    

129

Система контроля ведения учета [БСП]

Универсальные функции Механизмы типовых конфигураций БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7200    quazare    8    

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