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