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