2 мар. 2020 г.

Реализация СохранитьЗначение() и ХранилищеОбщихНастроек.Сохранить() своими силами

Реализация методов СохранитьЗначение() ХранилищеОбщихНастроек.Сохранить() без ошибок прав доступа и прочих последствий.
  • Добавляем ПараметрыСеанса исДопПараметры с типом ХранилищеЗначения
  • В "МодульСеанса" в событие УстановкаПараметровСеанса(...) добавляем следующее
Процедура УстановкаПараметровСеанса(ТребуемыеПараметры) Если ТребуемыеПараметры = Неопределено Тогда Иначе УстановленныеПараметры = Новый Структура; Для Каждого ИмяПараметра ИЗ ТребуемыеПараметры Цикл УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры); КонецЦикла; КонецЕсли; КонецПроцедуры

Процедура УстановитьЗначениеПараметраСеанса(ИмяПараметра, УстановленныеПараметры) Если ИмяПараметра = "исДопПараметры" Тогда ДопПараметр = Новый ХранилищеЗначения(Новый Структура); ПараметрыСеанса.исДопПараметры = ДопПараметр; КонецЕсли; КонецПроцедуры

  • Добавляем общий модуль с именем "ИС", в который размещаем следующие процедуры
исБезПроверкиНаЗапретРедактирования - это именованный произвольно параметр по которому далее
идет логика поиска

Функция БезПроверкиНаЗапретРедактирования(Источник) Экспорт исБезПроверкиНаЗапретРедактирования = ПолучитьДопПараметр("исБезПроверкиНаЗапретРедактирования"); Возврат исБезПроверкиНаЗапретРедактирования = Истина; КонецФункции Функция ПолучитьДопПараметр(ИмяПараметра) Экспорт ЗначПараметра = Неопределено; ДопПараметры = ПараметрыСеанса.исДопПараметры.Получить(); Если ТипЗнч(ДопПараметры) = Тип("Структура") Тогда ДопПараметры.Свойство(ИмяПараметра, ЗначПараметра); КонецЕсли; Возврат ЗначПараметра КонецФункции Процедура УстановитьДопПараметры(ИмяПараметра, ЗначениеПараметра) Экспорт ТекПараметр = ПараметрыСеанса.исДопПараметры.Получить(); Если ТипЗнч(ТекПараметр) <> Тип("Структура") Тогда ТекПараметр = Новый Структура КонецЕсли; ТекПараметр.Вставить(ИмяПараметра, ЗначениеПараметра); ПараметрыСеанса.исДопПараметры = Новый ХранилищеЗначения(ТекПараметр) КонецПроцедуры

  • Пример вызова процедур и функций вот такими способами
  1. ис.УстановитьДопПараметры("исБезПроверкиНаЗапретРедактирования",Неопределено)
  2. Если ис.ПолучитьДопПараметр("исБезПроверкиНаЗапретРедактирования") = Истина Тогда
  3. Если ИС.БезПроверкиНаЗапретРедактирования(Источник) Тогда Возврат КонецЕсли;

Комментариев нет:

Отправить комментарий

 

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