Напоминания пользователя / Настройки / Модуль формы

файл
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2024, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	СпособНапоминания = ?(НапоминанияПользователяСлужебный.ОтображатьНапоминанияВЦентреОповещений(), 1, 0);
	
КонецПроцедуры

&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
	
	Оповещение = Новый ОписаниеОповещения("ЗаписатьИЗакрытьОповещение", ЭтотОбъект);
	ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы);
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура НапоминатьВЦентреОповещенийПриИзменении(Элемент)

	Модифицированность = Истина;

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

&НаКлиенте
Процедура НапоминатьВоВсплывающемОкнеПриИзменении(Элемент)
	Модифицированность = Истина;
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
	
	СохранитьНастройки();
	Закрыть();
	
КонецПроцедуры

&НаКлиенте
Процедура Проверить(Команда)
	
	ПроверитьНаСервере();
	ОбновитьПовторноИспользуемыеЗначения();
	НапоминанияПользователяКлиент.ОткрытьФормуОповещения();
	СерверныеОповещенияКлиент.ПодключитьОбработчикПроверкиПолученияСерверныхОповещений(, Истина);
	
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервере
Процедура ПроверитьНаСервере()
	
	Настройки = Новый Структура;
	Настройки.Вставить("ОтображатьНапоминанияВЦентреОповещений", СпособНапоминания = 1);
	УстановитьНастройкиНаСервере(Настройки);
	Модифицированность = Ложь;
	НапоминанияПользователя.УстановитьНапоминание(НСтр("ru = 'Мое напоминание'"), ТекущаяДатаСеанса() - 15);
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаписатьИЗакрытьОповещение(Результат, Контекст) Экспорт

	СохранитьНастройки();
	Закрыть();
	
КонецПроцедуры

&НаКлиенте
Процедура СохранитьНастройки()
	
	Настройки = Новый Структура;
	Настройки.Вставить("ОтображатьНапоминанияВЦентреОповещений", СпособНапоминания = 1);
	УстановитьНастройкиНаСервере(Настройки);
	ОбновитьПовторноИспользуемыеЗначения();
	Модифицированность = Ложь;
	
КонецПроцедуры

&НаСервереБезКонтекста
Процедура УстановитьНастройкиНаСервере(Настройки)
	Для Каждого Настройка Из Настройки Цикл
		ОбщегоНазначения.ХранилищеОбщихНастроекСохранить("ОбщиеНастройкиПользователя", Настройка.Ключ, Настройка.Значение);
	КонецЦикла;
КонецПроцедуры

#КонецОбласти

Связанные материалы