Прием на работу / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда

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

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

Процедура ОбработкаПроведения(Отказ, РежимПроведения)
	
	Документы.ПриемНаРаботу.ОбработкаПроведения(ЭтотОбъект, Отказ, РежимПроведения);
	
КонецПроцедуры

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

Процедура ОбработкаУдаленияПроведения(Отказ)
	
	Документы.ПриемНаРаботу.ОбработкаУдаленияПроведения(ЭтотОбъект, Отказ);
	
КонецПроцедуры

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

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

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

#Область СлужебныйПрограммныйИнтерфейс

#Область ОбменДанными

Функция СовместноРегистрируемыеОбъекты() Экспорт
	Возврат ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник);
КонецФункции

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

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

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

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


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


#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

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