Увольнение / Модуль объекта

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

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

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

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

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

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

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

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

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

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

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

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

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

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