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