Сотрудники / Форма элемента УП / Модуль формы

файл

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

&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
	
	Если ПравоДоступа("Чтение", Метаданные.РегистрыСведений.ДанныеДляПодбораСотрудников) Тогда
		
		Запрос = Новый Запрос("
		|ВЫБРАТЬ
		|	ДанныеДляПодбора.Начало КАК ДатаПриема
		|ИЗ
		|	РегистрСведений.ДанныеДляПодбораСотрудников КАК ДанныеДляПодбора
		|ГДЕ
		|	ДанныеДляПодбора.Сотрудник = &Сотрудник
		|	И ДанныеДляПодбора.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)
		|
		|;
		|
		|ВЫБРАТЬ
		|	ДОБАВИТЬКДАТЕ(ДанныеДляПодбора.Начало, ДЕНЬ, -1) КАК ДатаУвольнения
		|ИЗ
		|	РегистрСведений.ДанныеДляПодбораСотрудников КАК ДанныеДляПодбора
		|ГДЕ
		|	ДанныеДляПодбора.Сотрудник = &Сотрудник
		|	И ДанныеДляПодбора.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
		|
		|;
		|ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА &ИспользоватьШтатноеРасписание
		|			ТОГДА ШтатноеРасписание.Должность
		|		ИНАЧЕ ДанныеДляПодбора.Должность
		|	КОНЕЦ КАК ТекущаяДолжность,
		|	ДанныеДляПодбора.МестоВСтруктуреПредприятия КАК ТекущееМестоВСтруктуреПредприятия,
		|	ДанныеДляПодбора.Организация КАК ТекущаяОрганизация,
		|	ДанныеДляПодбора.Подразделение КАК ТекущееПодразделение,
		|	ДанныеДляПодбора.ВидЗанятости КАК ТекущийВидЗанятости,
		|	ДанныеДляПодбора.ФизическоеЛицо КАК ФизическоеЛицо
		|ИЗ
		|	РегистрСведений.ДанныеДляПодбораСотрудников КАК ДанныеДляПодбора
		|	{ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШтатноеРасписание КАК ШтатноеРасписание
		|		ПО &ИспользоватьШтатноеРасписание
		|		И ДанныеДляПодбора.ДолжностьПоШтатномуРасписанию = ШтатноеРасписание.Ссылка}
		|ГДЕ
		|	ДанныеДляПодбора.Сотрудник = &Сотрудник
		|	И ДанныеДляПодбора.Начало <= &ТекущаяДата
		|	И ДанныеДляПодбора.Окончание >= &ТекущаяДата");
		
		Запрос.УстановитьПараметр("Сотрудник", Объект.Ссылка);
		Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДатаСеанса());
		Запрос.УстановитьПараметр("ИспользоватьШтатноеРасписание", ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание"));
		
		МассивРезультатов = Запрос.ВыполнитьПакет();
		
		РезультатДатаПриема = МассивРезультатов[0].Выгрузить();
		РезультатДатаУвольнения = МассивРезультатов[1].Выгрузить();
		Реквизиты = МассивРезультатов[2].Выгрузить();
		
		Если РезультатДатаПриема.Количество() <> 0 Тогда
			ДатаПриема = РезультатДатаПриема[0].ДатаПриема;
		КонецЕсли;
		
		Если РезультатДатаУвольнения.Количество() <> 0 Тогда
			ДатаУвольнения = РезультатДатаУвольнения[0].ДатаУвольнения;
		КонецЕсли;
		
		Если Реквизиты.Количество() <> 0 Тогда
			ЗаполнитьЗначенияСвойств(ЭтотОбъект, Реквизиты[0]);
		КонецЕсли;
	
	Иначе
		Элементы.ТекущееМестоРаботы.Видимость = Ложь;
		Элементы.ГруппаДатаПриемаУвольнения.Видимость = Ложь;
	КонецЕсли;
	
КонецПроцедуры

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

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