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