Образование, квалификация / Модуль

файл

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

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

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

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

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

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

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

&НаКлиенте
Процедура ФизическоеЛицоУченыеСтепениТекстНажатие(Элемент, СтандартнаяОбработка)

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

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

&НаКлиенте
Процедура ФизическоеЛицоУченыеЗванияТекстНажатие(Элемент, СтандартнаяОбработка)

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

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

&НаКлиенте
Процедура ИмеетНаучныеТрудыПриИзменении(Элемент)
	
	Если Не ЗаблокироватьОбъектВФормеВладельце()Тогда
		ФизическоеЛицо.ИмеетНаучныеТруды = ИмеетНаучныеТрудыПрежнее;
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ФизическоеЛицоИмеетИзобретенияПриИзменении(Элемент)
	
	Если Не ЗаблокироватьОбъектВФормеВладельце()Тогда
		ФизическоеЛицо.ИмеетИзобретения = ИмеетИзобретенияПрежнее;
	КонецЕсли;
	
КонецПроцедуры

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

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

&НаКлиенте
Процедура ФизическоеЛицоПрофессииИзменить(Команда)

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

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

&НаКлиенте
Процедура ФизическоеЛицоСпециальностиИзменить(Команда)

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

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

&НаКлиенте
Процедура ФизическоеЛицоЗнаниеЯзыковИзменить(Команда)

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

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

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

&НаКлиенте
Процедура Отмена(Команда)
	
	Модифицированность = Ложь;
	Закрыть();
	
КонецПроцедуры

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

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

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

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

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

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

	Если НЕ ТолькоПросмотр Тогда
		ТекущийЭлемент = Элементы.Найти("ФормаОк");
	КонецЕсли; 
	
	Отказ = Ложь;
	СохранитьДанные(Отказ);
	
	Если НЕ Отказ Тогда
		
		Модифицированность = Ложь;
		Если ЗакрытьФорму И Открыта() Тогда
			Закрыть();
		КонецЕсли;
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Функция АдресДанныхДополнительнойФормыНаСервере(ОписаниеДополнительнойФормы)
	
	Возврат СотрудникиФормы.АдресДанныхДополнительнойФормы(ОписаниеДополнительнойФормы, ЭтотОбъект);
	
КонецФункции

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

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

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