Документооборот с контролирующими органами / Помощник МЧД паспортные данные / Модуль формы

файл


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

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

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

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

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

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

&НаКлиенте
Процедура СилуэтНажатие(Элемент)
	ПоказатьПредупреждение(,НСтр("ru = 'Добавление фото не требуется'"));
КонецПроцедуры

&НаКлиенте
Процедура ПереключательВидаДокументаПриИзменении(Элемент)
	
	Модифицированность = Истина;
	
	Если ВидДокументаПереключатель = ПредопределенноеЗначение("Перечисление.ВидыУдостоверенийВладельцаЭП.Иное") Тогда
		ВладелецЭЦПВидДокумента = Неопределено;
	Иначе
		ВладелецЭЦПВидДокумента = ВидДокументаПереключатель;
	КонецЕсли;
	
	ПриИзмененииВидаДокумента();

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

&НаКлиенте
Процедура ЗначениеПриИзменении(Элемент)
	
	ИзменитьОформлениеПаспортныхДанных();
	Модифицированность = Истина;
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура Сохранить(Команда = Неопределено)
	
	Если НЕ ЗначениеЗаполнено(ВладелецЭЦПВидДокумента) Тогда
		ОбщегоНазначенияКлиент.СообщитьПользователю(НСтр("ru = 'Выберите вид документа'"),,"ВладелецЭЦПВидДокументаИзПомощникаМЧД");
		Возврат;
	КонецЕсли;
	
	ДанныеКорректны = Истина;
	ПаспортныеДанныеУказаныКорректно(ДанныеКорректны, Истина);
	
	Если ДанныеКорректны Тогда
		
		ДополнительныеПараметры = Новый Структура(ПараметрыФормы);
		ЗаполнитьЗначенияСвойств(ДополнительныеПараметры, ЭтотОбъект, ПараметрыФормы); 
		ДополнительныеПараметры.Вставить("ПараметрыФормы",     ПараметрыФормы);
		ДополнительныеПараметры.Вставить("Модифицированность", Модифицированность);
		
		Модифицированность = Ложь;
		
		Закрыть(ДополнительныеПараметры);
		
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ПередЗакрытием_Завершение(Результат, ВходящийКонтекст) Экспорт
	
	Сохранить();
	
КонецПроцедуры

&НаСервере
Функция ПаспортныеДанныеУказаныКорректно(МастерДалее = Истина, ВыводитьСообщения)

	Возврат Истина;
	
КонецФункции

&НаСервере
Процедура ПриИзмененииВидаДокумента()
	
	Если ЭтоПаспортРФ() И НЕ ЗначениеЗаполнено(ВладелецЭЦПГражданство) Тогда
		ВладелецЭЦПГражданство = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.СтраныМира.Россия");
	КонецЕсли;
	
	Элементы.ГруппаКодПодразделения.Видимость = ЭтоПаспортРФ();
	Элементы.ВладелецЭЦПВидДокументаИзПомощникаМЧД.Видимость = НЕ ЭтоПаспортРФ() И ИзПомощникаМЧД;
	
	ИзменитьОформлениеПаспортныхДанных();
	
КонецПроцедуры

&НаКлиенте
Процедура ВывестиОшибку(Элемент)
	
	ОбработкаЗаявленийАбонентаКлиент.ВывестиОшибку(Элемент);
	
КонецПроцедуры
	
&НаСервере
Процедура ИзменитьОформлениеПаспортныхДанных()
	
	// Для паспорта своя страница, для остальных - своя
	Если ЭтоПаспортРФ() Тогда
		
		Элементы.ВидыДокументов.ТекущаяСтраница = Элементы.ГруппаПаспорт;
		
		// Чтобы в вебе красная строка не переносилась на вторую строку
		Если ОбщегоНазначения.ЭтоВебКлиент() Тогда
			Элементы.КраснаяРазделительнаяЛиния.Шрифт = Новый Шрифт(,,10);
		КонецЕсли;
		
		Элементы.ВладелецЭЦПСерияДокумента.ОграничениеТипа = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(5));
		Элементы.ВладелецЭЦПНомерДокумента.ОграничениеТипа = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(6));
		
	Иначе
		
		Элементы.ВидыДокументов.ТекущаяСтраница = Элементы.ГруппаДругиеДокументы;
		
		Элементы.ВладелецЭЦПСерияДокумента.ОграничениеТипа = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки());
		Элементы.ВладелецЭЦПНомерДокумента.ОграничениеТипа = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки());
		
	КонецЕсли;

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

&НаСервере
Процедура ИзменитьОформлениеПриСоздании()
	
	Элементы.ВладелецЭЦПДатаРождения.Доступность = НЕ СкрытьДатуРождения;
	Элементы.ГруппаДатаВыдачи1.Видимость = НЕ СкрытьДатуРождения;
	
	Элементы.ВладелецЭЦПМестоРождения.Доступность = НЕ СкрытьМестоРождения;
	Элементы.ГруппаМестоРождения1.Видимость = НЕ СкрытьМестоРождения;
	
	Элементы.ВладелецЭЦППол.Доступность = НЕ СкрытьПол;
	Элементы.ГруппаПол1.Видимость = НЕ СкрытьПол;
	
	Элементы.ГруппаГражданство1.Видимость = НЕ СкрытьГражданство;
	
	Элементы.ВладелецЭЦПКемВыданДокумент.Доступность = НЕ СкрытьКемКогдаВыдан;
	Элементы.ВладелецЭЦПДатаВыдачиДокумента.Доступность = НЕ СкрытьКемКогдаВыдан;
	Элементы.ВладелецЭЦПКодПодразделения.Доступность = НЕ СкрытьКемКогдаВыдан;
	
	Элементы.ГруппаДокументВыдан1.Видимость = НЕ СкрытьКемКогдаВыдан;
	Элементы.ГруппаДатаВыдачи1.Видимость = НЕ СкрытьКемКогдаВыдан;
	
КонецПроцедуры

&НаКлиенте
Процедура ВладелецЭЦПВидДокументаИзПомощникаМЧДПриИзменении(Элемент)

	ВладелецЭЦПВидДокумента = ВладелецЭЦПВидДокументаИзПомощникаМЧД;
	
	ПриИзмененииВидаДокумента();
	
КонецПроцедуры

&НаСервере
Функция ЭтоПаспортРФ()

	Возврат ЭлектронныйДокументооборотСКонтролирующимиОрганамиВызовСервера.ЭтоПаспортРФ(ВладелецЭЦПВидДокумента);

КонецФункции

&НаСервере
Процедура ИнициалироватьПереключатель()
	
	Если ЭтоПаспортРФ() Тогда
		ВидДокументаПереключатель = Перечисления.ВидыУдостоверенийВладельцаЭП.ПаспортРФ;
	ИначеЕсли ЗначениеЗаполнено(ВладелецЭЦПВидДокумента) Тогда
		ВидДокументаПереключатель = Перечисления.ВидыУдостоверенийВладельцаЭП.Иное;
	Иначе
		ВидДокументаПереключатель = Неопределено;
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ИнициализацияИзПомощникаМЧД(Параметры)

	ИзПомощникаМЧД      = Параметры.ИзПомощникаМЧД;
	
	СкрытьДатуРождения  = Параметры.СкрытьДатуРождения;
	СкрытьМестоРождения = Параметры.СкрытьМестоРождения;
	СкрытьПол           = Параметры.СкрытьПол;
	СкрытьГражданство   = Параметры.СкрытьГражданство;
	СкрытьКемКогдаВыдан = Параметры.СкрытьКемКогдаВыдан;
	
КонецПроцедуры


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

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