Документооборот с контролирующими органами / Форма предупреждения о смене значения параметра подключения / Модуль формы

файл
&НаКлиенте
Перем КонтекстЭДОКлиент;

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	ТекущаяДатаСервер = ТекущаяДатаСеанса();
	
	// Пропускаем инициализацию, чтобы гарантировать получение формы при передаче параметра "АвтоТест".
	Если Параметры.Свойство("АвтоТест") Тогда
		Возврат;
	КонецЕсли;
	
	ТекстСообщения = "";
	КонтекстЭДОСервер = ДокументооборотСКО.ПолучитьОбработкуЭДО(ТекстСообщения);
	Если КонтекстЭДОСервер = Неопределено Тогда
		Отказ = Истина;
	КонецЕсли;
	
	ДвДанные = Параметры.ДвДанныеСертификата;
	
	Организация    = Параметры.Организация;
	УчетнаяЗапись  = КонтекстЭДОСервер.УчетнаяЗаписьОрганизации(Организация);
	Поддерживается = ОбработкаЗаявленийАбонентаВызовСервера.ПоддерживаетсяВторичноеЗаявление(УчетнаяЗапись);
	
	Если НЕ Поддерживается Тогда
		Отказ = Истина;
	КонецЕсли;
	
	// Создаем таблицу с одной строкой.
	// Только при такой структуре данных мы сможем воспользоваться существующей функцией из КонтекстЭДОСервер.
	ИзменившиесяРеквизитыОрганизации = ИзменившиесяРеквизитыОрганизаций.Добавить();
	ИзменившиесяРеквизитыОрганизации.Организация = Организация;
	ИзменившиесяРеквизитыОрганизации.УчетнаяЗаписьДокументооборота = УчетнаяЗапись;
	
	// Заполняем значения в колонках СписокИзменившихсяРеквизитов и ПредставлениеИзменившихсяРеквизитов
	Если ЗначениеЗаполнено(ДвДанные) Тогда
		СертификатПользователя = Новый СертификатКриптографии(ДвДанные);
	Иначе
		СертификатПользователя = Неопределено;
	КонецЕсли;
	
	КонтекстЭДОСервер.ДобавитьИзменившиесяРеквизиты(ИзменившиесяРеквизитыОрганизации, СертификатПользователя);
	// Определяем, нужно ли показывать напоминание или нет
	КонтекстЭДОСервер.ОставитьТолькоИзменившиесяРеквизитыТребующиеНапоминания(ИзменившиесяРеквизитыОрганизаций, ТекущаяДатаСеанса());
	
	// Проверяем необходимость показа предупреждения
	Если ИзменившиесяРеквизитыОрганизаций.Количество() = 0 Тогда
		Отказ = Истина;
	Иначе
		Текст = НСтр("ru = 'У организации ""%1"" изменились следующие настройки подключения: '") 
			+ ИзменившиесяРеквизитыОрганизаций[0].ПредставлениеИзменившихсяРеквизитов;
		Текст = СтрШаблон(Текст, Организация);
		Элементы.ПредупреждениеОбИзмененииПараметров.Заголовок = Текст; 
	КонецЕсли;
	
КонецПроцедуры

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

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

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

&НаКлиенте
Процедура ОтправитьЗаявление(Команда)
	
	// Открываем форму, открываем мастер
	Закрыть(Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура НапомнитьПозже(Команда)
	
	НапомнитьПользователюПозже();
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ПриОткрытииЗавершение(Результат, ДополнительныеПараметры) Экспорт
	
	КонтекстЭДОКлиент = Результат.КонтекстЭДО;
	
КонецПроцедуры

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

&НаКлиенте
Процедура НапомнитьПользователюПозже()
	
	ДатаНапоминания = НачалоДня(ТекущаяДатаСервер) + 24 * 60 * 60;
	СохранитьДатуНапоминанияДляИзменившихсяРеквизитов(ДатаНапоминания);
	
	Если ЭтаФорма.Открыта() Тогда
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

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

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