#Область ОписаниеПеременных
&НаКлиенте
Перем ИдентификаторЗамераПроведениеНеНужнаРегистрацияОшибки;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
ПодписиДокументов.ПриСозданииНаСервере(ЭтотОбъект, Документы.КадровыйПеревод.ОписаниеПодписейДокумента());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ЭДОБЗК.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
МодульУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элементы.Шапка);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровыеРешения") Тогда
МодульКадровыеРешенияФормыРасширенный = ОбщегоНазначения.ОбщийМодуль("КадровыеРешенияФормыРасширенный");
МодульКадровыеРешенияФормыРасширенный.КадровыйПереводПриСозданииФормыНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);
КонецЕсли;
РасчетЗарплатыРасширенныйФормы.ИнициализироватьМеханизмПересчетаДокументаПриРедактировании(ЭтаФорма);
КадровыйУчетФормы.ФормаКадровогоДокументаПриСозданииНаСервере(ЭтаФорма);
ИспользуетсяРасчетЗарплаты = ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная");
Если Не Параметры.Свойство("Ключ") Или Не ЗначениеЗаполнено(Параметры.Ключ) Тогда
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
КадровыйУчетРасширенный.ПроверитьПравоИнтерактивногоСозданияКадровыхПриказовСотрудника();
СсылкаНаОбъект = Документы.КадровыйПеревод.ПолучитьСсылку();
ЭлектронныеТрудовыеКнижки.ЗаполнитьНаименованиеДокумента(Объект, "КадровыйПеревод");
Иначе
Параметры.Свойство("АдресСпискаПодобранныхСотрудников", АдресСпискаПодобранныхСотрудников);
РедактированиеСтрокиСписочногоДокумента = Истина;
Объект.ЕжегодныеОтпуска.Очистить();
УстановитьПривилегированныйРежим(Истина);
ДокументОбъект = Документы.КадровыйПеревод.СоздатьДокумент();
УстановитьПривилегированныйРежим(Ложь);
ДокументОбъект.Заполнить(Неопределено);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
СтрокаСписочногоДокумента = Параметры.СтрокаСписочногоДокумента;
ЗарплатаКадрыРасширенныйКлиентСервер.ЗаполнитьЗначенияЗаполненныхСвойств(Объект, СтрокаСписочногоДокумента);
СсылкаНаОбъект = СтрокаСписочногоДокумента.СсылкаНаОбъект;
ТабличныеЧастиОбъекта = СтрокаСписочногоДокумента.ТабличныеЧасти;
Для каждого ОписаниеТабличнойЧасти Из ТабличныеЧастиОбъекта Цикл
Если ОписаниеТабличнойЧасти.Ключ = "ОписаниеТабличныхЧастей" Тогда
Продолжить;
КонецЕсли;
Объект[ОписаниеТабличнойЧасти.Ключ].Очистить();
Для каждого СтрокаТЧ Из ОписаниеТабличнойЧасти.Значение Цикл
ЗаполнитьЗначенияСвойств(Объект[ОписаниеТабличнойЧасти.Ключ].Добавить(), СтрокаТЧ);
КонецЦикла;
КонецЦикла;
ПриПолученииДанныхНаСервере();
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Нет;
АвтоЗаголовок = Ложь;
Заголовок = НСтр("ru='Кадровый перевод'");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РасчетчикГруппа",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"БронированиеПозиции",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Организация",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДатаНомер",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НаименованиеДокумента",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВторойДокументОснованиеГруппа",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОснованиеПредставителяНанимателя",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПодвалДокументаГруппа",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КоманднаяПанельФормы",
"Видимость",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОК",
"КнопкаПоУмолчанию",
Истина);
ЭлементВидЗанятости = Элементы.Найти("ВидЗанятости");
Если ЭлементВидЗанятости <> Неопределено Тогда
ОбновитьСвязиПараметровВыбораЭлемента = Ложь;
СвязиПараметровВыбораЭлемента = Новый Массив(ЭлементВидЗанятости.СвязиПараметровВыбора);
Для ИндексЭлемента = 0 По СвязиПараметровВыбораЭлемента.Количество() - 1 Цикл
СвязьПараметров = СвязиПараметровВыбораЭлемента.Получить(ИндексЭлемента);
Если СвязьПараметров.Имя = "Отбор.ТекущийВидЗанятости" Тогда
ОбновитьСвязиПараметровВыбораЭлемента = Истина;
СвязиПараметровВыбораЭлемента.Удалить(ИндексЭлемента);
Прервать;
КонецЕсли;
КонецЦикла;
Если ОбновитьСвязиПараметровВыбораЭлемента Тогда
ЭлементВидЗанятости.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбораЭлемента);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Параметры.Свойство("Основание") Тогда
Основание = Параметры["Основание"];
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.ДатаНачала) Тогда
Объект.ДатаНачала = ТекущаяДатаСеанса();
КонецЕсли;
Если Параметры.Свойство("ЗначениеКопирования") И ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
Объект.Начисления.Очистить();
КонецЕсли;
Если Параметры.Свойство("Сотрудник") И ЗначениеЗаполнено(Параметры.Сотрудник) Тогда
Объект.Сотрудник = Параметры.Сотрудник;
КонецЕсли;
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
ПриПолученииДанныхНаСервере();
Если ЗначениеЗаполнено(Объект.Сотрудник) И Не ЗначениеЗаполнено(Объект.ИсправленныйДокумент) Тогда
СотрудникПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
ОбработатьИзменениеОрганизации(Ложь);
Если ИспользоватьШтатноеРасписание Тогда
ПереводНаИзвестнуюПозицию = ЗначениеЗаполнено(Параметры.ПереводНаПозицию);
Иначе
ПереводНаИзвестнуюПозицию = ЗначениеЗаполнено(Параметры.ПереводВПодразделение)
И ЗначениеЗаполнено(Параметры.ПереводНаДолжность);
КонецЕсли;
Если ПереводНаИзвестнуюПозицию Тогда
Объект.ИзменитьПодразделениеИДолжность = Истина;
Если ИспользоватьШтатноеРасписание Тогда
Объект.ДолжностьПоШтатномуРасписанию = Параметры.ПереводНаПозицию;
Объект.ОбособленноеПодразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
Объект.ДолжностьПоШтатномуРасписанию, "Владелец");
ПозицияШтатногоРасписанияПриИзмененииНаСервере();
Иначе
Объект.Подразделение = Параметры.ПереводВПодразделение;
Объект.Должность = Параметры.ПереводНаДолжность;
Объект.ОбособленноеПодразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Подразделение, "Владелец");
КонецЕсли;
КонецЕсли;
Если Параметры.Свойство("ПереводНаРабочееМесто") И ЗначениеЗаполнено(Параметры.ПереводНаРабочееМесто) Тогда
Объект.РабочееМесто = Параметры.ПереводНаРабочееМесто;
РабочееМестоПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьСвойстваЭлементаРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьСвойстваЭлементовВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоКатегории(
ЭтаФорма,
ОписаниеТаблицыНачислений(),
КадровыйУчетРасширенный.ПараметрыВыбораКатегорииНачислений());
КадровыйУчетФормыРасширенный.УстановитьОтображениеКнопкиРедактироватьФОТ(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтаФорма, "НачисленияУтверждены");
Если ИспользуетсяРасчетЗарплаты И Не ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений И Объект.НачисленияУтверждены Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
Элементы.РазрядКатегория.Заголовок = РазрядыКатегорииДолжностей.ИнициализироватьЗаголовокФормыИРеквизитов("РеквизитРазрядКатегорияВКадровыхДокументах");
ЗарплатаКадрыРасширенный.УстановитьЗначениеСевернойНадбавкиВФорме(ЭтаФорма, Объект.Сотрудник, Объект.ДатаНачала, Объект.ФизическоеЛицо);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗаполнитьПоПозицииВГруппеДобавитьОтменить",
"Видимость",
ИспользоватьШтатноеРасписание);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗаполнитьПоПозицииВГруппеКнопокДобавитьПродолжить",
"Видимость",
ИспользоватьШтатноеРасписание);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗаполнитьПоПозицииВГруппеКнопокДобавитьУдалить",
"Видимость",
ИспользоватьШтатноеРасписание);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗаполнитьПоПозицииВГруппеДобавитьОтменитьЕО",
"Видимость",
ИспользоватьШтатноеРасписание);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗаполнитьПоПозицииВГруппеКнопокДобавитьПродолжить1",
"Видимость",
ИспользоватьШтатноеРасписание);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗаполнитьПоПозицииВГруппеКнопокДобавитьУдалитьЕО",
"Видимость",
ИспользоватьШтатноеРасписание);
КадровыйУчетФормыРасширенный.РазместитьКомандуПроверкиШтатномуРасписанию(ЭтаФорма);
СформироватьНадписьПраваНаОтпуск();
ЗаполнитьВторичныеДанныеКадровогоРезерва();
ПрочитатьРазмерАвансаПоУмолчанию();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
МодульГосударственнаяСлужбаФормы = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужбаФормы");
МодульГосударственнаяСлужбаФормы.УстановитьПараметрыВыбораСотрудников(ЭтаФорма, "Сотрудник");
КонецЕсли;
Если ПодписиДокументов.ИспользоватьОснованияПолномочий() Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОснованиеПредставителяНанимателя",
"Видимость",
Ложь);
КонецЕсли;
УстановитьВидимостьЕНВД(Элементы, ИспользуетсяЕНВД(Объект.Дата));
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
УстановитьВидимостьПредупрежденияПоОплатеТруда();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ЗаписатьИЗакрытьНаКлиенте", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗакрытием(ЭтотОбъект, Объект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "ЗаписанИндивидуальныйГрафикСотрудника" Тогда
Если Источник = ЭтаФорма Тогда
ИндивидуальныйГрафикСсылка = Параметр.Ссылка;
ИндивидуальныйГрафикДата = Параметр.Дата;
ИндивидуальныйГрафикНомер = Параметр.Номер;
ОбновитьОтображениеИндивидуальногоГрафика();
КонецЕсли;
ИначеЕсли ИмяСобытия = "ИзмененыЕжегодныеОтпуска" И Источник = ЭтотОбъект Тогда
ЗагрузитьЕжегодныеОтпуска(Параметр.ЕжегодныеОтпуска);
Иначе
Если Источник = Объект.ФизическоеЛицо Тогда
Если ИмяСобытия = "РедактированиеПроцентаСевернойНадбавки" Тогда
ПриИзмененииПроцентаСевернойНадбавки();
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ИсправлениеДокументовЗарплатаКадрыКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецЕсли;
Если ИмяСобытия = "ИзмененСтажФизическогоЛица" И Источник.ВладелецФормы = ЭтаФорма Тогда
ПриИзмененииСтажа();
ВыполнитьРасчетФОТ();
КонецЕсли;
Если ИмяСобытия = "ЗаписанПодчиненныйДокумент" И Источник = СсылкаНаОбъект Тогда
УстановитьИнфоНадписьЗамещения();
КонецЕсли;
Если ИмяСобытия = "ИзмененКлассныйЧинРанг" И Источник.ВладелецФормы = ЭтаФорма Тогда
КлассныйЧинРангПриИзменении(Параметр);
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ЭДОБЗККлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект, Источник);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ТекущийОбъект = РеквизитФормыВЗначение("Объект");
РеквизитВДанные(ТекущийОбъект);
УстановитьПривилегированныйРежим(Ложь);
Если РедактированиеСтрокиСписочногоДокумента Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаСтрокиСписочногоДокумента", Истина);
МногофункциональныеДокументыБЗК.ОтключитьПроверкуУтверждения(ТекущийОбъект);
ПараметрыСеанса.ИнтерактивнаяПроверкаЗаполненияСвойств = Истина;
КонецЕсли;
Если Не ТекущийОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "Объект");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НомерПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ЗаполнитьДанныеФормыПоОрганизации();
УстановитьВидимостьЕНВД(Элементы, ИспользуетсяЕНВД(Объект.Дата));
КонецПроцедуры
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
ОценкаПроизводительностиКлиент.ЗамерВремени("ИзменениеСотрудникаВФормеДокументаКадровыйПеревод");
СотрудникПриИзмененииНаСервере();
УстановитьОтразитьВТрудовойКнижке();
КонецПроцедуры
&НаКлиенте
Процедура ДатаНачалаПриИзменении(Элемент)
ДатаНачалаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаОкончанияПриИзменении(Элемент)
ДатаОкончанияПриИзмененииНаСервере();
Если Объект.ИзменитьПодразделениеИДолжность Тогда
УстановитьДоступностьЭлементов(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИзмениласьПозицияПриИзменении(Элемент)
ИзмениласьПозицияПриИзмененииНаСервере();
УстановитьОтразитьВТрудовойКнижке();
КонецПроцедуры
&НаКлиенте
Процедура ОбособленноеПодразделениеПриИзменении(Элемент)
ОбособленноеПодразделениеПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ПодразделениеПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ТерриторияПриИзменении(Элемент)
ТерриторияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПозицияШтатногоРасписанияПриИзменении(Элемент) Экспорт
ОценкаПроизводительностиКлиент.ЗамерВремени("ИзменениеПозицииШРВФормеДокументаКадровыйПеревод");
ПозицияШтатногоРасписанияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДолжностьПриИзменении(Элемент)
ТекущееЗначениеПоказателяНадбавкаЗаВредность = ЗначениеПоказателяНадбавкаЗаВредность;
ДолжностьПриИзмененииНаСервере();
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьНадбавкуЗаВредность")
И ТекущееЗначениеПоказателяНадбавкаЗаВредность <> ЗначениеПоказателяНадбавкаЗаВредность Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ПКУПриИзменении(Элемент)
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты") Тогда
ПКУПриИзмененииНаСервере();
ВыполнитьРасчетФОТ(Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазрядКатегорияПриИзменении(Элемент)
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты") Тогда
РазрядКатегорияПриИзмененииНаСервере();
ВыполнитьРасчетФОТ(Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КоличествоСтавокПредставлениеНажатие(Элемент, СтандартнаяОбработка)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("КоличествоСтавок", Объект.КоличествоСтавок);
Оповещение = Новый ОписаниеОповещения("ПриИзмененииКоличестваСтавок", ЭтотОбъект, ДополнительныеПараметры);
КадровыйУчетКлиент.ИзменитьКоличествоСтавок(ЭтаФорма, "Объект.КоличествоСтавок", СтандартнаяОбработка, "КоличествоСтавокПредставление", Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ИзменилсяГрафикПриИзменении(Элемент)
ЗаполнитьГрафик();
КонецПроцедуры
&НаКлиенте
Процедура ИзменилисьНачисленияПриИзменении(Элемент)
ИзменилисьНачисленияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЕжегодныеОтпускаПриИзменении(Элемент)
Если НЕ Объект.ИзменитьЕжегодныеОтпуска Тогда
ЗаполнитьДействующимиПравамиСотрудникаНаСервере();
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьАвансПриИзменении(Элемент)
ИзменитьАвансПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура СпособРасчетаАвансаПриИзменении(Элемент)
Если Объект.СпособРасчетаАванса = ПредопределенноеЗначение("Перечисление.СпособыРасчетаАванса.ПроцентомОтТарифа") Тогда
Объект.Аванс = РазмерАвансаПоУмолчанию;
Иначе
Объект.Аванс = 0;
КонецЕсли;
УстановитьПоказРазмераАванса(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура АвансРазмерГруппаСтраницаФиксированнойСуммойВеличинаПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура АвансРазмерГруппаСтраницаПроцентомОтТарифаВеличинаПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ГрафикПриИзменении(Элемент)
Если ТекущийГрафикРаботы <> Объект.ГрафикРаботы
И ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
ТекстВопроса = НСтр("ru = 'Изменился график работы. Пересчитать плановый ФОТ?'");
Оповещение = Новый ОписаниеОповещения("ГрафикПриИзмененииЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
Иначе
ГрафикПриИзмененииЗавершение(КодВозвратаДиалога.Да);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ГрафикПриИзмененииЗавершение(Ответ, ДополнительныеПараметры = Неопределено) Экспорт
ПересчитатьФОТ = (Ответ = КодВозвратаДиалога.Да);
ГрафикПриИзмененииНаСервере(ПересчитатьФОТ);
Если ПересчитатьФОТ Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КоличествоСтавокПриИзмененииЗавершение(Ответ, ДополнительныеПараметры = Неопределено) Экспорт
ПересчитатьФОТ = (Ответ = КодВозвратаДиалога.Да);
Если ПересчитатьФОТ Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаВводИндивидуальногоГрафикаНажатие(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПараметрыИндивидуальногоГрафика = Новый Структура("Ключ", ИндивидуальныйГрафикСсылка);
ОткрытьФорму("Документ.ИндивидуальныйГрафик.ФормаОбъекта", ПараметрыИндивидуальногоГрафика, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НачисленияУтвержденыПриИзменении(Элемент)
Если Объект.НачисленияУтверждены Тогда
Объект.БронированиеПозиции = Ложь;
КонецЕсли;
НачисленияУтвержденыПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура НачисленияУтвержденыПриИзмененииНаСервере()
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтаФорма, "НачисленияУтверждены");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьДокументыВведенныеПозже(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьВведенныеНаДатуДокументы(ЭтотОбъект.ДокументыВведенныеПозже);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьРанееВведенныеДокументы(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьВведенныеНаДатуДокументы(ЭтотОбъект.РанееВведенныеДокументы);
КонецПроцедуры
&НаКлиенте
Процедура СменаВидаДоговораПриИзменении(Элемент)
СменаВидаДоговораПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура СрочныйДоговорПриИзменении(Элемент)
СрочныйДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьСведенияОДоговореКонтрактеПриИзменении(Элемент)
ИзменитьСведенияОДоговореКонтрактеПриИзмененииНаСервере()
КонецПроцедуры
&НаКлиенте
Процедура ИныеУсловияДоговораНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ИныеУсловияДоговораЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Иные условия'"));
КонецПроцедуры
&НаКлиенте
Процедура ОборудованиеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ОборудованиеРабочегоМестаЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Оборудование рабочего места'"));
КонецПроцедуры
&НаКлиенте
Процедура СрокЗаключенияДоговораНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("СрокЗаключенияДоговораЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Срок заключения договора'"));
КонецПроцедуры
&НаКлиенте
Процедура ОснованиеПредставителяНанимателяНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ОснованиеПредставителяНанимателяЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Основание представителя нанимателя'"));
КонецПроцедуры
&НаКлиенте
Процедура ВидАктаГосорганаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ВидАктаГосорганаЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Вид акта государственного органа'"));
КонецПроцедуры
&НаКлиенте
Процедура НаПериодПереводаСохранятьЛьготныйСтажПФРПриИзменении(Элемент)
УстановитьДоступностьПолейУчетаСтажаПФР(ЭтотОбъект);
Если Не Объект.НаПериодПереводаСохранятьЛьготныйСтажПФР Тогда
Объект.ВидСтажаПФР = ПредопределенноеЗначение("Перечисление.ВидыСтажаПФР2014.ПустаяСсылка");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ГрейдПриИзменении(Элемент)
ГрейдПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗамещениеИнфоНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
МодульЦепочкиДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦепочкиДокументовКлиент");
МодульЦепочкиДокументовКлиент.ОткрытьФормуЗамещенияПоСсылке(ЭтаФорма, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЛьготыПриИзменении(Элемент)
УстановитьДоступностьЭлементов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьВидЗанятостиПриИзменении(Элемент)
Если Не Объект.ИзменитьВидЗанятости Тогда
Объект.ВидЗанятости = ТекущийВидЗанятости;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИзменитьДистанционнуюРаботуПриИзменении(Элемент)
ПриИзмененииПризнакаДистанционнойРаботы();
УстановитьДоступностьЭлементов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РаботаетДистанционноПриИзменении(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьТерриториюПриИзменении(Элемент)
Если Не Объект.ИзменитьТерриторию Тогда
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Объект.Территория = ТекущаяТерритория;
Иначе
Объект.Территория = ПредопределенноеЗначение("Справочник.ТерриторииВыполненияРабот.ПустаяСсылка");
КонецЕсли;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РабочееМестоПриИзменении(Элемент)
РабочееМестоПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РабочееМестоОчистка(Элемент, СтандартнаяОбработка)
РабочееМестоПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИзменитьРабочееМестоПриИзменении(Элемент)
ИзменитьРабочееМестоПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура УчитыватьКакИндексациюЗаработкаПриИзменении(Элемент)
Объект.КоэффициентИндексации = 0;
РассчитатьКоэффициентИндексацииЗаработка();
УстановитьВидимостьКоэффициентаИндексации();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКоэффициентаИндексации()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КоэффициентИндексации", "Видимость", Объект.УчитыватьКакИндексациюЗаработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементПриИзменении(Элемент)
ПодписиДокументовКлиент.ПриИзмененииПодписывающегоЛица(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементНажатие(Элемент)
ПодписиДокументовКлиент.РасширеннаяПодсказкаНажатие(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура ОтразитьВТрудовойКнижкеПриИзменении(Элемент)
УстановитьДоступностьЭлементов(ЭтотОбъект);
Если Не Объект.ОтразитьВТрудовойКнижке Тогда
Объект.ТрудоваяФункция = ТекущаяТрудоваяФункция;
Элементы.ВторойДокументОснованиеГруппа.Скрыть();
КонецЕсли;
Если Объект.ВидЗанятости <> ПредопределенноеЗначение("Перечисление.ВидыЗанятости.ОсновноеМестоРаботы") Тогда
ЭлектронныеТрудовыеКнижкиВызовСервера.ЗапомнитьОтражениеВТрудовойКнижкеСовместительств(Объект.ОтразитьВТрудовойКнижке);
КонецЕсли;
ОбновитьИнформациюОПересекающихсяКадровыхПереводах();
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "КадровыйПеревод", Объект.НаименованиеДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
Объект.НаименованиеДокумента, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаАвтоПодбор(
Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "КадровыйПеревод", Объект.НаименованиеВторогоДокументаОснования);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
Объект.НаименованиеВторогоДокументаОснования, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаАвтоПодбор(
Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура ДатаВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура СерияВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НомерВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура ПредупреждениеОПересекающихсяМероприятияхТекстВторогоВариантаДекорацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ПриИзмененииПересекающихсяПериодов", ЭтотОбъект);
ЭлектронныеТрудовыеКнижкиКлиент.ОткрытьРегистрациюОтменыМероприятий(Объект.Организация,
ДанныеРегистраторовПересекающихсяПереводов, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПредупреждениеОПересекающихсяМероприятияхТекстПервогоВариантаДекорацияОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ПриИзмененииПересекающихсяПериодов", ЭтотОбъект);
ЭлектронныеТрудовыеКнижкиКлиент.ОткрытьРегистраторМероприятия(ДанныеРегистраторовПересекающихсяПереводов, );
КонецПроцедуры
&НаКлиенте
Процедура ВидЗанятостиПриИзменении(Элемент)
УстановитьОтразитьВТрудовойКнижке();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьБухучетЗарплатыПриИзменении(Элемент)
Если Не Объект.ИзменитьБухучетЗарплаты Тогда
Объект.СпособОтраженияЗарплатыВБухучете = ТекущийСпособОтраженияЗарплатыВБухучете;
Объект.СтатьяФинансирования = ТекущаяСтатьяФинансирования;
Объект.ОтношениеКЕНВД = ТекущееОтношениеКЕНВД;
ИначеЕсли ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
БухучетПозиции = НастройкиБухучетаПозицииШтатногоРасписания(Объект.ДолжностьПоШтатномуРасписанию);
Объект.СтатьяФинансирования = БухучетПозиции.СтатьяФинансирования;
Объект.СпособОтраженияЗарплатыВБухучете = БухучетПозиции.СпособОтраженияЗарплатыВБухучете;
Объект.ОтношениеКЕНВД = БухучетПозиции.ОтношениеКЕНВД;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы["ДекорацияСостояниеОригинала"]);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВидКвотыПриИзменении(Элемент)
ВидКвотыПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИзменитьКвотуПриИзменении(Элемент)
ИзменитьКвотуПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВидКвотыОчистка(Элемент)
ВидКвотыПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисления
&НаКлиенте
Процедура НачисленияПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
РассчитатьИтогиПоФОТ(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийВыбор(
ЭтаФорма, Элемент, Поле, СтандартнаяОбработка, 1, Объект.Сотрудник, Объект.ДатаНачала);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриАктивизацииСтроки(Элемент)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриАктивизацииСтроки(ЭтаФорма, "Начисления", "НачисленияНачисление", 1, ОписаниеКоманднойПанелиНачислений());
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтаФорма, "Начисления", 1, , НоваяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПередУдалением(Элемент, Отказ)
Отказ = Истина;
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийОтменитьНачисление(ЭтаФорма, "Начисления", 1, ОписаниеКоманднойПанелиНачислений(), , Объект.ДатаНачала, Объект.ДатаОкончания);
ВыполнитьРасчетФОТ();
ОтражениеЗарплатыВБухучетеКлиентРасширенный.РедактированиеСоставаНачисленийОтменитьНачисление(ЭтаФорма, "Начисления");
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактирования(ЭтаФорма, Элемент, 1, ОписаниеТаблицыНачислений()) Тогда
ВыполнитьРасчетФОТ();
Иначе
РассчитатьИтогиПоФОТ(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачислениеПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийНачислениеПриИзменении(
ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Объект.Сотрудник, ТарифнаяСетка, РазрядКатегория, Объект.ДатаНачала, ТарифнаяСеткаНадбавки, Объект.РазрядКатегория);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРангВСтрокеНачислений();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗначениеПоказателяПриИзмененииНачисления(Элемент)
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСНачислением(Элементы.Начисления.ТекущиеДанные,
ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтаФорма, ОписаниеТаблицыНачислений, , 1), 1, ОписаниеТаблицыНачислений, Объект.ДатаНачала, Объект.ДатаОкончания);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПересчитатьФОТДокумента(Элемент)
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПересчитатьИтогиФОТДокумента(Элемент)
РассчитатьИтогиПоФОТ(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыУправленческиеНачисления
&НаКлиенте
Процедура УправленческиеНачисленияПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
РассчитатьИтогиПоФОТ(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.КадровыйПереводУправленческиеНачисленияВыбор(ЭтаФорма, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриАктивизацииСтроки(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.КадровыйПереводУправленческиеНачисленияПриАктивизацииСтроки(ЭтаФорма, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПередУдалением(Элемент, Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.КадровыйПереводУправленческиеНачисленияПередУдалением(ЭтаФорма, Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.КадровыйПереводУправленческиеНачисленияПриНачалеРедактирования(ЭтаФорма, Элемент, НоваяСтрока, Копирование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.КадровыйПереводУправленческиеНачисленияПриОкончанииРедактирования(ЭтаФорма, Элемент, НоваяСтрока, ОтменаРедактирования);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияНачислениеПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.КадровыйПереводУправленческиеНачисленияНачислениеПриИзменении(ЭтаФорма, Элемент);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПоказатели
&НаКлиенте
Процедура ПоказателиПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриАктивизацииСтроки(Элемент)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаДополнительныхПоказателейПриАктивизацииСтроки(ЭтаФорма, "Показатели", "ПоказателиПоказатель", ОписаниеКоманднойПанелиПоказателей());
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПередУдалением(Элемент, Отказ)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаДополнительныхПоказателейОтменитьПоказатель(ЭтаФорма, "Показатели", ОписаниеКоманднойПанелиПоказателей(), Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 1);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если НоваяСтрока Тогда
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаДополнительныхПоказателейПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПоказательПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 1);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиЗначениеПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСДополнительнымПоказателем(Элементы.Показатели.ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура БронированиеПозицииПриИзменении(Элемент)
Если Объект.БронированиеПозиции Тогда
УстановитьЗначениеНачисленияУтверждены(Ложь);
КонецЕсли;
УстановитьЗначениеИзменитьБухучетЗарплаты();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЛьготы
&НаКлиенте
Процедура ЛьготыПриИзменении(Элемент)
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриАктивизацииСтроки(Элемент)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриАктивизацииСтроки(ЭтаФорма, "Льготы", "ЛьготыЛьгота", 1, ОписаниеКоманднойПанелиЛьгот());
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПередУдалением(Элемент, Отказ)
Отказ = Истина;
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийОтменитьНачисление(ЭтаФорма, "Льготы", 1, ОписаниеКоманднойПанелиЛьгот());
ОтражениеЗарплатыВБухучетеКлиентРасширенный.РедактированиеСоставаНачисленийОтменитьНачисление(ЭтаФорма, "Льготы");
ПериодОжидания = ЗарплатаКадрыРасширенныйКлиент.ПериодОжиданияЗапускаАвтоматическогоРасчета();
Если ПериодОжидания > 0 Тогда
ПодключитьОбработчикОжидания("РассчитатьРазмерЛьготНаКлиенте", ПериодОжидания, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтотОбъект, "Льготы", 1, , НоваяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактирования(ЭтотОбъект, Элемент, 1, ОписаниеТаблицыЛьгот()) Тогда
ПериодОжидания = ЗарплатаКадрыРасширенныйКлиент.ПериодОжиданияЗапускаАвтоматическогоРасчета();
Если ПериодОжидания > 0 Тогда
ПодключитьОбработчикОжидания("РассчитатьРазмерЛьготНаКлиенте", ПериодОжидания, Истина);
КонецЕсли;
Иначе
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыЛьготаПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыЛьгот();
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийНачислениеПриИзменении(
ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Объект.Сотрудник, ТарифнаяСетка, РазрядКатегория, Объект.ДатаНачала, ТарифнаяСеткаНадбавки, Объект.РазрядКатегория);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗначениеПоказателяПриИзмененииЛьготы(Элемент)
ОписаниеТаблицыЛьгот = ОписаниеТаблицыЛьгот();
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСНачислением(Элементы.Льготы.ТекущиеДанные,
ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтаФорма, ОписаниеТаблицыЛьгот,, 1), 1, ОписаниеТаблицыЛьгот, Объект.ДатаНачала);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыБухучетНачислений
&НаКлиенте
Процедура БухучетНачисленийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если СтрНайти(Поле.Имя, "КомандаРедактированияБухучетаНачисления") <> 0 Тогда
ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуРедактированиеБухучетаНачисления(ЭтаФорма, ОписаниеТаблицыНачислений(), ВыбраннаяСтрока);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыБухучетЛьготы
&НаКлиенте
Процедура БухучетЛьготВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если СтрНайти(Поле.Имя, "КомандаРедактированияБухучетаНачисления") <> 0 Тогда
ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуРедактированиеБухучетаНачисления(ЭтаФорма, ОписаниеТаблицыЛьгот(), ВыбраннаяСтрока);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыБухучетНачисленийРедактируемыхВОтдельныхПолях
&НаКлиенте
Процедура БухучетНачисленийРедактируемыхВОтдельныхПоляхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если СтрНайти(Поле.Имя, "КомандаРедактированияБухучетаНачисления") <> 0 Тогда
ОписаниеТаблицы = ОписаниеТаблицыБухучетНачисленийРедактируемыхВОтдельныхПолях();
ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуРедактированиеБухучетаНачисления(ЭтаФорма, ОписаниеТаблицы, ВыбраннаяСтрока);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКадровыйРезерв
&НаКлиенте
Процедура Подключаемый_КадровыйРезервПриАктивизацииСтроки(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.КадровыйРезервПриАктивизацииСтрокиДляОбщихДокументов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивом(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивомНаСервере(Знач Параметры) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ВыполнитьПодключаемуюКоманду(ЭтотОбъект, Параметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИнтеграцияС1САрхивом_Нажатие(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.Нажатие(Элемент, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Исправить(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.Исправить(ЭтотОбъект, СсылкаНаОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправлению(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправлению(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправленному(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправленному(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазблокироватьФормуОбъекта(Команда)
БлокировкаИзмененияОбъектовКлиент.РазблокироватьФормуОбъекта(ЭтотОбъект, СсылкаНаОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьЕжегодныеОтпуска(Команда)
СтандартнаяОбработка = Ложь;
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ЕжегодныеОтпуска", ЕжегодныеОтпускаСотрудника());
ПараметрыОткрытия.Вставить("Сотрудник", Объект.Сотрудник);
ПараметрыОткрытия.Вставить("ДатаСобытия", Объект.ДатаНачала);
ПараметрыОткрытия.Вставить("Ссылка", СсылкаНаОбъект);
ПараметрыОткрытия.Вставить("ДолжностьПоШтатномуРасписанию", Объект.ДолжностьПоШтатномуРасписанию);
ПараметрыОткрытия.Вставить("Подразделение", Объект.Подразделение);
ПараметрыОткрытия.Вставить("Должность", Объект.Должность);
ПараметрыОткрытия.Вставить("Территория", Объект.Территория);
ПараметрыОткрытия.Вставить("ТекущаяДолжностьПоШтатномуРасписанию", ТекущаяДолжностьПоШтатномуРасписанию);
ПараметрыОткрытия.Вставить("ТекущееПодразделение", ТекущееПодразделение);
ПараметрыОткрытия.Вставить("ТекущаяДолжность", ТекущаяДолжность);
ПараметрыОткрытия.Вставить("ТекущаяТерритория", ТекущаяТерритория);
ПараметрыОткрытия.Вставить("Организация", Объект.ОбособленноеПодразделение);
ОткрытьФорму("Документ.КадровыйПеревод.Форма.ФормаРедактированияПравНаОтпуск", ПараметрыОткрытия, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНачисленияПоПозиции(Команда)
ЗаполнитьНачисленияПоПозицииНаСервере();
ЗаполнитьБухучетДействующихНачислений(Истина, Ложь);
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНаСоответствиеШтатномуРасписанию(Команда)
КадровыйУчетРасширенныйКлиент.ПроверитьНаСоответствиеШтатномуРасписанию(ЭтаФорма, Объект, Объект.ИсправленныйДокумент);
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьФОТ(Команда)
РедактироватьФОТ = НЕ Элементы.РедактироватьФОТ.Пометка;
Элементы.РедактироватьФОТ.Пометка = РедактироватьФОТ;
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьВидимостьВкладаВФОТРНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма, РедактироватьФОТ);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИзменитьЗначениеПоказателяСевернаяНадбавка(Команда)
ЗарплатаКадрыРасширенныйКлиент.ОткрытьФормуРедактированияПроцентаСевернойНадбавки(ЭтаФорма, Объект.Сотрудник, Объект.ДатаНачала);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровестиИЗакрыть(Команда) Экспорт
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровести(Команда) Экспорт
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаписать(Команда)
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Рассчитать(Команда)
РассчитатьФОТНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьРазмерЛьгот(Команда)
РассчитатьРазмерЛьготНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьРазмерЛьгот(Команда)
Элементы.РедактироватьРазмерЛьгот.Пометка = Не Элементы.РедактироватьРазмерЛьгот.Пометка;
УстановитьВидимостьРазмераЛьгот(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОК(Команда)
ЗавершитьРедактированиеСтрокиДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьРедактированиеСтрокиДокумента()
ОчиститьСообщения();
Отказ = Ложь;
Если Модифицированность Тогда
Если Не ПроверитьЗаполнение() Тогда
Отказ = Истина;
Иначе
ОписаниеДокумента = СтруктураСОписаниемДокумента();
Модифицированность = Ложь;
КонецЕсли;
Иначе
ОписаниеДокумента = Неопределено;
КонецЕсли;
Если Не Отказ Тогда
Закрыть(ОписаниеДокумента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КлассныйЧинРангИзменить(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРангиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КлассныеЧиныРангиКлиент");
МодульКлассныеЧиныРангиКлиент.РедактироватьКлассныйЧинРанг(ЭтаФорма, Объект.Сотрудник, Объект.ДатаПрисвоения, Объект.КлассныйЧинРанг);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбъединитьСтрокиОдинаковыхНачислений(Команда)
ОбъединитьСтрокиОдинаковыхНачисленийОбъектаФормы();
КонецПроцедуры
#Область Подключаемый_КадровыйРезерв
&НаКлиенте
Процедура Подключаемый_КадровыйРезервОставить(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.КадровыйРезервОставитьДляОбщихДокументов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КадровыйРезервИсключить(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.КадровыйРезервИсключитьДляОбщихДокументов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(
Команда,
ЭтотОбъект,
Объект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Команда, Объект)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Контекст, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийСледующемуНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_ОткрытьОтчетПоПроблемам(ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка)
КонтрольВеденияУчетаКлиентБЗК.ОткрытьОтчетПоПроблемамОбъекта(ЭтотОбъект, СсылкаНаОбъект, СтандартнаяОбработка);
КонецПроцедуры
#Область ИсправлениеДокументов
&НаКлиенте
Процедура УстановитьПоляИсправленияНаКлиенте() Экспорт
УстановитьПоляИсправления(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляИсправления(Форма)
ИсправлениеДокументовЗарплатаКадрыКлиентСервер.УстановитьПоляИсправления(Форма, "ПериодическиеСведения");
КонецПроцедуры
#КонецОбласти
#Область ИнициализацияФормы
&НаСервере
Процедура ПриПолученииДанныхНаСервере()
ИспользоватьСтатьиФинансирования = ПолучитьФункциональнуюОпцию("ИспользоватьСтатьиФинансированияЗарплатаРасширенный");
РаботаВБюджетномУчреждении = ПолучитьФункциональнуюОпцию("РаботаВБюджетномУчреждении");
НачатьИнициализациюФормы();
ЗарплатаКадрыРасширенный.ИзменитьРеквизитыФормы(ЭтаФорма);
ЗавершитьИнициализациюФормы();
РеквизитыКДобавлению.Очистить();
РеквизитыКУдалению.Очистить();
КонецПроцедуры
&НаСервере
Процедура НачатьИнициализациюФормы()
УстановитьДоступностьРегистрацииНачислений();
УстановитьПривилегированныйРежим(Истина);
КоличествоСтавокПредставление = КадровыйУчетКлиентСервер.ПредставлениеКоличестваСтавок(Объект.КоличествоСтавок);
ПрочитатьВремяРегистрации();
ДополнитьФорму(Истина);
КонецПроцедуры
&НаСервере
Процедура ЗавершитьИнициализациюФормы()
ИмяКнопкиРассчитать = "Рассчитать";
ДополнитьФорму(Ложь);
ДополнитьФорму();
УстановитьПривилегированныйРежим(Истина);
ИспользоватьШтатноеРасписание = ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание");
УстановитьФункциональныеОпцииФормы();
УстановитьВидимостьБухучетПлановыхНачислений();
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ЗарплатаКадрыРасширенный.УстановитьТекущиеЗначенияНачисленийСотрудникаРедактируемыхВОтдельныхПолях(ЭтаФорма, Объект.Сотрудник, ВремяРегистрации, Объект.ИсправленныйДокумент);
ЗарплатаКадрыРасширенный.УстановитьИзменениеСоставаПлановыхНачислений(ЭтаФорма, Объект.ИзменитьНачисления);
ДанныеВРеквизит();
УстановитьТекущиеКадровыеДанные();
ТекущееОбособленноеПодразделение = Объект.ОбособленноеПодразделение;
ОстаткиОтпусков.ДополнитьСведениямиОПредыдущихЕжегодныхОтпускахСотрудника(Объект, "ДатаНачала");
ОбновитьИндивидуальныйГрафик();
УстановитьДоступностьЭлементовИзмененияДанныхСотрудника();
УстановитьВидимостьРасчетныхПолей();
УстановитьВидимостьРазмераЛьгот(ЭтотОбъект);
УстановитьТекущийАванс();
УстановитьРазмерТекущейСовокупнойТарифнойСтавки();
УстановитьПоказРазмераАванса(ЭтаФорма);
ПрочитатьТарифнуюСетку();
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
ЗарплатаКадрыРасширенный.УстановитьТекстПоясненияКПорядкуПересчетаТарифныхСтавок(ЭтаФорма, "ПорядокРасчетаСтоимостиЕдиницыВремени");
ЗарплатаКадрыРасширенный.УстановитьРазмерностьСовокупнойТарифнойСтавки(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьКомментарийКРазмеруСовокупнойТарифнойСтавки(ЭтаФорма, Объект.ВидТарифнойСтавки,"СовокупнаяТарифнаяСтавкаРазмерность");
УстановитьОтображениеНадписей();
ОписаниеФормы = ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
НастроитьФормуПоВидуДоговора(ОписаниеФормы);
КонтрактыДоговорыСотрудниковФормы.УстановитьЗаголовокПоляСменаВидаДоговора(ЭтотОбъект, ОписаниеФормы, ТекущийВидДоговора);
УстановитьВидимостьПолейДоговораКонтракта(ЭтотОбъект, Объект.СменаВидаДоговора);
УстановитьДоступностьПолейДоговораКонтракта();
УстановитьДоступностьПолейУчетаСтажаПФР(ЭтотОбъект);
РазрядыКатегорииДолжностей.УстановитьСвязиПараметровВыбораРазрядаКадровогоПриказа(ЭтотОбъект);
УстановитьВидимостьКлассногоЧинаРанга();
УстановитьВидимостьКоэффициентаИндексации();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРангиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРангиКлиентСервер");
КлассныйЧинРангПредставление = МодульКлассныеЧиныРангиКлиентСервер.ПредставлениеКлассногоЧинаРанга(Объект.КлассныйЧинРанг, Объект.ДатаПрисвоения);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.УстановитьВидимостьГруппыЛьготы(Элементы);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводУстановитьОтображениеЭлементовФормы(ЭтаФорма, ОграниченияНаУровнеЗаписей);
КонецЕсли;
РассчитатьИтогиПоФОТ(ЭтаФорма);
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
Если Объект.Проведен
И Не Объект.БронированиеПозиции
И ПолучитьФункциональнуюОпциюФормы("ИспользоватьБронированиеПозиций") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"БронированиеПозиции",
"Видимость",
Ложь);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДополнитьФорму(ОтложенноеИзменение = Неопределено)
Если ОтложенноеИзменение = Неопределено Тогда
УстановитьПривилегированныйРежим(Истина);
ЗарплатаКадрыРасширенный.РедактированиеСоставаДополнительныхПоказателейДополнитьФорму(ЭтаФорма, ОписаниеТаблицыЛьгот(), РегистрацияНачисленийДоступна);
УстановитьПривилегированныйРежим(Ложь);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульФормы = ОбщегоНазначения.ОбщийМодуль("КадровыйРезервФормы");
МодульФормы.ДополнитьФормуДокументаКадровымРезервом(ЭтаФорма);
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ЗарплатаКадрыРасширенный.СформироватьСписокВыбораПорядкаПересчета(Элементы, РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенный.МногофункциональныеДокументыДобавитьЭлементыФормы(ЭтаФорма, НСтр("ru='Перевод утвержден'"), "РасчетчикГруппа", "НачисленияУтверждены");
УстановитьШрифтЗаголовкаНачисленияУтверждены();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.ГруппаГрейдДополнитьФормуКадровогоПриказа(ЭтотОбъект);
КонецЕсли;
ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийУстановитьУсловноеОформление(ЭтаФорма, ОписанияТаблицБухучета(), РегистрацияНачисленийДоступна);
УстановитьПривилегированныйРежим(Ложь);
Иначе
УстановитьПривилегированныйРежим(Истина);
Если ОтложенноеИзменение Тогда
ДобавлятьЭлементыФормы = Ложь;
ДобавлятьРеквизитыФормы = Истина;
Иначе
ДобавлятьЭлементыФормы = Истина;
ДобавлятьРеквизитыФормы = Ложь;
КонецЕсли;
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыНачислений(), "Начисления", 1, РегистрацияНачисленийДоступна И ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыЛьгот(), "Начисления", 1, РегистрацияНачисленийДоступна И ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ПроверяемыеРеквизитыНаСоответствие = РеквизитыПроверяемыеНаСоответствие(ЭтаФорма, ОписаниеТаблицыНачислений(), Истина);
УправлениеШтатнымРасписаниемФормы.ПроверкаШтатногоРасписанияПодготовитьТаблицуФормы(
ЭтаФорма, ПроверяемыеРеквизитыНаСоответствие, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ЗарплатаКадрыРасширенный.ОформлениеНесколькихДокументовНаОднуДатуДополнитьФорму(
ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ИсправлениеДокументовЗарплатаКадры.ГруппаИсправлениеДополнитьФорму(
ЭтаФорма, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ДополнитьФормуКадровогоДокумента(ЭтотОбъект, ОписаниеТаблицыЛьгот(), ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводДополнитьФорму(ЭтаФорма, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
МодульЦепочкиДокументовФормы = ОбщегоНазначения.ОбщийМодуль("ЦепочкиДокументовФормы");
МодульЦепочкиДокументовФормы.ДополнитьФормуДокументаЭлементамиЗамещения(ЭтаФорма, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
КонецЕсли;
КадровыеРешенияФормы.ДополнитьФормуКадровогоДокумента(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.КадровыйПереводДополнитьФорму(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.КадровыйПереводДополнитьФорму(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ДополнитьФормуКадровогоПриказа(ЭтотОбъект, Ложь, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ИзмениласьПозицияПриИзмененииНаСервере()
Если Не Объект.ИзменитьПодразделениеИДолжность Тогда
Объект.БронированиеПозиции = Ложь;
ПереводНаИзвестнуюПозицию = Ложь;
Объект.ТрудоваяФункция = Неопределено;
Объект.ОтразитьВТрудовойКнижке = Ложь;
КонецЕсли;
УстановитьДанныеРабочегоМеста();
УстановитьДоступностьЭлементов(ЭтаФорма);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьСвойстваЭлементаРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьСвойстваЭлементовВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
УстановитьКомментарии(ЭтаФорма);
ПрочитатьТарифнуюСетку()
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьРасчетФОТ(ЗаполнитьДанныеТарифнойСетки = Ложь, ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг = Ложь) Экспорт
Если ЗаполнитьДанныеТарифнойСетки Тогда
ПерезаполнитьДанныеТарифнойСетки = Истина;
КонецЕсли;
Если ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг Тогда
ПерезаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг = Истина;
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.ПодключитьОбработчикОжиданияАвтоматическогоРасчета(ЭтаФорма, РегистрацияНачисленийДоступна, "РассчитатьФОТНаКлиенте", ИмяКнопкиРассчитать);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьФОТНаКлиенте()
РассчитатьФОТНаСервере();
ЗарплатаКадрыРасширенныйКлиентСервер.СброситьФлагНеобходимостиВыполненияРасчета(ЭтаФорма, ИмяКнопкиРассчитать);
УстановитьВидимостьПредупрежденияПоОплатеТруда();
КонецПроцедуры
&НаСервере
Процедура РассчитатьФОТНаСервере()
УстановитьПривилегированныйРежим(Истина);
Если ПерезаполнитьДанныеТарифнойСетки Тогда
ЗаполнитьДанныеТарифнойСеткиНаСервере();
КонецЕсли;
Если ПерезаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг Тогда
ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРангНаСервере();
КонецЕсли;
ТаблицаНачислений = ПлановыеНачисленияСотрудников.ТаблицаНачисленийДляРасчетаВторичныхДанных();
ТаблицаПоказателей = ПлановыеНачисленияСотрудников.ТаблицаИзвестныеПоказатели();
РеализацияРаботыСУправленческимиНачислениями = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
РеализацияРаботыСУправленческимиНачислениями = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
РеализацияРаботыСУправленческимиНачислениями.КадровыйПереводПриЗаполненииДанныхНачисленийДляРасчета(ТаблицаНачислений, ТаблицаПоказателей, ЭтаФорма);
КонецЕсли;
ГрафикРаботы = ?(Объект.ИзменитьГрафикРаботы, Объект.ГрафикРаботы, ТекущийГрафикРаботы);
Если Объект.ИзменитьПодразделениеИДолжность Тогда
Организация = Объект.ОбособленноеПодразделение;
Подразделение = Объект.Подразделение;
КоличествоСтавок = Объект.КоличествоСтавок;
Иначе
Организация = ТекущееОбособленноеПодразделение;
Подразделение = ТекущееОбособленноеПодразделение;
КоличествоСтавок = ТекущееКоличествоСтавок;
КонецЕсли;
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ОписаниеДанныхСовокупнойСтавки = ПлановыеНачисленияСотрудниковФормы.ОписаниеДанныхТарифныхСтавок("Объект.ВидТарифнойСтавки", "Объект.СовокупнаяТарифнаяСтавка");
ПлановыеНачисленияСотрудниковФормы.ЗаполнитьДанныеПлановыхНачисленийПоСотруднику(
ТаблицаНачислений,
ТаблицаПоказателей,
ЭтотОбъект,
Объект.Сотрудник,
ГоловнаяОрганизация,
ВремяРегистрации,
ОписаниеТаблицыНачислений);
КадровыеДанные = ПлановыеНачисленияСотрудников.СоздатьТаблицуКадровыхДанныхПоСотруднику(
Объект.Сотрудник,
ВремяРегистрации,
Организация,
Подразделение,
КоличествоСтавок,
ГрафикРаботы);
РассчитанныеВторичныеДанные = ПлановыеНачисленияСотрудников.РассчитатьВторичныеДанныеПлановыхНачислений(ТаблицаНачислений, ТаблицаПоказателей, КадровыеДанные);
ПлановыеНачисленияСотрудниковФормы.РезультатРасчетаВторичныхДанныхПоСотрудникуВДанныеФормы(
ЭтотОбъект,
РассчитанныеВторичныеДанные,
ГоловнаяОрганизация,
ОписаниеТаблицыНачислений,
ОписаниеДанныхСовокупнойСтавки);
Если РеализацияРаботыСУправленческимиНачислениями <> Неопределено Тогда
РеализацияРаботыСУправленческимиНачислениями.КадровыйПереводПриПомещенииРезультатаРасчетаНачисленийВДанныеФормы(ЭтотОбъект, РассчитанныеВторичныеДанные);
КонецЕсли;
РассчитатьКоэффициентИндексацииЗаработка();
УстановитьПривилегированныйРежим(Ложь);
ЗарплатаКадрыРасширенный.УстановитьКомментарииДействийСНачислениями(ЭтаФорма, ОписаниеТаблицыНачислений(), 1, Объект.ДатаНачала, Объект.ДатаОкончания);
РассчитатьИтогиПоФОТ(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтогиПоФОТ(Форма)
ПодсистемаУправленческаяЗарплатаСуществует = ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата");
Если ПодсистемаУправленческаяЗарплатаСуществует Тогда
МодульУправленческаяЗарплатаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
Форма.ФОТ = МодульУправленческаяЗарплатаКлиентСервер.КадровыйПереводРассчитатьИтогиПоФОТ(Форма, ОписаниеТаблицыНачислений());
Иначе
Форма.ФОТ = ЗарплатаКадрыРасширенныйКлиентСервер.ИтогиПоФОТ(Форма, ОписаниеТаблицыНачислений());
КонецЕсли;
УстановитьДоступностьКомандыОбъединенияСтрокОдинаковыхНачислений(Форма);
КонецПроцедуры
&НаСервере
Процедура УстановитьДанныеРабочегоМеста(УстановитьИзменениеНачислений = Истина)
УстановитьПривилегированныйРежим(Истина);
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Объект.ОбособленноеПодразделение = ТекущееОбособленноеПодразделение;
Объект.Подразделение = ТекущееПодразделение;
Объект.Должность = ТекущаяДолжность;
Объект.ДолжностьПоШтатномуРасписанию = ТекущаяДолжностьПоШтатномуРасписанию;
Объект.СпособОтраженияЗарплатыВБухучете = ТекущийСпособОтраженияЗарплатыВБухучете;
Объект.ОтношениеКЕНВД = ТекущееОтношениеКЕНВД;
Объект.СтатьяФинансирования = ТекущаяСтатьяФинансирования;
Объект.ПКУ = ТекущийПКУ;
Объект.РазрядКатегория = ТекущийРазрядКатегория;
Объект.КоличествоСтавок = ТекущееКоличествоСтавок;
Объект.ТрудоваяФункция = ТекущаяТрудоваяФункция;
Если Не Объект.ИзменитьТерриторию Тогда
Объект.Территория = ТекущаяТерритория;
КонецЕсли;
Если Не Объект.ИзменитьВидЗанятости Тогда
Объект.ВидЗанятости = ТекущийВидЗанятости;
КонецЕсли;
Если Не Объект.ИзменитьГрафикРаботы Тогда
Объект.ГрафикРаботы = ТекущийГрафикРаботы;
КонецЕсли;
Иначе
Если НЕ ЗначениеЗаполнено(Объект.ОбособленноеПодразделение) Тогда
Объект.ОбособленноеПодразделение = Объект.Организация;
КонецЕсли;
Объект.Подразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
Объект.Должность = Справочники.Должности.ПустаяСсылка();
Объект.ДолжностьПоШтатномуРасписанию = Справочники.ШтатноеРасписание.ПустаяСсылка();
Объект.СпособОтраженияЗарплатыВБухучете = Справочники.СпособыОтраженияЗарплатыВБухУчете.ПустаяСсылка();
Объект.ОтношениеКЕНВД = Перечисления.ОтношениеКЕНВДЗатратНаЗарплату.ПустаяСсылка();
Объект.СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.ПустаяСсылка();
Объект.ПКУ = Справочники.РазрядыКатегорииДолжностей.ПустаяСсылка();
Объект.РазрядКатегория = Справочники.РазрядыКатегорииДолжностей.ПустаяСсылка();
Объект.КоличествоСтавок = 0;
Объект.ТрудоваяФункция = Справочники.ТрудовыеФункции.ПустаяСсылка();
Если Не Объект.ИзменитьТерриторию Тогда
Объект.Территория = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
КонецЕсли;
Если Не Объект.ИзменитьВидЗанятости Тогда
Объект.ВидЗанятости = Перечисления.ВидыЗанятости.ПустаяСсылка();
КонецЕсли;
Если Не Объект.ИзменитьГрафикРаботы Тогда
Объект.ГрафикРаботы = Справочники.ГрафикиРаботыСотрудников.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.ИзменитьДистанционнуюРаботуРабочегоМеста(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьЗначениеРабочегоМестаВФормеДокумента(
ЭтотОбъект, Истина, УстановитьИзменениеНачислений);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЗначенияКвотыВФормеДокументаКадровогоПриказа(ЭтотОбъект, Истина);
КонецЕсли;
КоличествоСтавокПредставление = КадровыйУчетКлиентСервер.ПредставлениеКоличестваСтавок(Объект.КоличествоСтавок);
ТерриторияПриИзмененииНаСервере(УстановитьИзменениеНачислений);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура УстановитьФункциональныеОпцииФормы()
Если ЗначениеЗаполнено(Объект.ОбособленноеПодразделение) Тогда
ОрганизацияПараметр = Объект.ОбособленноеПодразделение;
Иначе
ОрганизацияПараметр = Объект.Организация;
КонецЕсли;
ПараметрыФО = Новый Структура("Организация", ОрганизацияПараметр);
УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыФО);
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей();
ГоловнаяОрганизация = ЗарплатаКадры.ГоловнаяОрганизация(Объект.Организация);
ОбработатьИзменениеОрганизации(Истина);
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьДоступностьНовогоПодразделения(ЭтаФорма);
УстановитьФункциональныеОпцииФормы();
ЭлектронныеТрудовыеКнижки.ЗаполнитьНаименованиеДокумента(Объект, "КадровыйПеревод");
КонецПроцедуры
&НаСервере
Процедура СотрудникПриИзмененииНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Объект.ИзменитьАванс = Ложь;
Объект.ИзменитьГрафикРаботы = Ложь;
Объект.ИзменитьЕжегодныеОтпуска = Ложь;
Объект.ИзменитьНачисления = Ложь;
Объект.ИзменитьПодразделениеИДолжность = Ложь;
Объект.ИзменитьВидЗанятости = Ложь;
Объект.ИзменитьТерриторию = Ложь;
Объект.СменаВидаДоговора = Ложь;
КонецЕсли;
Если ПереводНаИзвестнуюПозицию Тогда
Если ИспользоватьШтатноеРасписание Тогда
ПереводНаПозицию = Объект.ДолжностьПоШтатномуРасписанию;
Иначе
ПереводВПодразделение = Объект.Подразделение;
ПереводНаДолжность = Объект.Должность;
КонецЕсли;
КонецЕсли;
ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей();
ПрочитатьВремяРегистрации();
УстановитьТекущиеДанныеСотрудника();
ЗаполнитьСведенияОКонтрактеДоговореСотрудника();
ЗаполнитьКадровыйРезерв();
УстановитьОтображениеНадписей();
ОписаниеФормы = ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
НастроитьФормуПоВидуДоговора(ОписаниеФормы);
КонтрактыДоговорыСотрудниковФормы.УстановитьЗаголовокПоляСменаВидаДоговора(ЭтотОбъект, ОписаниеФормы, ТекущийВидДоговора);
УстановитьДоступностьПолейСрочногоТрудовогоДоговора();
Если ПереводНаИзвестнуюПозицию Тогда
Объект.ИзменитьПодразделениеИДолжность = Истина;
Если ИспользоватьШтатноеРасписание Тогда
Объект.ДолжностьПоШтатномуРасписанию = ПереводНаПозицию;
ПозицияШтатногоРасписанияПриИзмененииНаСервере();
Иначе
Объект.Подразделение = ПереводВПодразделение;
Объект.Должность = ПереводНаДолжность;
КонецЕсли;
КонецЕсли;
ЗаполнитьСведенияОКлассномЧинеРангеСотрудника();
УстановитьВидимостьКлассногоЧинаРанга();
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.КадровыйПереводСотрудникПриИзменении(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.КадровыйПереводСотрудникПриИзменении(ЭтотОбъект);
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработатьИзменениеОрганизации(Перезаполнить)
ЗаполнитьДанныеФормыПоОрганизации();
Если ЗначениеЗаполнено(Объект.Организация) Тогда
Если Объект.ИзменитьПодразделениеИДолжность
И ЗначениеЗаполнено(Объект.ОбособленноеПодразделение)
Или Объект.Организация <> Объект.ОбособленноеПодразделение Тогда
МассивОрганизаций = Новый Массив;
МассивОрганизаций.Добавить(Объект.Организация);
МассивОрганизаций.Добавить(Объект.ОбособленноеПодразделение);
ЗначенияГоловныхОрганизаций = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(МассивОрганизаций, "ГоловнаяОрганизация");
Если ЗначенияГоловныхОрганизаций.Получить(Объект.Организация) <> ЗначенияГоловныхОрганизаций.Получить(Объект.ОбособленноеПодразделение) Тогда
Объект.ОбособленноеПодразделение = Справочники.Организации.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
Если Перезаполнить Тогда
ЗаполнитьГрафик(Перезаполнить);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.ПриИзмененииОрганизацииВКадровомПереводе(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецЕсли;
УстановитьВидимостьПоляФилиал(ГоловнаяОрганизация);
Если ТекущееОбособленноеПодразделение <> Объект.ОбособленноеПодразделение Тогда
ТекущееОбособленноеПодразделение = Объект.ОбособленноеПодразделение;
Объект.Подразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
Объект.Территория = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
Объект.РабочееМесто = Неопределено;
Объект.ДолжностьПоШтатномуРасписанию= Справочники.ШтатноеРасписание.ПустаяСсылка();
КонецЕсли;
ПрочитатьРазмерАвансаПоУмолчанию();
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПоляФилиал(ГоловнаяОрганизация)
Если ЗначениеЗаполнено(ГоловнаяОрганизация) Тогда
ЕстьОбособленныеПодразделения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ГоловнаяОрганизация, "ЕстьОбособленныеПодразделения");
Иначе
ЕстьОбособленныеПодразделения = Ложь;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОбособленноеПодразделение",
"Видимость",
ЕстьОбособленныеПодразделения = Истина);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыНачислений()
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Истина, Истина);
ОписаниеТаблицыВидовРасчета.Вставить("ЗапретитьИзменениеПоказателяТарифнойСетки", Истина);
ОписаниеТаблицыВидовРасчета.Вставить("ПоказыватьВременноОтмененныеНачисления", Истина);
ОписаниеТаблицыВидовРасчета.ИмяПоляДляВставкиПоказателей = "НачисленияДокументОснование";
ОписаниеТаблицыВидовРасчета.СодержитПолеХарактерНачисления = Истина;
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыЛьгот()
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Ложь, Ложь);
ОписаниеТаблицыВидовРасчета.ИмяТаблицы = "Льготы";
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаВидРасчета = "Льгота";
ОписаниеТаблицыВидовРасчета.ПутьКДанным = "Объект.Льготы";
ОписаниеТаблицыВидовРасчета.ПутьКДаннымПоказателей = "Объект.Показатели";
ОписаниеТаблицыВидовРасчета.НомерТаблицы = 1;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаФиксРасчет = "ЛьготыФиксРасчет";
ОписаниеТаблицыВидовРасчета.СодержитПолеДействие = Истина;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
ОписаниеТаблицыВидовРасчета.ИмяТаблицыБухучетНачислений = "БухучетЛьгот";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаСервере
Процедура УстановитьТекущиеДанныеСотрудника()
УстановитьТекущиеКадровыеДанные();
УстановитьТекущийАванс();
УстановитьРазмерТекущейСовокупнойТарифнойСтавки();
ОбновитьИндивидуальныйГрафик();
ПрочитатьГрейдСотрудника();
Если Не Объект.ИзменитьПодразделениеИДолжность
Или ПереводНаИзвестнуюПозицию Тогда
УстановитьДанныеРабочегоМеста(Ложь);
ИначеЕсли Не ЗначениеЗаполнено(Объект.ВидЗанятости) Тогда
Объект.ВидЗанятости = ТекущийВидЗанятости;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводУстановитьОтображениеЭлементовФормы(ЭтаФорма, ОграниченияНаУровнеЗаписей);
КонецЕсли;
ЗаполнитьСоставДействующихНачисленийСотрудника(Ложь);
ЗаполнитьСоставДействующихЛьготСотрудника();
ЗаполнитьДействующимиПравамиСотрудникаНаСервере();
ЗаполнитьБухучетДействующихНачислений();
Если Не Объект.ИзменитьАванс Тогда
Объект.СпособРасчетаАванса = ТекущийСпособРасчетаАванса;
Объект.Аванс = ТекущийАванс;
КонецЕсли;
УстановитьПоказРазмераАванса(ЭтаФорма);
УстановитьДоступностьЭлементовИзмененияДанныхСотрудника();
УстановитьДоступностьНовогоПодразделения(ЭтаФорма);
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ЗарплатаКадрыРасширенный.УстановитьТекущиеЗначенияНачисленийСотрудникаРедактируемыхВОтдельныхПолях(ЭтаФорма, Объект.Сотрудник, ВремяРегистрации, Объект.ИсправленныйДокумент);
ЗарплатаКадрыРасширенный.УстановитьОтображениеНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
ПрочитатьТарифнуюСетку();
ОбновитьИнформациюОПересекающихсяКадровыхПереводах();
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьЭлементовИзмененияДанныхСотрудника()
ДоступноИзменениеДанныхСотрудника = ЗначениеЗаполнено(Объект.Сотрудник);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзмениласьПозиция",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменитьВидЗанятости",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменитьТерриторию",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменитьРабочееМесто",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменилсяГрафик",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменилисьНачисления",
"Доступность",
ДоступноИзменениеДанныхСотрудника
И Объект.Организация = Объект.ОбособленноеПодразделение);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменитьЕжегодныеОтпуска",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ИзменитьАванс",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СменаВидаДоговора",
"Доступность",
ДоступноИзменениеДанныхСотрудника);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СменаВидаДоговора",
"Видимость",
Не РедактированиеСтрокиСписочногоДокумента);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.КадровыйПереводУстановитьДоступностьЭлементовИзмененияДанныхСотрудника(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДатаНачалаПриИзмененииНаСервере()
ПрочитатьВремяРегистрации();
Если ИспользоватьШтатноеРасписание
И ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
Если Объект.ДатаНачала < ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДолжностьПоШтатномуРасписанию, "ДатаУтверждения") Тогда
Объект.ДолжностьПоШтатномуРасписанию = Справочники.ШтатноеРасписание.ПустаяСсылка();
КонецЕсли;
КонецЕсли;
УстановитьТекущиеДанныеСотрудника();
ОбновитьИндивидуальныйГрафик();
ПрочитатьТарифнуюСетку();
ЗаполнитьДанныеТарифнойСеткиНаСервере();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект, Истина);
КонецЕсли;
Если Объект.ИзменитьПодразделениеИДолжность
И Объект.ИзменитьНачисления
И ИспользоватьШтатноеРасписание
И ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ЗаполнитьДанныеПоПозицияШтатногоРасписания(Ложь);
Иначе
ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере();
КонецЕсли;
ЗаполнитьКадровыйРезерв();
УстановитьОтображениеНадписей();
ЗаполнитьСведенияОКонтрактеДоговореСотрудника();
ОписаниеФормы = ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
НастроитьФормуПоВидуДоговора(ОписаниеФормы);
КонтрактыДоговорыСотрудниковФормы.УстановитьЗаголовокПоляСменаВидаДоговора(ЭтотОбъект, ОписаниеФормы, ТекущийВидДоговора);
УстановитьДоступностьПолейСрочногоТрудовогоДоговора();
ЗаполнитьСведенияОКлассномЧинеРангеСотрудника();
УстановитьВидимостьКлассногоЧинаРанга();
ОбновитьИнформациюОПересекающихсяКадровыхПереводах();
КонецПроцедуры
&НаСервере
Процедура НастроитьФормуПоВидуДоговора(ОписаниеФормы = Неопределено)
Если ОписаниеФормы = Неопределено Тогда
ОписаниеФормы = ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
КонецЕсли;
КонтрактыДоговорыСотрудниковФормы.НастроитьФормуПоВидуДоговора(ЭтотОбъект, ОписаниеФормы, ?(Объект.СменаВидаДоговора, Объект.ВидДоговора, ТекущийВидДоговора));
Если РедактированиеСтрокиСписочногоДокумента Тогда
Если ЗначениеЗаполнено(Объект.ВидДоговора) Тогда
СуществующиеСвязи = Новый Массив(Элементы.Сотрудник.СвязиПараметровВыбора);
СуществующиеСвязи.Добавить(Новый СвязьПараметраВыбора(
"Отбор.ВидДоговора", "Объект.ВидДоговора"));
Элементы.Сотрудник.СвязиПараметровВыбора = Новый ФиксированныйМассив(СуществующиеСвязи);
КонецЕсли;
КонецЕсли;
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуСодержанию(
ЭтаФорма,
ОписаниеТаблицыНачислений(),
КадровыйУчетРасширенный.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуСодержанию(ЭтаФорма));
КонецПроцедуры
&НаСервере
Процедура УстановитьТекущийАванс()
УстановитьПривилегированныйРежим(Истина);
ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
СтрокаТаблицы = ТаблицаСотрудников.Добавить();
СтрокаТаблицы.Сотрудник = Объект.Сотрудник;
СтрокаТаблицы.Период = ВремяРегистрации;
ДанныеОбАвансе = РасчетЗарплатыРасширенный.АвансыСотрудников(ТаблицаСотрудников, СсылкаНаОбъект);
Если ДанныеОбАвансе.Количество() > 0 Тогда
ТекущийАванс = ДанныеОбАвансе[0].Аванс;
ТекущийСпособРасчетаАванса = ДанныеОбАвансе[0].СпособРасчетаАванса
КонецЕсли;
УстановитьКомментарийКАвансу(ЭтаФорма)
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоказРазмераАванса(Форма)
РасчетЗарплатыКлиентСервер.УстановитьПоказРазмераАванса(Форма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьКомментарийКАвансу(Форма)
Если Форма.Объект.ИзменитьАванс Тогда
ТекстПодсказки =
РасчетЗарплатыКлиентСервер.КомментарийИзмененияАванса(
Форма.ТекущийСпособРасчетаАванса,
Форма.ТекущийАванс)
Иначе
ТекстПодсказки = "";
КонецЕсли;
ЗарплатаКадрыКлиентСервер.УстановитьРасширеннуюПодсказкуЭлементуФормы(
Форма,
"АвансКомментарийГруппа",
ТекстПодсказки);
КонецПроцедуры
&НаСервере
Процедура УстановитьТекущиеКадровыеДанные()
СтавкаВременноОсвобождена = Ложь;
ПериодПредыдущихЗначений = '00010101';
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
СсылкиНаОбъекты = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СсылкаНаОбъект);
Если ЗначениеЗаполнено(Объект.ИсправленныйДокумент) Тогда
СсылкиНаОбъекты.Добавить(Объект.ИсправленныйДокумент);
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента
И ПолучитьФункциональнуюОпциюФормы("ИспользоватьРасчетЗарплатыРасширенная")
И ЗначениеЗаполнено(ЭтаФорма.ДокументИсправление) Тогда
СсылкиНаОбъекты.Добавить(ЭтаФорма.ДокументИсправление);
КонецЕсли;
СтруктураОтбораКадровыхДанных = Новый Структура("ЛевоеЗначение, ВидСравнения, ПравоеЗначение", "Регистратор", "НЕ В", СсылкиНаОбъекты);
Отбор = Новый Массив;
Отбор.Добавить(СтруктураОтбораКадровыхДанных);
ПоляОтбораПериодическихДанных = Новый Структура;
ПоляОтбораПериодическихДанных.Вставить("КадроваяИсторияСотрудников", Отбор);
ПоляОтбораПериодическихДанных.Вставить("ГрафикРаботыСотрудников", Отбор);
ПоляОтбораПериодическихДанных.Вставить("РазрядыКатегорииСотрудников", Отбор);
ПоляОтбораПериодическихДанных.Вставить("ТерриторииСотрудников", Отбор);
ПоляОтбораПериодическихДанных.Вставить("ВидыЗанятостиСотрудников", Отбор);
ПоляОтбораПериодическихДанных.Вставить("БухучетЗарплатыСотрудников", Отбор);
ПараметрыСведенийОПоследнихМероприятиях = Новый Структура("ИсключаемыеРегистраторы", СсылкиНаОбъекты);
ПоляОтбораПериодическихДанных.Вставить("СведенияОПоследнихМероприятияхТрудовойДеятельности", ПараметрыСведенийОПоследнихМероприятиях);
ПараметрыМероприятияТрудовойДеятельностиПереданные = Новый Массив;
ЗарплатаКадрыОбщиеНаборыДанных.ДобавитьВКоллекциюОтбор(
ПараметрыМероприятияТрудовойДеятельностиПереданные, "ВидМероприятия", "<>", Перечисления.ВидыМероприятийТрудовойДеятельности.Переименование);
ПоляОтбораПериодическихДанных.Вставить("МероприятияТрудовойДеятельностиПереданные", ПараметрыМероприятияТрудовойДеятельностиПереданные);
Поля = КадровыйУчетФормыРасширенный.КадровыеДанныеСотрудникаДляЗаполненияКадровогоПеревода();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.ДобавитьПоляОтбораПериодическихДанных(ПоляОтбораПериодическихДанных, Отбор);
МодульДистанционнаяРаботаФормы.ДобавитьКлючиСтруктурыТекущихКадровыхДанныхСотрудника(Поля, Ложь);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.ДобавитьПоляОтбораПериодическихДанных(ПоляОтбораПериодическихДанных, Отбор, Объект.Организация);
МодульРабочиеМестаОхраныТрудаФормы.ДобавитьКлючиСтруктурыТекущихКадровыхДанныхСотрудника(Поля, Объект.Организация);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ДобавитьПоляОтбораПериодическихДанных(ПоляОтбораПериодическихДанных, Отбор);
МодульТрудоустройствоПоКвотамФормы.ДобавитьКлючиСтруктурыТекущихКадровыхДанныхСотрудника(Поля);
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Ложь, Объект.Сотрудник, Поля, ВремяРегистрации, ПоляОтбораПериодическихДанных, Ложь);
УстановитьПривилегированныйРежим(Ложь);
Если ДанныеСотрудников.Количество() > 0 Тогда
ТекущиеКадровыеДанныеСотрудника = ДанныеСотрудников[0];
ТекущееОбособленноеПодразделение = ТекущиеКадровыеДанныеСотрудника.Организация;
ТекущееПодразделение = ТекущиеКадровыеДанныеСотрудника.Подразделение;
ТекущаяТерритория = ТекущиеКадровыеДанныеСотрудника.Территория;
ТекущийГрафикРаботы = ТекущиеКадровыеДанныеСотрудника.ГрафикРаботы;
ТекущееКоличествоСтавок = ТекущиеКадровыеДанныеСотрудника.КоличествоСтавок;
ТекущаяДолжностьПоШтатномуРасписанию = ТекущиеКадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию;
ТекущаяДолжность = ТекущиеКадровыеДанныеСотрудника.Должность;
ТекущийВидЗанятости = ТекущиеКадровыеДанныеСотрудника.ВидЗанятости;
ТекущийСпособОтраженияЗарплатыВБухучете = ТекущиеКадровыеДанныеСотрудника.СпособОтраженияЗарплатыВБухучете;
ТекущееОтношениеКЕНВД = ТекущиеКадровыеДанныеСотрудника.ОтношениеКЕНВД;
ТекущаяСтатьяФинансирования = ТекущиеКадровыеДанныеСотрудника.СтатьяФинансирования;
ТекущийПКУ = ТекущиеКадровыеДанныеСотрудника.ПКУ;
ТекущийРазрядКатегория = ТекущиеКадровыеДанныеСотрудника.РазрядКатегория;
ТекущийВидДоговора = ТекущиеКадровыеДанныеСотрудника.ВидДоговора;
ТекущаяТрудоваяФункция = ТекущиеКадровыеДанныеСотрудника.ТрудоваяФункция;
Если Не ЗначениеЗаполнено(ТекущийПКУ) Тогда
РазрядыКатегорииДолжностей.ЗаполнитьПКУСотрудникаПоУмолчанию(ЭтотОбъект, "ТекущийПКУ", ВремяРегистрации, ТекущиеКадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию);
КонецЕсли;
ПредыдущийВидСобытия = ТекущиеКадровыеДанныеСотрудника.ВидСобытия;
ПериодПредыдущихЗначений = ТекущиеКадровыеДанныеСотрудника.РабочееМестоПериодРегистрации;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.УстановитьТекущуюДистанционнуюРаботу(ЭтотОбъект, ТекущиеКадровыеДанныеСотрудника);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьТекущееРабочееМесто(ЭтотОбъект, ТекущиеКадровыеДанныеСотрудника);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьТекущиеЗначенияРеквизитовФормыКадровогоПеревода(ЭтотОбъект, ТекущиеКадровыеДанныеСотрудника);
КонецЕсли;
СтавкаВременноОсвобождена = КадровыйУчетРасширенный.СтавкаВременноОсвобождена(
Объект.ДатаНачала, Объект.Сотрудник, ИсключаемыеРегистраторы(ЭтотОбъект));
КонецЕсли;
Иначе
ТекущееОбособленноеПодразделение = Объект.Организация;
ТекущееПодразделение = Справочники.ПодразделенияОрганизаций.ПустаяСсылка();
ТекущаяТерритория = Справочники.ТерриторииВыполненияРабот.ПустаяСсылка();
ТекущаяДолжностьПоШтатномуРасписанию = Справочники.ШтатноеРасписание.ПустаяСсылка();
ТекущаяДолжность = Справочники.Должности.ПустаяСсылка();
ТекущийГрафикРаботы = Справочники.ГрафикиРаботыСотрудников.ПустаяСсылка();
ТекущееКоличествоСтавок = 0;
ТекущийВидЗанятости = Перечисления.ВидыЗанятости.ПустаяСсылка();
ТекущийСпособОтраженияЗарплатыВБухучете = Справочники.СпособыОтраженияЗарплатыВБухУчете.ПустаяСсылка();
ТекущееОтношениеКЕНВД = Перечисления.ОтношениеКЕНВДЗатратНаЗарплату.ПустаяСсылка();
ТекущаяСтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.ПустаяСсылка();
ТекущийПКУ = Справочники.РазрядыКатегорииДолжностей.ПустаяСсылка();
ТекущийРазрядКатегория = Справочники.РазрядыКатегорииДолжностей.ПустаяСсылка();
Если ЗначениеЗаполнено(Объект.ВидДоговора) Тогда
ТекущийВидДоговора = Объект.ВидДоговора;
Иначе
ТекущийВидДоговора = Перечисления.ВидыДоговоровССотрудниками.ТрудовойДоговор;
КонецЕсли;
ПредыдущийВидСобытия = Перечисления.ВидыКадровыхСобытий.ПустаяСсылка();
ТекущаяТрудоваяФункция = Справочники.ТрудовыеФункции.ПустаяСсылка();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.УстановитьТекущуюДистанционнуюРаботу(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьТекущееРабочееМесто(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьТекущиеЗначенияРеквизитовФормыКадровогоПеревода(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
МодульГосударственнаяСлужба = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
МодульГосударственнаяСлужба.УстановитьВидДоговораВКадровомПереводе(ЭтотОбъект, ТекущийВидДоговора, Объект.СменаВидаДоговора);
КонецЕсли;
ДанныеДолжности(Истина);
УстановитьКомментарии(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьКомментарии(Форма)
Форма.КоличествоСтавокКомментарий = КадровыйУчетРасширенныйКлиентСервер.КомментарийККоличествуСтавок(
Форма.ТекущееКоличествоСтавок,
Форма.Объект.КоличествоСтавок,
Форма.Объект.ИзменитьПодразделениеИДолжность);
УстановитьПозицияКомментарий(Форма);
УстановитьГрафикРаботыКомментарий(Форма);
УстановитьБухучетКомментарий(Форма);
Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("РабочиеМестаОхраныТрудаКлиентСервер");
МодульРабочиеМестаОхраныТрудаКлиентСервер.УстановитьРабочееМестоКомментарий(Форма);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПозицияКомментарий(Форма)
Если Форма.Объект.ИзменитьПодразделениеИДолжность Тогда
Если ЗначениеЗаполнено(Форма.ТекущееПодразделение) Тогда
Если Форма.ИспользоватьШтатноеРасписание Тогда
Форма.ПозицияКомментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ранее сотрудник занимал должность ""%1""'"),
Форма.ТекущаяДолжностьПоШтатномуРасписанию);
Иначе
Форма.ПозицияКомментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ранее сотрудник занимал должность ""%1"" в подразделении ""%2""'"),
Форма.ТекущаяДолжность, Форма.ТекущееПодразделение);
КонецЕсли;
Иначе
Форма.ПозицияКомментарий = НСтр("ru = 'Сотрудник еще не принят на работу'");
КонецЕсли;
Иначе
Форма.ПозицияКомментарий = "";
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьГрафикРаботыКомментарий(Форма)
Если Форма.Объект.ИзменитьГрафикРаботы Тогда
Форма.ГрафикРаботыКомментарий = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Ранее сотрудник работал по графику %1'"),
Форма.ТекущийГрафикРаботы);
Иначе
Форма.ГрафикРаботыКомментарий = "";
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьБухучетКомментарий(Форма)
Форма.БухучетЗарплатыКомментарий = ОтражениеЗарплатыВБухучетеКлиентСерверРасширенный.КомментарийПредставлениеПрежнегоБухучетаЗарплаты(Форма, Форма.Объект.ИзменитьБухучетЗарплаты, Форма.РегистрацияНачисленийДоступна);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСоставДействующихНачисленийСотрудника(ПересчитатьФОТ = Истина)
УстановитьПривилегированныйРежим(Истина);
ТекущиеНачисления = Объект.Начисления.Выгрузить();
ТекущиеПоказатели = Объект.Показатели.Выгрузить();
Объект.Начисления.Очистить();
Объект.Показатели.Очистить();
ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
ТаблицаСотрудников.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
ТаблицаСотрудников.Колонки.Добавить("ДолжностьПоШтатномуРасписанию", Новый ОписаниеТипов("СправочникСсылка.ШтатноеРасписание"));
ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
СтрокаСотрудник = ТаблицаСотрудников.Добавить();
СтрокаСотрудник.Сотрудник = Объект.Сотрудник;
СтрокаСотрудник.Организация = Объект.Организация;
СтрокаСотрудник.ДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
СтрокаСотрудник.Период = ВремяРегистрации;
Если ЗначениеЗаполнено(Объект.ИсправленныйДокумент) И НЕ Объект.Проведен Тогда
ИсключаемыйРегистратор = Объект.ИсправленныйДокумент;
Иначе
ИсключаемыйРегистратор = СсылкаНаОбъект;
КонецЕсли;
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДействующиеНачисленияВРеквизит(ИсключаемыйРегистратор, ТаблицаСотрудников, ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Объект.ДатаНачала, Объект.ДатаОкончания);
ЗарплатаКадрыРасширенный.УстановитьЗначениеСевернойНадбавкиВФорме(ЭтаФорма, Объект.Сотрудник, Объект.ДатаНачала, Объект.ФизическоеЛицо);
ЗарплатаКадрыРасширенный.УстановитьТекущееЗначениеПорядкаПересчетаТарифнойСтавки(ЭтаФорма, Объект.Сотрудник, ВремяРегистрации);
ЗарплатаКадрыРасширенный.УстановитьТекущееЗначениеСовокупнойТарифнойСтавки(ЭтаФорма, Объект.Сотрудник, ВремяРегистрации);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводЗаполнитьСоставДействующихНачисленийСотрудника(ИсключаемыйРегистратор, ТаблицаСотрудников, ЭтаФорма, Объект.ДатаНачала, Объект.ДатаОкончания);
КонецЕсли;
Если Объект.ИзменитьНачисления И НЕ ИспользоватьШтатноеРасписание Тогда
УстановитьКомментарииСтрок = Ложь;
Для каждого СтрокаНачислений Из Объект.Начисления Цикл
ПредыдущиеСтрокиНачислений = ТекущиеНачисления.НайтиСтроки(Новый Структура("Начисление", СтрокаНачислений.Начисление));
Если ПредыдущиеСтрокиНачислений.Количество() > 0 Тогда
ПредыдущаяСтрока = ПредыдущиеСтрокиНачислений[0];
Если ПредыдущаяСтрока.Действие = Перечисления.ДействияСНачислениямиИУдержаниями.Отменить Тогда
СтрокаНачислений.Действие = Перечисления.ДействияСНачислениямиИУдержаниями.Отменить;
КонецЕсли;
СтрокаНачислений.Размер = ПредыдущаяСтрока.Размер;
Для ИндексПоказателя = 1 По ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтаФорма, ОписаниеТаблицыВидовРасчета,, 1) Цикл
СтрокаНачислений["Показатель" + ИндексПоказателя] = ПредыдущаяСтрока["Показатель" + ИндексПоказателя];
СтрокаНачислений["Значение" + ИндексПоказателя] = ПредыдущаяСтрока["Значение" + ИндексПоказателя];
КонецЦикла;
УстановитьКомментарииСтрок = Истина;
КонецЕсли;
КонецЦикла;
Если УстановитьКомментарииСтрок Тогда
ЗарплатаКадрыРасширенный.УстановитьКомментарииДействийСНачислениями(ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Объект.ДатаНачала);
КонецЕсли;
КонецЕсли;
Если ПересчитатьФОТ Тогда
РассчитатьФОТНаСервере();
Иначе
РассчитатьИтогиПоФОТ(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьРазмерТекущейСовокупнойТарифнойСтавки()
УстановитьПривилегированныйРежим(Истина);
СотрудникиДаты = Новый ТаблицаЗначений;
СотрудникиДаты.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
СотрудникиДаты.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
НоваяСтрока = СотрудникиДаты.Добавить();
НоваяСтрока.Сотрудник = Объект.Сотрудник;
НоваяСтрока.Период = ВремяРегистрации;
ТекущиеДанныеОплатыТруда = ПлановыеНачисленияСотрудников.ТекущиеДанныеОплатыТрудаСотрудников(СсылкаНаОбъект, СотрудникиДаты);
Если ТекущиеДанныеОплатыТруда.Количество() > 0 Тогда
ТекущаяСовокупнаяТарифнаяСтавка = ТекущиеДанныеОплатыТруда[0].СовокупнаяТарифнаяСтавка;
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура РассчитатьКоэффициентИндексацииЗаработка()
Объект.КоэффициентИндексации = УчетСреднегоЗаработкаКлиентСервер.КоэффициентИндексацииЗаработка(Объект.СовокупнаяТарифнаяСтавка, ТекущаяСовокупнаяТарифнаяСтавка);
КонецПроцедуры
&НаСервере
Процедура ДанныеВРеквизит()
ТаблицаСотрудников = ТаблицаСотрудников();
ГоловнаяОрганизация = ЗарплатаКадры.ГоловнаяОрганизация(Объект.Организация);
Если ТаблицаСотрудников.Количество() > 0 Тогда
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ОписанияТаблиц = ОписанияТаблиц();
ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийДанныеВРеквизит(ЭтаФорма, ОписанияТаблиц, ИсключаемыеРегистраторы(ЭтотОбъект), ТаблицаСотрудников);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводДополнитьМассивОписанийТаблиц(ОписанияТаблиц);
КонецЕсли;
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДанныеВРеквизит(СсылкаНаОбъект, ТаблицаСотрудников, ЭтаФорма, ОписанияТаблиц, 1, , Объект.ДатаНачала,
?(Объект.ИзменитьНачисления, Объект.ДатаОкончания, Неопределено));
ЗарплатаКадрыРасширенный.РедактированиеСоставаДополнительныхПоказателейДанныеВРеквизит(СсылкаНаОбъект, ТаблицаСотрудников, ЭтаФорма, ОписаниеТаблицыВидовРасчета);
КонецЕсли;
ЗарплатаКадрыРасширенный.УстановитьТекущиеЗначенияНачисленийСотрудникаРедактируемыхВОтдельныхПолях(ЭтаФорма, Объект.Сотрудник, ВремяРегистрации, Объект.ИсправленныйДокумент);
УстановитьВидимостьПоляФилиал(ГоловнаяОрганизация);
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ИсправлениеДокументовЗарплатаКадры.ПрочитатьРеквизитыИсправления(ЭтаФорма, "ПериодическиеСведения");
УстановитьПоляИсправления(ЭтаФорма);
КонецЕсли;
ОбновитьИнформациюОПересекающихсяКадровыхПереводах();
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура РеквизитВДанные(ТекущийОбъект)
УстановитьПривилегированныйРежим(Истина);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписаниеТаблицыВидовРасчета, 1);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыЛьгот();
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписаниеТаблицыВидовРасчета, 1, Ложь);
ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписанияТаблиц());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводРеквизитВДанные(ЭтаФорма, ТекущийОбъект);
КонецЕсли;
Если ЗначениеЗаполнено(Основание) Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("Основание", Основание);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Функция ПроверкаПередЗаписьюНаСервере(РезультатыПроверки, ДанныеОЗанятыхПозициях) Экспорт
Возврат КадровыйУчетРасширенный.ПроверкаСоответствияШтатномуРасписанию(ДанныеОЗанятыхПозициях, СсылкаНаОбъект, Истина, РезультатыПроверки, Объект.ИсправленныйДокумент);
КонецФункции
&НаКлиенте
Функция ПолучитьДанныеОЗанятыхПозициях() Экспорт
ДанныеОЗанятыхПозициях = Новый Массив;
Если Объект.ИзменитьПодразделениеИДолжность
ИЛИ ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений И Объект.ИзменитьНачисления Тогда
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ОбщегоНазначенияКлиент.ДатаСеанса());
ЭлементДанных.Период = ВремяРегистрации;
ЭлементДанных.Сотрудник = Объект.Сотрудник;
Если Объект.ИзменитьПодразделениеИДолжность Тогда
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность);
ЭлементДанных.КоличествоСтавок = Объект.КоличествоСтавок;
Иначе
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, ТекущаяДолжностьПоШтатномуРасписанию, ТекущаяДолжность);
ЭлементДанных.КоличествоСтавок = ?(СтавкаВременноОсвобождена, 0, ТекущееКоличествоСтавок);
КонецЕсли;
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
Если Объект.ИзменитьНачисления Тогда
ДанныеОНачислениях = КадровыйУчетРасширенныйКлиентСервер.ДанныеОНачисленияхВФорме(
ЭтаФорма,
Объект.Начисления,
Объект.Показатели,
ОписаниеТаблицыНачислений());
Иначе
ДанныеОНачислениях = КадровыйУчетРасширенныйВызовСервера.ДанныеОТекущихНачисленияхСотрудника(
Объект.Сотрудник, Объект.ДатаНачала, ИсключаемыеРегистраторы(ЭтотОбъект));
КонецЕсли;
ЭлементДанных.ФОТ = ФОТ;
ЭлементДанных.Грейд = Объект.Грейд;
Иначе
ДанныеОНачислениях = Неопределено;
КонецЕсли;
ЭлементДанных.ДанныеОНачислениях = ДанныеОНачислениях;
ДанныеОЗанятыхПозициях.Добавить(ЭлементДанных);
Если ЗначениеЗаполнено(Объект.ДатаОкончания) Тогда
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ОбщегоНазначенияКлиент.ДатаСеанса());
ЭлементДанных.Период = Объект.ДатаОкончания;
ЭлементДанных.Сотрудник = Объект.Сотрудник;
Если Объект.ИзменитьПодразделениеИДолжность Тогда
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность);
ЭлементДанных.КоличествоСтавок = - Объект.КоличествоСтавок;
Иначе
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, ТекущаяДолжностьПоШтатномуРасписанию, ТекущаяДолжность);
ЭлементДанных.КоличествоСтавок = - ?(СтавкаВременноОсвобождена, 0, ТекущееКоличествоСтавок);
КонецЕсли;
ЭлементДанных.ДанныеОНачислениях = Неопределено;
ДанныеОЗанятыхПозициях.Добавить(ЭлементДанных);
Если Объект.ИзменитьПодразделениеИДолжность
И ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность) <> ?(ИспользоватьШтатноеРасписание, ТекущаяДолжностьПоШтатномуРасписанию, ТекущаяДолжность) Тогда
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ОбщегоНазначенияКлиент.ДатаСеанса());
ЭлементДанных.Период = Объект.ДатаОкончания;
ЭлементДанных.Сотрудник = Объект.Сотрудник;
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, ТекущаяДолжностьПоШтатномуРасписанию, ТекущаяДолжность);
ЭлементДанных.КоличествоСтавок = ТекущееКоличествоСтавок;
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
ДанныеОНачислениях = КадровыйУчетРасширенныйВызовСервера.ДанныеОТекущихНачисленияхСотрудника(
Объект.Сотрудник, Объект.ДатаНачала, ИсключаемыеРегистраторы(ЭтотОбъект));
Если ДанныеОНачислениях <> Неопределено Тогда
ЭлементДанных.ДанныеОНачислениях = ДанныеОНачислениях;
КонецЕсли;
КонецЕсли;
ДанныеОЗанятыхПозициях.Добавить(ЭлементДанных);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат ДанныеОЗанятыхПозициях;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементов(Форма)
ИзменитьПозициюДолжность = Форма.Объект.ИзменитьПодразделениеИДолжность
И ЗначениеЗаполнено(Форма.Объект.Сотрудник);
ИзменитьТерриторию = Форма.Объект.ИзменитьТерриторию
И ЗначениеЗаполнено(Форма.Объект.Сотрудник);
ИзменитьВидЗанятости = Форма.Объект.ИзменитьВидЗанятости
И ЗначениеЗаполнено(Форма.Объект.Сотрудник);
ИзменитьГрафикРаботы = Форма.Объект.ИзменитьГрафикРаботы;
ИзменитьЕжегодныеОтпуска = Форма.Объект.ИзменитьЕжегодныеОтпуска;
ИспользоватьШтатноеРасписание = Форма.ИспользоватьШтатноеРасписание;
СменаВидаДоговора = Форма.Объект.СменаВидаДоговора;
БронированиеПозиции = Форма.Объект.БронированиеПозиции;
ИзменитьБухучетЗарплаты = Форма.Объект.ИзменитьБухучетЗарплаты И ИзменитьПозициюДолжность И Не БронированиеПозиции;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ИзменитьБухучетЗарплаты",
"Доступность",
ИзменитьПозициюДолжность И Не БронированиеПозиции);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ИзмениласьПозиция",
"Доступность",
ЗначениеЗаполнено(Форма.Объект.Сотрудник) И НЕ СменаВидаДоговора);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ИзменитьСведенияОДоговореКонтракте",
"Доступность",
ЗначениеЗаполнено(Форма.Объект.Сотрудник));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Подразделение",
"Доступность",
ИзменитьПозициюДолжность);
РазрешеноМенятьВидЗанятости = Форма.РедактированиеСтрокиСписочногоДокумента
Или Форма.ТекущийВидЗанятости <> ПредопределенноеЗначение("Перечисление.ВидыЗанятости.ВнутреннееСовместительство");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ИзменитьВидЗанятости",
"Видимость",
ЗначениеЗаполнено(Форма.Объект.Сотрудник) И РазрешеноМенятьВидЗанятости);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ВидЗанятости",
"ПоложениеЗаголовка",
?(РазрешеноМенятьВидЗанятости, ПоложениеЗаголовкаЭлементаФормы.Нет, ПоложениеЗаголовкаЭлементаФормы.Авто));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ВидЗанятости",
"Доступность",
РазрешеноМенятьВидЗанятости И ИзменитьВидЗанятости);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Территория",
"Доступность",
ИзменитьТерриторию);
Если ИспользоватьШтатноеРасписание Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ПозицияШтатногоРасписания",
"Доступность",
ИзменитьПозициюДолжность);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Должность",
"Доступность",
ИзменитьПозициюДолжность);
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ОтразитьВТрудовойКнижке",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СведенияТрудовойКнижкиГруппа",
"Доступность",
ИзменитьПозициюДолжность
И Форма.Объект.ОтразитьВТрудовойКнижке);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ОбособленноеПодразделение",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ГруппаГрейд",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"КоличествоСтавок",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ПКУ",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РазрядКатегория",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СпособОтраженияЗарплатыВБухучете",
"Доступность",
ИзменитьБухучетЗарплаты);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ОтношениеКЕНВД",
"Доступность",
ИзменитьБухучетЗарплаты);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СтатьяФинансирования",
"Доступность",
ИзменитьБухучетЗарплаты);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"БронированиеПозиции",
"Доступность",
ИзменитьПозициюДолжность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"График",
"Доступность",
ИзменитьГрафикРаботы);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НадписьПраваНаОтпуск",
"Доступность",
ИзменитьЕжегодныеОтпуска);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РедактироватьЕжегодныеОтпуска",
"Доступность",
ЗначениеЗаполнено(Форма.Объект.Сотрудник) И ИзменитьЕжегодныеОтпуска);
Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("ДистанционнаяРаботаКлиентСервер");
МодульДистанционнаяРаботаКлиентСервер.КадровыйПереводУстановитьДоступностьЭлементов(Форма);
КонецЕсли;
Если Форма.ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
ИзменитьНачисления = Форма.Объект.ИзменитьНачисления;
ИзменитьАванс = Форма.Объект.ИзменитьАванс;
ИзменитьЛьготы = Форма.Объект.ИзменитьЛьготы;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"КомандныеПанелиНачислений",
"Доступность",
ИзменитьНачисления);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Начисления",
"Доступность",
ИзменитьНачисления);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ПоказателиГруппа",
"Доступность",
ИзменитьНачисления);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ТарифнаяСтавкаГруппа",
"Доступность",
ИзменитьНачисления);
КадровыйУчетРасширенныйКлиентСервер.УстановитьДоступностьКоманднойПанели(Форма, "СтраницыКоманднойПанелиНачислений", ИзменитьНачисления);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"АвансКомментарийГруппа",
"Доступность",
ИзменитьАванс);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Льготы",
"Доступность",
ИзменитьЛьготы);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"БухучетНачислений",
"ТолькоПросмотр",
Не Форма.Объект.ИзменитьБухучетНачислений);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"БухучетНачисленийРедактируемыхВОтдельныхПолях",
"ТолькоПросмотр",
Не Форма.Объект.ИзменитьБухучетНачислений);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"БухучетЛьгот",
"ТолькоПросмотр",
Не Форма.Объект.ИзменитьБухучетЛьгот);
Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
МодульУправленческаяЗарплатаКлиентСервер.КадровыйПереводУстановитьДоступностьЭлементов(Форма, ИзменитьНачисления);
КонецЕсли;
КонецЕсли;
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
Форма, Форма.РедактированиеСтрокиСписочногоДокумента);
Если Форма.Объект.ОтразитьВТрудовойКнижке И ЗначениеЗаполнено(Форма.Объект.ДатаОкончания) Тогда
ОтразитьВТрудовойКнижкеПодсказка = НСтр("ru = 'При регистрации мероприятий будет зарегистрировано два мероприятия: на дату
|перевода и на дату возврата на прежнюю позицию'");
ОтразитьВТрудовойКнижкеОтображениеПодсказки = ОтображениеПодсказки.ОтображатьСнизу;
Иначе
ОтразитьВТрудовойКнижкеПодсказка = "";
ОтразитьВТрудовойКнижкеОтображениеПодсказки = ОтображениеПодсказки.Авто;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ОтразитьВТрудовойКнижке",
"Подсказка",
ОтразитьВТрудовойКнижкеПодсказка);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ОтразитьВТрудовойКнижке",
"ОтображениеПодсказки",
ОтразитьВТрудовойКнижкеОтображениеПодсказки);
КонецПроцедуры
&НаСервере
Процедура ОбособленноеПодразделениеПриИзмененииНаСервере()
УстановитьФункциональныеОпцииФормы();
ЗаполнитьГрафик(Истина);
УстановитьДоступностьНовогоПодразделения(ЭтаФорма);
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ПрочитатьРазмерАвансаПоУмолчанию();
Если Объект.Организация <> Объект.ОбособленноеПодразделение Тогда
Если Не Объект.ИзменитьНачисления Тогда
Объект.ИзменитьНачисления = Истина;
ИзменилисьНачисленияПриИзмененииНаСервере();
УстановитьДоступностьЭлементовИзмененияДанныхСотрудника();
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодразделениеПриИзмененииНаСервере()
ЗаполнитьГрафик(Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
Если ЗарплатаКадрыРасширенныйКлиентСервер.ИзменяетсяПрименениеНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма) Тогда
Объект.ИзменитьНачисления = Истина;
ИзменилисьНачисленияПриИзмененииНаСервере();
РассчитатьФОТНаСервере();
КонецЕсли;
ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере();
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьОтображениеНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачисленияПоПозицииНаСервере(ПерезаполнениеПоПозиции = Ложь, ПерезаполнитьТекущиеНачисленияСотрудника = Истина)
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию)
И (Объект.ИзменитьНачисления Или ПерезаполнениеПоПозиции) Тогда
УстановитьПривилегированныйРежим(Истина);
Если ПерезаполнитьТекущиеНачисленияСотрудника Тогда
ЗаполнитьСоставДействующихНачисленийСотрудника(Ложь);
КонецЕсли;
ПараметрыЗаполнения = КадровыйУчетРасширенный.ПараметрыЗаполненияНачисленийПоПозицииШтатногоРасписания();
ПараметрыЗаполнения.ДатаСобытия = Объект.ДатаНачала;
ПараметрыЗаполнения.Сотрудник = Объект.Сотрудник;
ПараметрыЗаполнения.РазрядКатегорияНадбавки = Объект.РазрядКатегория;
ПараметрыЗаполнения.ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ПараметрыЗаполнения.СохранятьТекущиеЗначения = Истина;
ПараметрыЗаполнения.ДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
ПараметрыЗаполнения.ТекущаяДолжностьПоШтатномуРасписанию = ТекущаяДолжностьПоШтатномуРасписанию;
ПараметрыЗаполнения.ПКУ = Объект.ПКУ;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводДополнитьПараметрыЗаполненияНачисленийПоПозицииШтатногоРасписания(ПараметрыЗаполнения);
КонецЕсли;
РайонныйКоэффициентВходитВСоставПлановыхНачислений = ЗарплатаКадрыРасширенныйКлиентСервер.РайонныйКоэффициентВходитВСоставПлановыхНачислений(ЭтаФорма);
ЗначениеПоказателяРайонныйКоэффициентПрежний = ЗначениеПоказателяРайонныйКоэффициент;
НадбавкаЗаВредностьВходитВСоставПлановыхНачислений = ЗарплатаКадрыРасширенныйКлиентСервер.НадбавкаЗаВредностьВходитВСоставПлановыхНачислений(ЭтаФорма);
ЗначениеПоказателяНадбавкаЗаВредностьПрежняя = ЗначениеПоказателяНадбавкаЗаВредность;
СевернаяНадбавкаВходитВСоставПлановыхНачислений = ЗарплатаКадрыРасширенныйКлиентСервер.СевернаяНадбавкаВходитВСоставПлановыхНачислений(ЭтаФорма);
КадровыйУчетРасширенный.ЗаполнитьНачисленияПоПозиции(ЭтаФорма, ПараметрыЗаполнения);
Если ПерезаполнениеПоПозиции Тогда
Объект.ИзменитьНачисления = Объект.Организация <> Объект.ОбособленноеПодразделение;
Для каждого СтрокаНачисления Из Объект.Начисления Цикл
Если ЗначениеЗаполнено(СтрокаНачисления.Действие) Тогда
Объект.ИзменитьНачисления = Истина;
Иначе
Для НомерПоказателя = 1 По ЭтаФорма.МаксимальноеКоличествоПоказателейНачисления Цикл
Если НЕ ЗначениеЗаполнено(СтрокаНачисления["Показатель" + НомерПоказателя]) Тогда
Прервать;
КонецЕсли;
Если СтрокаНачисления["Значение" + НомерПоказателя] <> СтрокаНачисления["ТекущееЗначение" + НомерПоказателя] Тогда
Объект.ИзменитьНачисления = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Объект.ИзменитьНачисления Тогда
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Не Объект.ИзменитьНачисления Тогда
Если ЗарплатаКадрыРасширенныйКлиентСервер.РайонныйКоэффициентПрименяется(ЭтотОбъект) <> ЗарплатаКадрыРасширенныйКлиентСервер.РайонныйКоэффициентВходитВСоставПлановыхНачислений(ЭтаФорма)
Или РайонныйКоэффициентВходитВСоставПлановыхНачислений И ЗначениеПоказателяРайонныйКоэффициентПрежний <> ЗначениеПоказателяРайонныйКоэффициент Тогда
Объект.ИзменитьНачисления = Истина;
ИначеЕсли ЗарплатаКадрыРасширенныйКлиентСервер.НадбавкаЗаВредностьПрименяется(ЭтотОбъект) <> ЗарплатаКадрыРасширенныйКлиентСервер.НадбавкаЗаВредностьВходитВСоставПлановыхНачислений(ЭтаФорма)
Или НадбавкаЗаВредностьВходитВСоставПлановыхНачислений И ЗначениеПоказателяНадбавкаЗаВредностьПрежняя <> ЗначениеПоказателяНадбавкаЗаВредность Тогда
Объект.ИзменитьНачисления = Истина;
ИначеЕсли ЗарплатаКадрыРасширенныйКлиентСервер.СевернаяНадбавкаПрименяется(ЭтотОбъект) <> ЗарплатаКадрыРасширенныйКлиентСервер.СевернаяНадбавкаВходитВСоставПлановыхНачислений(ЭтаФорма) Тогда
Объект.ИзменитьНачисления = Истина;
КонецЕсли;
КонецЕсли;
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ЗарплатаКадрыРасширенный.УстановитьТекущиеЗначенияНачисленийСотрудникаРедактируемыхВОтдельныхПолях(ЭтаФорма, Объект.Сотрудник, ВремяРегистрации, Объект.ИсправленныйДокумент);
РассчитатьФОТНаСервере();
ЗарплатаКадрыРасширенный.УстановитьИзменениеСоставаПлановыхНачислений(ЭтаФорма, Объект.ИзменитьНачисления);
УстановитьПривилегированныйРежим(Ложь);
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьГрафик(Перезаполнение = Ложь)
Если Объект.ИзменитьГрафикРаботы ИЛИ Перезаполнение Тогда
ЗначенияДляЗаполнения = Новый Структура;
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьОбособленныеПодразделения") Тогда
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.ОбособленноеПодразделение");
Иначе
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.Организация");
КонецЕсли;
ЗначенияДляЗаполнения.Вставить("Подразделение", "Объект.Подразделение");
ЗначенияДляЗаполнения.Вставить("ДолжностьПоШтатномуРасписанию", "Объект.ДолжностьПоШтатномуРасписанию");
ЗначенияДляЗаполнения.Вставить("ГрафикРаботы", "Объект.ГрафикРаботы");
ФиксированныеЗначения = Новый Массив;
ФиксированныеЗначения.Добавить("Организация");
ФиксированныеЗначения.Добавить("Подразделение");
ФиксированныеЗначения.Добавить("ДолжностьПоШтатномуРасписанию");
ПрежнийГрафикРаботы = Объект.ГрафикРаботы;
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения, ФиксированныеЗначения);
Если Не ЗначениеЗаполнено(Объект.ГрафикРаботы) Тогда
Объект.ГрафикРаботы = ПрежнийГрафикРаботы;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТекущийГрафикРаботы) Тогда
ТекущийГрафикРаботы = Объект.ГрафикРаботы;
КонецЕсли;
Если Перезаполнение Тогда
Если Объект.ГрафикРаботы <> ТекущийГрафикРаботы Тогда
Если ЗначениеЗаполнено(Объект.ГрафикРаботы) Тогда
Объект.ИзменитьГрафикРаботы = Истина;
Иначе
Объект.ГрафикРаботы = ТекущийГрафикРаботы;
КонецЕсли;
Иначе
Объект.ИзменитьГрафикРаботы = Ложь;
КонецЕсли;
КонецЕсли;
Иначе
Объект.ГрафикРаботы = ТекущийГрафикРаботы;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
ОбновитьИндивидуальныйГрафик();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПКУПоУмолчанию()
РазрядыКатегорииДолжностей.ЗаполнитьПКУСотрудникаПоУмолчанию(
ЭтаФорма, "Объект.ПКУ", Объект.ДатаНачала, Объект.ДолжностьПоШтатномуРасписанию);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРазрядПоУмолчанию()
РазрядыКатегорииДолжностей.ЗаполнитьРазрядКатегориюСотрудникаПоУмолчанию(
ЭтаФорма, "Объект.РазрядКатегория",ТарифнаяСетка, Объект.Должность,
Объект.ДолжностьПоШтатномуРасписанию, Объект.Сотрудник, Объект.ДатаНачала);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьГрейдПоУмолчанию()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
Позиция = ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность);
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
Объект.Грейд = МодульГрейды.ГрейдПозиции(Позиция);
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьГрейдСотрудника()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
Объект.Грейд = МодульГрейды.ГрейдСотрудника(Объект.Сотрудник, ВремяРегистрации, СсылкаНаОбъект);
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГрейдПриИзмененииНаСервере()
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецПроцедуры
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
Элемент.ТекстРедактирования,
ЭтотОбъект,
"Объект.Комментарий");
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыПроверяемыеНаСоответствие(Форма, ОписаниеТаблицыВидовРасчета, ИнициализацияФормы = Ложь)
РеквизитыПроверяемыеНаСоответствие = Новый Структура("РеквизитыШапки,ТабличныеЧасти", Новый Соответствие, Новый Соответствие);
Если Форма.Объект.ИзменитьПодразделениеИДолжность Тогда
РеквизитыПроверяемыеНаСоответствие.РеквизитыШапки.Вставить("ДолжностьПоШтатномуРасписанию", "ПозицияШтатногоРасписания");
РеквизитыПроверяемыеНаСоответствие.РеквизитыШапки.Вставить("КоличествоСтавок", "КоличествоСтавок");
КонецЕсли;
Если Форма.ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
Если ИнициализацияФормы ИЛИ Форма.Объект.ИзменитьНачисления Тогда
ОписаниеСоответствияПоказателей = Новый Соответствие;
КоличествоПоказателей = ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(Форма, ОписаниеТаблицыВидовРасчета,, 1);
Для НомерПоказателя = 1 По КоличествоПоказателей Цикл
ОписаниеСоответствияПоказателей.Вставить("Показатель" + НомерПоказателя, "Показатель" + НомерПоказателя + "НеСоответствуетПозиции");
ОписаниеСоответствияПоказателей.Вставить("Значение" + НомерПоказателя, "Значение" + НомерПоказателя + "НеСоответствуетПозиции");
КонецЦикла;
СтруктураОписанияТЧНачисления = УправлениеШтатнымРасписаниемКлиентСервер.ОписаниеРеквизитовПроверяемыхНаСоответствие();
СтруктураОписанияТЧНачисления.СтруктураПоиска = Новый Структура("Начисление");
РеквизитНесоответствияСтроки = Новый Структура("ИмяРеквизита,ИмяРеквизитаНесоответствия", "Начисление", "НачислениеНеСоответствуетПозиции");
СтруктураОписанияТЧНачисления.РеквизитНесоответствияСтроки = РеквизитНесоответствияСтроки;
СтруктураОписанияТЧНачисления.РасшифровкаНачислений = Истина;
СтруктураОписанияТЧНачисления.ОписаниеСоответствияПоказателей = ОписаниеСоответствияПоказателей;
СтруктураОписанияТЧНачисления.МаксимальноеКоличествоПоказателей = КоличествоПоказателей;
РеквизитыПроверяемыеНаСоответствие.ТабличныеЧасти.Вставить("Начисления", СтруктураОписанияТЧНачисления);
КонецЕсли;
КонецЕсли;
Возврат РеквизитыПроверяемыеНаСоответствие;
КонецФункции
&НаКлиенте
Функция РеквизитыПроверяемыеНаСоответствиеНаКлиенте() Экспорт
Возврат РеквизитыПроверяемыеНаСоответствие(ЭтаФорма, ОписаниеТаблицыНачислений());
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиНачислений()
ОписаниеКоманднойПанелиНачислений = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиНачислений();
Возврат ОписаниеКоманднойПанелиНачислений;
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиПоказателей()
ОписаниеКоманднойПанелиПоказателей = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиПоказателей();
Возврат ОписаниеКоманднойПанелиПоказателей;
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиЛьгот()
ОписаниеКоманднойПанелиЛьгот = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиНачислений();
ОписаниеКоманднойПанелиЛьгот.СтраницыКоманднойПанелиНачислений = "ЛьготыСтраницыКоманднойПанели";
ОписаниеКоманднойПанелиЛьгот.СтраницаДобавитьОтменить = "ЛьготыСтраницаДобавитьОтменить";
ОписаниеКоманднойПанелиЛьгот.СтраницаДобавитьПродолжить = "ЛьготыСтраницаДобавитьПродолжить";
ОписаниеКоманднойПанелиЛьгот.СтраницаДобавитьУдалить = "ЛьготыСтраницаДобавитьУдалить";
Возврат ОписаниеКоманднойПанелиЛьгот;
КонецФункции
&НаСервере
Процедура ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере()
Если ИспользоватьШтатноеРасписание Тогда
ЗаполнятьПоложенными = ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию);
Иначе
ЗаполнятьПоложенными = ЗначениеЗаполнено(Объект.Подразделение)
ИЛИ ЗначениеЗаполнено(Объект.Должность)
ИЛИ ЗначениеЗаполнено(Объект.Территория);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТрудаФормы = ОбщегоНазначения.ОбщийМодуль("ОхранаТрудаФормы");
МодульОхранаТрудаФормы.ПроверитьЗаполнениеРабочегоМеста(ЭтотОбъект, ЗаполнятьПоложенными);
КонецЕсли;
Если ЗаполнятьПоложенными Тогда
ЗаполнитьПоложеннымиПравамиСотрудникаНаСервере();
Иначе
ЗаполнитьДействующимиПравамиСотрудникаНаСервере();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоложеннымиПравамиСотрудникаНаСервере()
ДанныеДокумента = ОстаткиОтпусков.ОписаниеПараметровДанныхКадровогоДокумента();
ДанныеДокумента.Регистратор = СсылкаНаОбъект;
ДанныеДокумента.Сотрудник = Объект.Сотрудник;
ДанныеДокумента.ДатаСобытия = Объект.ДатаНачала;
ДанныеДокумента.Вставить("ПериодПредыдущихЗначений", ПериодПредыдущихЗначений);
ДанныеНовойПозиции = ОстаткиОтпусков.ОписаниеПараметровДанныхПозиции();
ДанныеНовойПозиции.ДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
ДанныеНовойПозиции.Подразделение = Объект.Подразделение;
ДанныеНовойПозиции.Должность = Объект.Должность;
ДанныеНовойПозиции.Территория = Объект.Территория;
ДанныеПрошлойПозиции = ОстаткиОтпусков.ОписаниеПараметровДанныхПозиции();
ДанныеПрошлойПозиции.ДолжностьПоШтатномуРасписанию = ТекущаяДолжностьПоШтатномуРасписанию;
ДанныеПрошлойПозиции.Подразделение = ТекущееПодразделение;
ДанныеПрошлойПозиции.Должность = ТекущаяДолжность;
ДанныеПрошлойПозиции.Территория = ТекущаяТерритория;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТрудаФормы = ОбщегоНазначения.ОбщийМодуль("ОхранаТрудаФормы");
МодульОхранаТрудаФормы.ДополнитьДанныеПозицииРабочимМестом(ЭтотОбъект, ДанныеНовойПозиции, ДанныеПрошлойПозиции);
КонецЕсли;
ОстаткиОтпусков.ЗаполнитьПоложеннымиПравамиСотрудника(Объект.ЕжегодныеОтпуска, ДанныеДокумента, ДанныеНовойПозиции, ДанныеПрошлойПозиции);
УстановитьФлагИзменитьЕжегодныеОтпуска();
УстановитьДоступностьЭлементов(ЭтаФорма);
СформироватьНадписьПраваНаОтпуск();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДействующимиПравамиСотрудникаНаСервере()
Объект.ЕжегодныеОтпуска.Очистить();
ДанныеДокумента = ОстаткиОтпусков.ОписаниеПараметровДанныхКадровогоДокумента();
ДанныеДокумента.Регистратор = СсылкаНаОбъект;
ДанныеДокумента.Сотрудник = Объект.Сотрудник;
ДанныеДокумента.ДатаСобытия = Объект.ДатаНачала;
ОстаткиОтпусков.ЗаполнитьДействующимиПравамиСотрудника(Объект.ЕжегодныеОтпуска, ДанныеДокумента);
Объект.ИзменитьЕжегодныеОтпуска = Ложь;
СформироватьНадписьПраваНаОтпуск();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИндивидуальныйГрафик()
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьИндивидуальныйГрафикПриСменеГрафикаРаботы") Тогда
Возврат
КонецЕсли;
Документ = РеквизитФормыВЗначение("Объект");
ДанныеГрафика = Документ.ИндивидуальныйГрафикНаМесяцПеревода();
ИндивидуальныйГрафикСсылка = ДанныеГрафика.Ссылка;
ИндивидуальныйГрафикДата = ДанныеГрафика.Дата;
ИндивидуальныйГрафикНомер = ДанныеГрафика.Номер;
КонецПроцедуры
&НаСервере
Процедура ОбновитьИндивидуальныйГрафик()
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьИндивидуальныйГрафикПриСменеГрафикаРаботы") Тогда
Возврат
КонецЕсли;
Если Объект.ИзменитьГрафикРаботы Тогда
ЗаполнитьИндивидуальныйГрафик();
КонецЕсли;
ОбновитьОтображениеИндивидуальногоГрафика();
КонецПроцедуры
&НаСервере
Процедура ОбновитьОтображениеИндивидуальногоГрафика()
Элементы.СтраницыТекущийГрафикИндивидуальныйГрафик.ТекущаяСтраница = Элементы.СтраницаТолькоТекущийГрафик;
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьИндивидуальныйГрафикПриСменеГрафикаРаботы") Тогда
Возврат;
КонецЕсли;
Если Объект.ИзменитьГрафикРаботы
И Объект.ДатаНачала > НачалоМесяца(Объект.ДатаНачала) Тогда
Элементы.СтраницыТекущийГрафикИндивидуальныйГрафик.ТекущаяСтраница = Элементы.СтраницаТекущийИИндивидуальныйГрафики;
УстановитьТекстГиперссылкиВводИндивидуальногоГрафика(ЭтаФорма);
ВремяВЧасах = Ложь;
ТребуетсяРасчетНормыВремени = Истина;
КадровыеДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Сотрудник), "ОсновноеНачисление", ВремяРегистрации, , Ложь);
Если КадровыеДанныеСотрудников.Количество() > 0 Тогда
ОсновноеНачисление = КадровыеДанныеСотрудников[0].ОсновноеНачисление;
Если ЗначениеЗаполнено(ОсновноеНачисление) Тогда
ДанныеОсновногоНачисления = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ОсновноеНачисление, "ТребуетсяРасчетНормыВремени,УчетВремениВЧасах");
ВремяВЧасах = ДанныеОсновногоНачисления.УчетВремениВЧасах;
ТребуетсяРасчетНормыВремени = ДанныеОсновногоНачисления.ТребуетсяРасчетНормыВремени;
КонецЕсли;
КонецЕсли;
Элементы.СтраницыИндивидуальныйГрафик.ТекущаяСтраница = Элементы.СтраницаИндивидуальныйГрафик;
Если ТребуетсяРасчетНормыВремени И НЕ УчетРабочегоВремениРасширенный.НормыПриСменеГрафиковСовпадают(ТекущийГрафикРаботы, Объект.ГрафикРаботы, Объект.ДатаНачала, ВремяВЧасах) Тогда
Элементы.СтраницыИндивидуальныйГрафик.ТекущаяСтраница = Элементы.СтраницаИндивидуальныйГрафикПредупреждение;
УстановитьТекстИнфоНадписиИндивидуальногоГрафика(ЭтаФорма);
УстановитьИнфоКартинкуИндивидуальногоГрафика(ЭтаФорма);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекстГиперссылкиВводИндивидуальногоГрафика(Форма)
Если ЗначениеЗаполнено(Форма.ИндивидуальныйГрафикСсылка) Тогда
СтрокаГиперСсылки = НСтр("ru = 'На текущий месяц введен индивидуальный график'") + " №%1 " + НСтр("ru='от'") + " %2.";
Иначе
СтрокаГиперСсылки = НСтр("ru = 'Создать новый индивидуальный график сотрудника'") + "...";
КонецЕсли;
Форма.ИндивидуальныйГрафикГиперссылка = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(СтрокаГиперСсылки, Форма.ИндивидуальныйГрафикНомер , Формат(Форма.ИндивидуальныйГрафикДата, "ДЛФ=D"));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекстИнфоНадписиИндивидуальногоГрафика(Форма)
Если ЗначениеЗаполнено(Форма.ИндивидуальныйГрафикСсылка) Тогда
Форма.ИндивидуальныйГрафикИнфоНадпись = НСтр("ru = 'Т.к. нормы рабочего времени старого и нового графика различаются,
|норма рабочего времени для расчета зарплаты текущего месяца
|будет рассчитана по индивидуальному графику.'");
Иначе
Форма.ИндивидуальныйГрафикИнфоНадпись = НСтр("ru = 'Нормы рабочего времени старого и нового графика различаются.
|Необходимо ввести индивидуальный график работы на текущий месяц.'");
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьИнфоКартинкуИндивидуальногоГрафика(Форма)
Если ЗначениеЗаполнено(Форма.ИндивидуальныйГрафикСсылка) Тогда
Форма.ИндивидуальныйГрафикИнфоКартинка = БиблиотекаКартинок.Информация;
Иначе
Форма.ИндивидуальныйГрафикИнфоКартинка = БиблиотекаКартинок.Предупреждение;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГрафикПриИзмененииНаСервере(ПересчитатьФОТ)
Если ПересчитатьФОТ Тогда
Объект.ИзменитьНачисления = Истина;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
КонецЕсли;
ОбновитьИндивидуальныйГрафик();
КонецПроцедуры
&НаСервере
Процедура ПозицияШтатногоРасписанияПриИзмененииНаСервере()
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
УстановитьПривилегированныйРежим(Истина);
РеквизитыПозиции = ДанныеДолжности(Истина);
УстановитьПривилегированныйРежим(Ложь);
Если РеквизитыПозиции <> Неопределено Тогда
Объект.Подразделение = РеквизитыПозиции.Подразделение;
Объект.Должность = РеквизитыПозиции.Должность;
Объект.ТрудоваяФункция = РеквизитыПозиции.ТрудоваяФункция;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект, Истина);
КонецЕсли;
ЗаполнитьДанныеПоПозицияШтатногоРасписания(Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойствоНачисленияУтверждены()
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
УстановитьЗначениеНачисленияУтверждены(Истина);
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтаФорма, "НачисленияУтверждены");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗначениеНачисленияУтверждены(ЗначениеНачисленияУтверждены)
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
Если ЗначениеНачисленияУтверждены Тогда
Если Не Объект.БронированиеПозиции
Или Не ПолучитьФункциональнуюОпциюФормы("ИспользоватьБронированиеПозиций") Тогда
Объект.НачисленияУтверждены = Истина;
КонецЕсли;
Иначе
Объект.НачисленияУтверждены = Ложь;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьРасчетныхПолей()
ИменаЭлементов = Новый Массив;
ИменаЭлементов.Добавить("ИзменитьНачисленияРасчетчикГруппа");
ИменаЭлементов.Добавить("СтраницыКоманднойПанелиНачислений");
ИменаЭлементов.Добавить("ГруппаНачисленияИтогРазмер");
ИменаЭлементов.Добавить("Рассчитать");
ИменаЭлементов.Добавить("КомандныеПанелиНачисленийРедактировать");
ИменаЭлементов.Добавить("Начисления");
ИменаЭлементов.Добавить("ГруппаСведенияПравая");
ИменаЭлементов.Добавить("ТарифнаяСтавкаГруппа");
ИменаЭлементов.Добавить("АвансИндексацияГруппа");
ИменаЭлементов.Добавить("КомандныеПанелиЛьгот");
ИменаЭлементов.Добавить("ИзменитьБухучетЛьгот");
ИменаЭлементов.Добавить("ИзменитьБухучетНачислений");
ИменаЭлементов.Добавить("ИзменитьБухучетЗарплаты");
ИменаЭлементов.Добавить("БухучетНачисленийРедактируемыхВОтдельныхПолях");
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейМногофункциональныхДокументов(ЭтаФорма, ИменаЭлементов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачисленияИтогРазмер",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РазмерЛьгот",
"ТолькоПросмотр",
Истина);
Если ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоТарифныхСтавок") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиГруппа", "Видимость", Ложь);
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьВидимостьВкладаВФОТРНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма, Элементы.РедактироватьФОТ.Пометка);
ЗарплатаКадрыРасширенный.УстановитьОтображениеНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма);
ЗарплатаКадрыРасширенный.ВосстановитьОтображениеПроцентаСевернойНадбавки(ЭтаФорма);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "КоэффициентИндексации", "ТолькоПросмотр", Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьШрифтЗаголовкаНачисленияУтверждены()
Если Элементы.Найти("ИзменилисьНачисления") <> Неопределено Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачисленияУтверждены",
"ШрифтЗаголовка",
Элементы.ИзменилисьНачисления.ШрифтЗаголовка);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьРегистрацииНачислений()
ПраваНаДокумент = ЗарплатаКадрыРасширенный.ПраваНаМногофункциональныйДокумент(Объект);
РегистрацияНачисленийДоступна = ПраваНаДокумент.ПолныеПраваПоРолям;
ОграниченияНаУровнеЗаписей = Новый ФиксированнаяСтруктура(ПраваНаДокумент.ОграниченияНаУровнеЗаписей);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей()
БылиОграничения = ОграниченияНаУровнеЗаписей;
УстановитьДоступностьРегистрацииНачислений();
Если БылиОграничения.ЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений
Или БылиОграничения.ИзменениеБезОграничений <> ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений
Или БылиОграничения.ИзменениеКадровыхДанных <> ОграниченияНаУровнеЗаписей.ИзменениеКадровыхДанных Тогда
УстановитьЗначениеНачисленияУтверждены(ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений);
УстановитьВидимостьРасчетныхПолей();
Если БылиОграничения.ЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтаФорма);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьНовогоПодразделения(Форма)
ДоступностьПодразделенияИДолжности =
ЗначениеЗаполнено(Форма.Объект.ОбособленноеПодразделение) И Форма.Объект.ИзменитьПодразделениеИДолжность;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Подразделение",
"Доступность",
ДоступностьПодразделенияИДолжности);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ПозицияШтатногоРасписания",
"Доступность",
ДоступностьПодразделенияИДолжности);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Должность",
"Доступность",
ДоступностьПодразделенияИДолжности);
КонецПроцедуры
&НаСервере
Процедура ИзменилисьНачисленияПриИзмененииНаСервере()
ЗарплатаКадрыРасширенный.УстановитьИзменениеСоставаПлановыхНачислений(ЭтаФорма, Объект.ИзменитьНачисления);
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
Если Не Объект.ИзменитьНачисления Тогда
БухучетПрежнихНачислений = БухучетПрежнихНачислений();
ЗаполнитьСоставДействующихНачисленийСотрудника();
ЗаполнитьБухучетДействующихНачислений(Истина, Ложь, БухучетПрежнихНачислений);
Иначе
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСНачислениями(
ЭтаФорма, ОписаниеТаблицыНачислений(), 1, Объект.ДатаНачала,
?(Объект.ИзменитьНачисления, Объект.ДатаОкончания, Неопределено));
КонецЕсли;
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаСервере
Функция ТаблицаСотрудников() Экспорт
ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
СтрокаСотрудник = ТаблицаСотрудников.Добавить();
СтрокаСотрудник.Сотрудник = Объект.Сотрудник;
СтрокаСотрудник.Период = ВремяРегистрации;
КонецЕсли;
Возврат ТаблицаСотрудников;
КонецФункции
&НаСервере
Процедура УстановитьПредставленияКомандВводаСтажей()
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.УстановитьПредставленияКомандВводаСтажей(ЭтаФорма, ТаблицаСотрудников(), ОписаниеТаблицыВидовРасчета, 1);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииСтажа()
УстановитьПредставленияКомандВводаСтажей();
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииПроцентаСевернойНадбавки()
ЗарплатаКадрыРасширенный.УстановитьЗначениеСевернойНадбавкиВФорме(ЭтаФорма, Объект.Сотрудник, Объект.ДатаНачала, Объект.ФизическоеЛицо);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьТарифнуюСетку()
РазрядыКатегорииДолжностей.ПрочитатьДанныеТарифныхСетокДолжностиВФорму(ЭтаФорма, Объект.Должность, Объект.ДолжностьПоШтатномуРасписанию, Объект.ДатаНачала);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеТарифнойСеткиНаСервере()
ДополнительныеПараметры = ЗарплатаКадрыРасширенныйКлиентСервер.ПараметрыЗаполненияЗначенийПоказателейТарифныхСеток();
ДополнительныеПараметры.ДатаСведений = Объект.ДатаНачала;
ДополнительныеПараметры.ТарифнаяСетка = ТарифнаяСетка;
ДополнительныеПараметры.ТарифнаяСеткаНадбавки = ТарифнаяСеткаНадбавки;
ДополнительныеПараметры.РазрядКатегория = РазрядКатегория;
ДополнительныеПараметры.РазрядКатегорияНадбавки = Объект.РазрядКатегория;
ДополнительныеПараметры.ПКУ = Объект.ПКУ;
УстановитьПривилегированныйРежим(Истина);
ЗарплатаКадрыРасширенныйКлиентСервер.ЗаполнитьЗначенияПоказателейТарифныхСеток(ЭтаФорма, Объект.Начисления, ОписаниеТаблицыНачислений(), 1, ДополнительныеПараметры);
УстановитьПривилегированныйРежим(Ложь);
ПерезаполнитьДанныеТарифнойСетки = Ложь;
КонецПроцедуры
&НаСервере
Процедура ДолжностьПриИзмененииНаСервере()
РеквизитыДолжности = ДанныеДолжности(Истина);
Если РеквизитыДолжности <> Неопределено Тогда
Объект.ТрудоваяФункция = РеквизитыДолжности.ТрудоваяФункция;
КонецЕсли;
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты") Тогда
УстановитьПривилегированныйРежим(Истина);
ПрочитатьТарифнуюСетку();
ЗаполнитьДанныеТарифнойСеткиНаСервере();
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Должность) И ПолучитьФункциональнуюОпциюФормы("ИспользоватьНадбавкуЗаВредность") Тогда
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
Если Не Объект.ИзменитьНачисления И ЗарплатаКадрыРасширенныйКлиентСервер.ИзменяетсяПрименениеНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма) Тогда
Объект.ИзменитьНачисления = Истина;
ИзменилисьНачисленияПриИзмененииНаСервере();
КонецЕсли;
КонецЕсли;
ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере();
ЗаполнитьРазрядПоУмолчанию();
ЗаполнитьГрейдПоУмолчанию();
ЗаполнитьЛьготыПоПозиции();
РассчитатьРазмерЛьготНаСервере();
ЗаполнитьБухучетДействующихНачислений(Ложь, Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РабочееМестоПриИзмененииНаСервере()
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьНадбавкуЗаВредность") Тогда
ТекущееПрименяетсяНачислениеНадбавкаЗаВредность = ПрименяетсяНачислениеНадбавкаЗаВредность;
ТекущееЗначениеПоказателяНадбавкаЗаВредность = ЗначениеПоказателяНадбавкаЗаВредность;
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
Если (ПрименяетсяНачислениеНадбавкаЗаВредность <> ТекущееПрименяетсяНачислениеНадбавкаЗаВредность)
Или ((ЗначениеПоказателяНадбавкаЗаВредность <> ТекущееЗначениеПоказателяНадбавкаЗаВредность) И ПрименяетсяНачислениеНадбавкаЗаВредность) Тогда
Объект.ИзменитьНачисления = Истина;
ИзменилисьНачисленияПриИзмененииНаСервере();
РассчитатьФОТНаСервере();
КонецЕсли;
КонецЕсли;
ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере();
УстановитьКомментарии(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ИзменитьРабочееМестоПриИзмененииНаСервере()
Если Не Объект.ИзменитьРабочееМесто Тогда
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Объект.РабочееМесто = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(ЭтотОбъект, "ТекущееРабочееМесто");
Иначе
Объект.РабочееМесто = Неопределено;
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьСвойстваЭлементаРабочееМестоВФормеДокумента(ЭтотОбъект, Истина);
КонецЕсли;
РабочееМестоПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииПризнакаДистанционнойРаботы()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФорма = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФорма.КадровыйПереводИзменитьДистанционнуюРаботуПриИзменении(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПКУПриИзмененииНаСервере()
Если Объект.ПКУ <> ТекущийПКУ Тогда
Объект.ИзменитьНачисления = Истина;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура РазрядКатегорияПриИзмененииНаСервере()
Если Объект.РазрядКатегория <> ТекущийРазрядКатегория Тогда
Объект.ИзменитьНачисления = Истина;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьВремяРегистрации()
ВремяРегистрации = ЗарплатаКадрыРасширенный.ВремяРегистрацииСотрудникаДокумента(СсылкаНаОбъект, Объект.Сотрудник, Объект.ДатаНачала);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтображениеНадписей()
МассивСотрудников = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Сотрудник);
ЗарплатаКадрыРасширенный.УстановитьТекстНадписиОДокументахВведенныхНаДату(ЭтотОбъект, ВремяРегистрации,
МассивСотрудников, СсылкаНаОбъект, ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, Объект.ИсправленныйДокумент);
КадровыеРешенияФормы.УстановитьОтображениеНадписейВКадровомДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Функция ДанныеДолжности(Перезаполнить = Ложь)
Данные = Неопределено;
Если Перезаполнить Или ДанныеДолжности = Неопределено Тогда
КадровыйУчетФормыРасширенный.УстановитьДанныеДолжностиВФорме(
ЭтаФорма, ВремяРегистрации, Объект.Должность, Объект.ДолжностьПоШтатномуРасписанию, ТекущаяДолжностьПоШтатномуРасписанию);
КонецЕсли;
Если ДанныеДолжности <> Неопределено Тогда
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьШтатноеРасписание") Тогда
Данные = ДанныеДолжности.Получить(Объект.ДолжностьПоШтатномуРасписанию);
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьИсториюИзмененияШтатногоРасписания")
И ЗначениеЗаполнено(ПериодПредыдущихЗначений) Тогда
Если ТипЗнч(ДанныеДолжности) = Тип("ФиксированноеСоответствие") Тогда
ДанныеДолжностиПромежуточные = Новый Соответствие(ДанныеДолжности);
Иначе
ДанныеДолжностиПромежуточные = Новый Соответствие();
КонецЕсли;
ДатаУтверждения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ТекущаяДолжностьПоШтатномуРасписанию, "ДатаУтверждения");
Если ПериодПредыдущихЗначений < ДатаУтверждения Тогда
ДатаСведений = ДатаУтверждения;
Иначе
ДатаСведений = ПериодПредыдущихЗначений;
КонецЕсли;
ДанныеДолжностиПромежуточные.Вставить("ДанныеПредыдущихЗначений", УправлениеШтатнымРасписанием.ДанныеПозицииШтатногоРасписания(
ТекущаяДолжностьПоШтатномуРасписанию, ДатаСведений));
ДанныеДолжности = Новый ФиксированноеСоответствие(ДанныеДолжностиПромежуточные);
КонецЕсли;
Иначе
Данные = ДанныеДолжности.Получить(Объект.Должность);
КонецЕсли;
КонецЕсли;
Возврат Данные;
КонецФункции
&НаСервере
Процедура УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях()
Если ИспользоватьШтатноеРасписание Тогда
ДолжностьСотрудника = Объект.ДолжностьПоШтатномуРасписанию;
Иначе
ДолжностьСотрудника = Объект.Должность;
КонецЕсли;
ЗарплатаКадрыРасширенный.УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях(
ЭтаФорма, Объект.Сотрудник, ВремяРегистрации, Объект.Подразделение,
?(ЗначениеЗаполнено(Объект.ОбособленноеПодразделение), Объект.ОбособленноеПодразделение, Объект.Организация),
Объект.Территория, ДолжностьСотрудника);
ЗарплатаКадрыРасширенный.УстановитьОтображениеНачисленийРедактируемыхВОтдельныхПолях(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ИзменитьАвансПриИзмененииНаСервере()
Если НЕ Объект.ИзменитьАванс Тогда
Объект.СпособРасчетаАванса = ТекущийСпособРасчетаАванса;
Объект.Аванс = ТекущийАванс;
УстановитьПоказРазмераАванса(ЭтаФорма);
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
УстановитьКомментарийКАвансу(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьРазмерАвансаПоУмолчанию()
Если ЗначениеЗаполнено(Объект.ОбособленноеПодразделение) Тогда
РазмерАвансаПоУмолчанию = РасчетЗарплатыФормы.РазмерАвансаВПроцентахПоУмолчанию(Объект.ОбособленноеПодразделение);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеФормыПоОрганизации()
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Возврат;
КонецЕсли;
ЗапрашиваемыеЗначения = Новый Структура;
ЗапрашиваемыеЗначения.Вставить("Организация", "Объект.Организация");
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтотОбъект, ЗапрашиваемыеЗначения, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Организация"));
ПодписиДокументов.ЗаполнитьПодписиПоОрганизации(ЭтотОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьПолейУчетаСтажаПФР(Форма)
Форма.Элементы.ВидСтажаПФР.Доступность = Форма.Объект.НаПериодПереводаСохранятьЛьготныйСтажПФР;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииКоличестваСтавок(Результат, ДополнительныеПараметры) Экспорт
КоличествоСтавокКомментарий = КадровыйУчетРасширенныйКлиентСервер.КомментарийККоличествуСтавок(ТекущееКоличествоСтавок, Объект.КоличествоСтавок, Объект.КоличествоСтавок);
Если ДополнительныеПараметры.КоличествоСтавок <> Объект.КоличествоСтавок
И ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
ТекстВопроса = НСтр("ru = 'Изменилось количество ставок. Пересчитать плановый ФОТ?'");
Оповещение = Новый ОписаниеОповещения("КоличествоСтавокПриИзмененииЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
Иначе
КоличествоСтавокПриИзмененииЗавершение(КодВозвратаДиалога.Да);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЕжегодныеОтпускаСотрудника()
СтрокиТЧЕжегодныеОтпуска = Объект.ЕжегодныеОтпуска.Выгрузить();
Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(СтрокиТЧЕжегодныеОтпуска);
КонецФункции
&НаСервере
Процедура ЗагрузитьЕжегодныеОтпуска(ЕжегодныеОтпуска)
Объект.ЕжегодныеОтпуска.Загрузить(ЕжегодныеОтпуска.Выгрузить());
СформироватьНадписьПраваНаОтпуск();
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЛьготыПоПозиции()
Если ИспользоватьШтатноеРасписание И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
ЗаполнитьСоставДействующихЛьготСотрудника();
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ПрочитатьЛьготыПозиции(ЭтотОбъект, Объект.ДолжностьПоШтатномуРасписанию, ОписаниеТаблицыЛьгот(), Истина, , Объект.ДатаНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьРазмерЛьготНаКлиенте()
РассчитатьРазмерЛьготНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьРазмерЛьготНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.РассчитатьРазмерЛьготВФормеСОднимСотрудником(ЭтотОбъект, ОписаниеТаблицыЛьгот());
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтогиПоРазмеруЛьгот(Форма)
Форма.РазмерЛьгот = ЗарплатаКадрыРасширенныйКлиентСервер.ИтогиПоФОТ(Форма, ОписаниеТаблицыЛьгот());
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьРазмераЛьгот(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ЛьготыРазмер", "Видимость", Форма.Элементы.РедактироватьРазмерЛьгот.Пометка);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСоставДействующихЛьготСотрудника()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ЗаполнитьСоставДействующихЛьготСотрудника(ЭтотОбъект, ОписаниеТаблицыЛьгот());
РассчитатьРазмерЛьготНаСервере();
КонецЕсли;
КонецПроцедуры
#Область Подключаемый_КадровыйРезерв
&НаСервере
Процедура ЗаполнитьКадровыйРезерв()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульФормы = ОбщегоНазначения.ОбщийМодуль("КадровыйРезервФормы");
МодульФормы.ЗаполнитьКадровыйРезервВДокументеКадровыйПеревод(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьВторичныеДанныеКадровогоРезерва()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиентСервер = ОбщегоНазначения.ОбщийМодуль("КадровыйРезервКлиентСервер");
МодульКлиентСервер.ЗаполнитьВторичныеДанныеКадровогоРезерва(Объект.КадровыйРезерв);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ЗаписьДокумента
&НаКлиенте
Процедура ЗаписатьИЗакрытьНаКлиенте(Результат, ДополнительныеПараметры) Экспорт
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи, ПараметрыЗаписи, ОповещениеЗавершения = Неопределено)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", ЗакрытьПослеЗаписи);
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Если РедактированиеСтрокиСписочногоДокумента Тогда
ЗавершитьРедактированиеСтрокиДокумента();
Иначе
РасчетЗарплатыРасширенныйКлиент.ВыполнитьРасчетСотрудникаПередЗаписьюДокумента(
ЭтаФорма, "ЗаписатьНаКлиентеЗавершение", ДополнительныеПараметры, РегистрацияНачисленийДоступна);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиентеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
ПараметрыЗаписи = ДополнительныеПараметры.ПараметрыЗаписи;
ОповещениеЗавершения = ДополнительныеПараметры.ОповещениеЗавершения;
ЗакрытьПослеЗаписи = ДополнительныеПараметры.ЗакрытьПослеЗаписи;
Если РасчетНеобходимоВыполнить Тогда
РассчитатьФОТНаКлиенте();
КонецЕсли;
Если Объект.ИзменитьПодразделениеИДолжность
Или ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений И Объект.ИзменитьНачисления Тогда
КадровыйУчетРасширенныйКлиент.ПередЗаписьюКадровогоДокументаВФорме(ЭтаФорма, Объект, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
Иначе
СтруктураПроверки = Новый Структура("ВыбранноеДействие", Истина);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", ЭтаФорма);
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", ЗакрытьПослеЗаписи);
КадровыйУчетРасширенныйКлиент.ПередЗаписьюКадровогоДокументаВФормеЗавершение(СтруктураПроверки, ДополнительныеПараметры);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область РедактированиеДанныхКонтрактаДоговора
&НаСервере
Функция ОписаниеФормыРедактирующейДанныеКонтрактаДоговора()
ОписаниеФормы = КонтрактыДоговорыСотрудниковФормы.ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
ОписаниеФормы.Вставить("ИмяЭлементаПредставитель", "Руководитель");
ОписаниеФормы.Вставить("ИмяЭлементаДолжностьПредставителя", "ДолжностьРуководителя");
ОписаниеФормы.Вставить("ОснованиеСрочногоДоговораПредыдущее", "ОснованиеСрочногоДоговораПредыдущее");
Возврат ОписаниеФормы;
КонецФункции
&НаСервере
Процедура УстановитьДоступностьПолейДоговораКонтракта()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СведенияДоговораКонтракта",
"Доступность",
Объект.ИзменитьСведенияОДоговореКонтракте);
УстановитьДоступностьПолейСрочногоТрудовогоДоговора();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьПолейДоговораКонтракта(Форма, СменаВидаДоговора)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ТрудовойДоговорНомер", "Видимость", СменаВидаДоговора);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ТрудовойДоговорДата", "Видимость", СменаВидаДоговора);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ПоступлениеНаСлужбуВпервые", "Видимость", СменаВидаДоговора);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ИзменитьСведенияОДоговореКонтракте", "Видимость", НЕ СменаВидаДоговора);
КонецПроцедуры
&НаСервере
Процедура СменаВидаДоговораПриИзмененииНаСервере()
Если Объект.СменаВидаДоговора Тогда
Если ИспользоватьШтатноеРасписание Тогда
Объект.ДолжностьПоШтатномуРасписанию = Справочники.ШтатноеРасписание.ПустаяСсылка();
Иначе
Объект.Должность = Справочники.Должности.ПустаяСсылка();
КонецЕсли;
Если Не Объект.ИзменитьПодразделениеИДолжность Тогда
Объект.ИзменитьПодразделениеИДолжность = Истина;
УстановитьКомментарии(ЭтотОбъект);
ПрочитатьТарифнуюСетку();
КонецЕсли;
Если Не Объект.ИзменитьГрафикРаботы Тогда
Объект.ИзменитьГрафикРаботы = Истина;
ЗаполнитьГрафик();
КонецЕсли;
Если НЕ Объект.ИзменитьСведенияОДоговореКонтракте Тогда
Объект.ИзменитьСведенияОДоговореКонтракте = Истина;
УстановитьДоступностьПолейДоговораКонтракта();
КонецЕсли;
Иначе
УстановитьДанныеРабочегоМеста();
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
МодульГосударственнаяСлужба = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
МодульГосударственнаяСлужба.УстановитьВидДоговораВКадровомПереводе(ЭтотОбъект, ТекущийВидДоговора, Объект.СменаВидаДоговора);
КонецЕсли;
НастроитьФормуПоВидуДоговора();
УстановитьВидимостьПолейДоговораКонтракта(ЭтотОбъект, Объект.СменаВидаДоговора);
УстановитьВидимостьКлассногоЧинаРанга();
КонецПроцедуры
&НаСервере
Процедура СрочныйДоговорПриИзмененииНаСервере()
Если НЕ Объект.СрочныйДоговор Тогда
Объект.СезонныйДоговор = Ложь;
КонецЕсли;
УстановитьДоступностьПолейСрочногоТрудовогоДоговора();
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьПолейСрочногоТрудовогоДоговора()
КонтрактыДоговорыСотрудниковФормы.УстановитьДоступностьПолейСрочногоТрудовогоДоговора(ЭтотОбъект, ОписаниеФормыРедактирующейДанныеКонтрактаДоговора(), Объект.ИзменитьСведенияОДоговореКонтракте, Объект.СрочныйДоговор);
КонецПроцедуры
&НаСервере
Процедура ИзменитьСведенияОДоговореКонтрактеПриИзмененииНаСервере()
УстановитьДоступностьПолейДоговораКонтракта();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияОКонтрактеДоговореСотрудника()
Если НЕ ЗначениеЗаполнено(Объект.ДатаНачала)
Или НЕ ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Возврат;
КонецЕсли;
СведенияОКонтрактеДоговоре = КонтрактыДоговорыСотрудников.СведенияОКонтрактеДоговореСотрудника(Объект.ДатаНачала, Объект.Сотрудник);
Объект.ДатаЗавершенияТрудовогоДоговора = СведенияОКонтрактеДоговоре.ДатаОкончания;
Объект.ОснованиеСрочногоДоговора = СведенияОКонтрактеДоговоре.ОснованиеСрочногоДоговора;
Объект.СрокЗаключенияДоговора = СведенияОКонтрактеДоговоре.СрокЗаключенияДоговора;
Объект.СрочныйДоговор = СведенияОКонтрактеДоговоре.СрочныйДоговор;
Объект.СезонныйДоговор = СведенияОКонтрактеДоговоре.СезонныйДоговор;
Если Не ЗначениеЗаполнено(Объект.ОснованиеПредставителяНанимателя) Тогда
Объект.ОснованиеПредставителяНанимателя = СведенияОКонтрактеДоговоре.ОснованиеПредставителяНанимателя;
КонецЕсли;
Объект.ОборудованиеРабочегоМеста = СведенияОКонтрактеДоговоре.ОборудованиеРабочегоМеста;
Объект.ИныеУсловияДоговора = СведенияОКонтрактеДоговоре.ИныеУсловияДоговора;
Объект.ВидАктаГосоргана = СведенияОКонтрактеДоговоре.ВидАктаГосоргана;
КонецПроцедуры
&НаКлиенте
Процедура ИныеУсловияДоговораЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ИныеУсловияДоговора = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ОборудованиеРабочегоМестаЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ОборудованиеРабочегоМеста = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура СрокЗаключенияДоговораЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.СрокЗаключенияДоговора = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ОснованиеПредставителяНанимателяЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ОснованиеПредставителяНанимателя = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ВидАктаГосорганаЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ВидАктаГосоргана = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура СформироватьНадписьПраваНаОтпуск()
НадписьПраваНаОтпуск = ОстаткиОтпусков.НадписьПраваНаОтпуск(Объект.ЕжегодныеОтпуска,ТолькоПросмотр, 1);
КонецПроцедуры
&НаСервере
Процедура УстановитьФлагИзменитьЕжегодныеОтпуска()
Объект.ИзменитьЕжегодныеОтпуска = Ложь;
Для каждого СтрокаОтпуска Из Объект.ЕжегодныеОтпуска Цикл
Если СтрокаОтпуска["КоличествоДнейВГод"] <> СтрокаОтпуска["ТекущееКоличествоДнейВГод"]
ИЛИ СтрокаОтпуска.Действие = ПредопределенноеЗначение("Перечисление.ДействияСЕжегоднымиОтпусками.Отменить") Тогда
Объект.ИзменитьЕжегодныеОтпуска = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция СтруктураСОписаниемДокумента()
Если РасчетНеобходимоВыполнить Тогда
РассчитатьФОТНаСервере();
КонецЕсли;
РеквизитВДанные(Объект);
ОписаниеДокумента = ЗарплатаКадрыРасширенныйВызовСервера.СтруктураПоМетаданным("Документ.КадровыйПеревод");
ЗарплатаКадрыРасширенный.ЗаполнитьОбъектПоОбразцу(ОписаниеДокумента, Объект);
Возврат ОписаниеДокумента;
КонецФункции
&НаСервере
Процедура ТерриторияПриИзмененииНаСервере(УстановитьИзменениеНачислений = Истина)
РайонныйКоэффициентВходитВСоставПлановыхНачислений = ЗарплатаКадрыРасширенныйКлиентСервер.РайонныйКоэффициентВходитВСоставПлановыхНачислений(ЭтаФорма);
НадбавкаЗаВредностьВходитВСоставПлановыхНачислений = ЗарплатаКадрыРасширенныйКлиентСервер.НадбавкаЗаВредностьВходитВСоставПлановыхНачислений(ЭтаФорма);
СевернаяНадбавкаВходитВСоставПлановыхНачислений = ЗарплатаКадрыРасширенныйКлиентСервер.СевернаяНадбавкаВходитВСоставПлановыхНачислений(ЭтаФорма);
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере();
Если УстановитьИзменениеНачислений И Не Объект.ИзменитьНачисления Тогда
Если РайонныйКоэффициентВходитВСоставПлановыхНачислений <> ЗарплатаКадрыРасширенныйКлиентСервер.РайонныйКоэффициентВходитВСоставПлановыхНачислений(ЭтаФорма)
Или НадбавкаЗаВредностьВходитВСоставПлановыхНачислений <> ЗарплатаКадрыРасширенныйКлиентСервер.НадбавкаЗаВредностьВходитВСоставПлановыхНачислений(ЭтаФорма)
Или СевернаяНадбавкаВходитВСоставПлановыхНачислений <> ЗарплатаКадрыРасширенныйКлиентСервер.СевернаяНадбавкаВходитВСоставПлановыхНачислений(ЭтаФорма) Тогда
Объект.ИзменитьНачисления = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура УстановитьИнфоНадписьЗамещения()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
МодульЦепочкиДокументовФормы = ОбщегоНазначения.ОбщийМодуль("ЦепочкиДокументовФормы");
МодульЦепочкиДокументовФормы.УстановитьИнфоНадписьЗамещения(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияОКлассномЧинеРангеСотрудника()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
СведенияОКлассномЧинеРанге = МодульКлассныеЧиныРанги.СведенияОКлассномЧинеРангеСотрудника(Объект.Сотрудник, ВремяРегистрации);
ЗаполнитьЗначенияСвойств(Объект, СведенияОКлассномЧинеРанге);
МодульКлассныеЧиныРангиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРангиКлиентСервер");
КлассныйЧинРангПредставление = МодульКлассныеЧиныРангиКлиентСервер.ПредставлениеКлассногоЧинаРанга(Объект.КлассныйЧинРанг, Объект.ДатаПрисвоения);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКлассногоЧинаРанга()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
МодульКлассныеЧиныРанги.УстановитьВидимостьКлассногоЧинаРангаВКадровомПереводе(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КлассныйЧинРангПриИзменении(СведенияОКлассномЧине)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
ЗаполнитьЗначенияСвойств(Объект, СведенияОКлассномЧине);
Модифицированность = Истина;
МодульКлассныеЧиныРангиКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("КлассныеЧиныРангиКлиентСервер");
КлассныйЧинРангПредставление = МодульКлассныеЧиныРангиКлиентСервер.ПредставлениеКлассногоЧинаРанга(Объект.КлассныйЧинРанг, Объект.ДатаПрисвоения);
КлассныйЧинРангПриИзмененииНаСервере();
ВыполнитьРасчетФОТ(, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура КлассныйЧинРангПриИзмененииНаСервере()
Объект.ИзменитьНачисления = Истина;
УстановитьДоступностьЭлементов(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРангНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
МодульКлассныеЧиныРанги.ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРанг(ЭтаФорма, Объект.Начисления, ОписаниеТаблицыНачислений(), 1, Объект.КлассныйЧинРанг, Объект.ДатаНачала);
КонецЕсли;
ПерезаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг = Ложь;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРангВСтрокеНачислений()
СтрокаНачислений = Объект.Начисления.НайтиПоИдентификатору(Элементы.Начисления.ТекущаяСтрока);
КоллекцияСтрокНачислений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаНачислений);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
МодульКлассныеЧиныРанги.ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРанг(ЭтаФорма, КоллекцияСтрокНачислений, ОписаниеТаблицыНачислений(), 1, Объект.КлассныйЧинРанг, Объект.ДатаНачала);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеПоПозицияШтатногоРасписания(ПерезаполнитьТекущиеНачисленияСотрудника)
УстановитьПривилегированныйРежим(Истина);
ЗаполнитьЕжегоднымиОтпускамиСотрудникаНаСервере();
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ПрочитатьТарифнуюСетку();
ЗаполнитьГрафик(Истина);
ЗаполнитьПКУПоУмолчанию();
ЗаполнитьРазрядПоУмолчанию();
ЗаполнитьГрейдПоУмолчанию();
ЗаполнитьЛьготыПоПозиции();
РассчитатьРазмерЛьготНаСервере();
ЗаполнитьНачисленияПоПозицииНаСервере(Истина, ПерезаполнитьТекущиеНачисленияСотрудника);
ЗаполнитьКадровыйРезерв();
ЗаполнитьБухучетПоПозицииШтатногоРасписания();
ЗаполнитьБухучетДействующихНачислений();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.КадровыйПереводУстановитьОтображениеЭлементовФормы(ЭтаФорма, ОграниченияНаУровнеЗаписей);
КонецЕсли;
Иначе
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПодключаемуюКомандуПослеПодтвержденияЗаписи", ЭтотОбъект, Команда);
ЗарплатаКадрыРасширенныйКлиент.ПоказатьДиалогЗаписиОбъектаДляВыполненияПодключаемойКоманды(ЭтотОбъект, Команда, ОписаниеОповещения);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ОбновитьПодключаемыеКоманды(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПодключаемуюКомандуПослеПодтвержденияЗаписи(РезультатВопроса, Команда) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.ОК Тогда
ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(Команда.Имя, ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
Если ОписаниеКоманды.РежимЗаписи = "Проводить" Тогда
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
Иначе
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ВыполнитьКомандуПослеВсехПроверок", ЭтотОбъект, Новый Структура("Команда", Команда));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи, Оповещение);
Если СсылкаНаОбъект.Пустая() Или Модифицированность Тогда
Возврат;
КонецЕсли;
ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Отмена Тогда
Возврат;
Иначе
ВыполнитьКомандуПослеВсехПроверок(Истина, Новый Структура("Команда", Команда));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандуПослеВсехПроверок(Результат, ДополнительныеПарметры) Экспорт
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, ДополнительныеПарметры.Команда, Объект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьКомандыОбъединенияСтрокОдинаковыхНачислений(Форма)
Объект = Форма.Объект;
Элементы = Форма.Элементы;
ДоступноОбъединение = Ложь;
Если Объект.ИзменитьНачисления Тогда
СоответствияСтрокНачислений = Новый Соответствие;
Для Каждого СтрокаНачислений Из Объект.Начисления Цикл
ПроверенныеСтроки = СоответствияСтрокНачислений.Получить(СтрокаНачислений.Начисление);
Если ПроверенныеСтроки = Неопределено Тогда
СоответствияСтрокНачислений.Вставить(СтрокаНачислений.Начисление, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаНачислений));
Иначе
Для Каждого ПровереннаяСтрока Из ПроверенныеСтроки Цикл
Если ПровереннаяСтрока.ДокументОснование = СтрокаНачислений.ДокументОснование Тогда
ДоступноОбъединение = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ДоступноОбъединение Тогда
Прервать;
КонецЕсли;
ПроверенныеСтроки.Добавить(СтрокаНачислений);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОбъединитьСтрокиОдинаковыхНачислений",
"Видимость",
ДоступноОбъединение);
КонецПроцедуры
&НаКлиенте
Процедура ОбъединитьСтрокиОдинаковыхНачисленийОбъектаФормы()
СтрокиКУдалению = Новый Соответствие;
ОтмененныеСтроки = Новый Соответствие;
Для Каждого СтрокаНачислений Из Объект.Начисления Цикл
Если СтрокаНачислений.Действие = ПредопределенноеЗначение("Перечисление.ДействияСНачислениямиИУдержаниями.Отменить") Тогда
Если ОтмененныеСтроки.Получить(СтрокаНачислений.Начисление) = Неопределено Тогда
ОтмененныеСтроки.Вставить(СтрокаНачислений.Начисление, СтрокаНачислений);
Иначе
СтрокиКУдалению.Вставить(СтрокаНачислений, Истина);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаНачислений Из Объект.Начисления Цикл
Если СтрокаНачислений.Действие <> ПредопределенноеЗначение("Перечисление.ДействияСНачислениямиИУдержаниями.Отменить") Тогда
ОтмененнаяСтрокаНачислений = ОтмененныеСтроки.Получить(СтрокаНачислений.Начисление);
Если ОтмененнаяСтрокаНачислений <> Неопределено Тогда
СтрокаНачислений.Действие = Неопределено;
ИменаЗаполняемыхРеквизитов = Новый Массив;
ИменаЗаполняемыхРеквизитов.Добавить("ДействующийВидРасчета");
Для НомерПоказателя = 1 По ЭтотОбъект.МаксимальноеКоличествоПоказателейНачисления Цикл
ИменаЗаполняемыхРеквизитов.Добавить("ТекущееЗначение" + НомерПоказателя);
КонецЦикла;
ЗаполнитьЗначенияСвойств(СтрокаНачислений, ОтмененнаяСтрокаНачислений, СтрСоединить(ИменаЗаполняемыхРеквизитов, ","));
Если СтрокиКУдалению.Получить(ОтмененнаяСтрокаНачислений) = Неопределено Тогда
СтрокиКУдалению.Вставить(ОтмененнаяСтрокаНачислений, Истина);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если СтрокиКУдалению.Количество() > 0 Тогда
Для Каждого ОписаниеСтрокиКУдалению Из СтрокиКУдалению Цикл
Объект.Начисления.Удалить(ОписаниеСтрокиКУдалению.Ключ);
КонецЦикла;
Модифицированность = Истина;
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
#Область КадровыеРешения
&НаКлиенте
Процедура Подключаемый_РешениеИнфоНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
КадровыеРешенияКлиент.ОбработкаНавигационнойСсылкиРешения(ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиРешенияЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат;
КонецЕсли;
ОбработкаНавигационнойСсылкиРешенияЗавершениеНаСервере(Результат, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура ОбработкаНавигационнойСсылкиРешенияЗавершениеНаСервере(Результат, ДополнительныеПараметры)
КадровыеРешенияФормы.ОбработкаНавигационнойСсылкиРешенияЗавершение(ЭтотОбъект, Результат, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЕНВД(ЭлементыФормы, ИспользуетсяЕНВД)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭлементыФормы,
"ГруппаОтношениеКЕНВД",
"Видимость",
ИспользуетсяЕНВД);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИспользуетсяЕНВД(Период)
Возврат ОтражениеЗарплатыВБухучете.ИспользуетсяЕНВД(Период);
КонецФункции
&НаСервере
Процедура ОбновитьИнформациюОПересекающихсяКадровыхПереводах()
ОтображатьИнформацию = Ложь;
ДанныеРегистраторовПересекающихсяПереводов = Неопределено;
Если Объект.ОтразитьВТрудовойКнижке И ЗначениеЗаполнено(Объект.Сотрудник) Тогда
СотрудникиДаты = ЭлектронныеТрудовыеКнижки.ПустаяТаблицаСотрудникиДатыДляПроверкиПоследовательностиМероприятий();
Если ЗначениеЗаполнено(Объект.ДатаНачала) Тогда
ЭлектронныеТрудовыеКнижки.ДобавитьСотрудникаВТаблицуСотрудникиДаты(
СотрудникиДаты, Объект.Сотрудник, Объект.ДатаНачала);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДатаОкончания) Тогда
ЭлектронныеТрудовыеКнижки.ДобавитьСотрудникаВТаблицуСотрудникиДаты(
СотрудникиДаты, Объект.Сотрудник, КонецДня(Объект.ДатаОкончания) + 1, Истина);
КонецЕсли;
Если СотрудникиДаты.Количество() > 0 Тогда
УстановитьПривилегированныйРежим(Истина);
ДокументыСотрудника = ЭлектронныеТрудовыеКнижки.ДокументыВозвратныхМероприятий(
СотрудникиДаты, ИсключаемыеРегистраторы(ЭтотОбъект));
УстановитьПривилегированныйРежим(Ложь);
Если ДокументыСотрудника.Количество() > 0 Тогда
ОтображатьИнформацию = Истина;
ДанныеРегистраторовПересекающихсяПереводов = Новый ФиксированныйМассив(ДокументыСотрудника[Объект.Сотрудник]);
ДанныеРегистратора = ДанныеРегистраторовПересекающихсяПереводов[0];
ТекстЗаголовка = СтрШаблон(
НСтр("ru = 'В базе данных зарегистрировано мероприятие, прекращающее действие начавшегося ранее даты перевода - %1.
|Для поддержания целостности данных потребуется:'"),
Формат(ДанныеРегистратора.ДатаМероприятия, "ДЛФ=D"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПредупреждениеОПересекающихсяМероприятияхЗаголовокДекорация",
"Заголовок",
ТекстЗаголовка);
ТекстПервогоВарианта = Новый ФорматированнаяСтрока(
"• ",
НСтр("ru = 'Отредактировать документ-регистратор мероприятия'"),
" ",
Новый ФорматированнаяСтрока(Строка(ДанныеРегистратора.Регистратор), , , , "ОткрытьРегистраторВозвратногоМероприятия"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПредупреждениеОПересекающихсяМероприятияхТекстПервогоВариантаДекорация",
"Заголовок",
ТекстПервогоВарианта);
ТекстВторогоВарианта = Новый ФорматированнаяСтрока(
"• ",
НСтр("ru = 'Отменить будущее мероприятие с помощью документа'"),
" ",
Новый ФорматированнаяСтрока(
ОбщегоНазначения.ПредставлениеОбъекта(Метаданные.Документы.РегистрацияТрудовойДеятельности), , , , "ОтменитьБудущиеМероприятия"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПредупреждениеОПересекающихсяМероприятияхТекстВторогоВариантаДекорация",
"Заголовок",
ТекстВторогоВарианта);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПредупреждениеОПересекающихсяМероприятияхГруппа",
"Видимость",
ОтображатьИнформацию);
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииПересекающихсяПериодов(Результат, ДополнительныеПараметры) Экспорт
ОбновитьИнформациюОПересекающихсяКадровыхПереводах();
КонецПроцедуры
&НаКлиенте
Процедура УстановитьОтразитьВТрудовойКнижке()
Если Объект.ИзменитьПодразделениеИДолжность Тогда
ОбновитьЭлементы = Ложь;
Если Объект.ВидЗанятости <> ПредопределенноеЗначение("Перечисление.ВидыЗанятости.ОсновноеМестоРаботы") Тогда
ЗапомненноеЗначение = ЭлектронныеТрудовыеКнижкиВызовСервера.ОтражениеВТрудовойКнижкеСовместительств();
Если Объект.ОтразитьВТрудовойКнижке <> ЗапомненноеЗначение Тогда
Объект.ОтразитьВТрудовойКнижке = ЗапомненноеЗначение;
ОбновитьЭлементы = Истина;
КонецЕсли;
ИначеЕсли Не Объект.ОтразитьВТрудовойКнижке Тогда
Объект.ОтразитьВТрудовойКнижке = Истина;
ОбновитьЭлементы = Истина;
КонецЕсли;
Если ОбновитьЭлементы Тогда
УстановитьДоступностьЭлементов(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьПодключаемыеКоманды(УправляемаяФорма)
ЭДОБЗККлиентСервер.ОбновитьКоманды(УправляемаяФорма, УправляемаяФорма.Объект, Истина);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ИсключаемыеРегистраторы(УправляемаяФорма)
СсылкиДокумента = Новый Массив;
Если ЗначениеЗаполнено(УправляемаяФорма.СсылкаНаОбъект) Тогда
СсылкиДокумента.Добавить(УправляемаяФорма.СсылкаНаОбъект);
КонецЕсли;
Если ЗначениеЗаполнено(УправляемаяФорма.Объект.ИсправленныйДокумент) Тогда
СсылкиДокумента.Добавить(УправляемаяФорма.Объект.ИсправленныйДокумент);
КонецЕсли;
Возврат СсылкиДокумента;
КонецФункции
&НаКлиенте
Процедура ПредупреждениеПоОплатеТрудаНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.Решение);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьБухучетПоПозицииШтатногоРасписания()
БухучетПозиции = НастройкиБухучетаПозицииШтатногоРасписания(Объект.ДолжностьПоШтатномуРасписанию);
Объект.СтатьяФинансирования = БухучетПозиции.СтатьяФинансирования;
Объект.СпособОтраженияЗарплатыВБухучете = БухучетПозиции.СпособОтраженияЗарплатыВБухучете;
Объект.ОтношениеКЕНВД = БухучетПозиции.ОтношениеКЕНВД;
Если Объект.СпособОтраженияЗарплатыВБухучете <> ТекущийСпособОтраженияЗарплатыВБухучете
Или Объект.СтатьяФинансирования <> ТекущаяСтатьяФинансирования
Или Объект.ОтношениеКЕНВД <> ТекущееОтношениеКЕНВД Тогда
Если Не Объект.БронированиеПозиции
И (ЗначениеЗаполнено(Объект.СпособОтраженияЗарплатыВБухучете)
Или ЗначениеЗаполнено(Объект.СтатьяФинансирования)
Или ЗначениеЗаполнено(Объект.ОтношениеКЕНВД)) Тогда
Объект.ИзменитьБухучетЗарплаты = Истина;
Иначе
Объект.ИзменитьБухучетЗарплаты = Ложь;
КонецЕсли;
Иначе
Объект.ИзменитьБухучетЗарплаты = Ложь;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
КонецПроцедуры
&НаСервереБезКонтекста
Функция НастройкиБухучетаПозицииШтатногоРасписания(ДолжностьПоШтатномуРасписанию)
ИменаРеквизитов = "СпособОтраженияЗарплатыВБухучете,СтатьяФинансирования,ОтношениеКЕНВД";
Возврат ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДолжностьПоШтатномуРасписанию, ИменаРеквизитов);
КонецФункции
&НаКлиенте
Процедура УстановитьЗначениеИзменитьБухучетЗарплаты()
Если Объект.БронированиеПозиции Или Не Объект.ИзменитьПодразделениеИДолжность Тогда
Объект.ИзменитьБухучетЗарплаты = Ложь;
КонецЕсли;
УстановитьДоступностьЭлементов(ЭтаФорма);
УстановитьКомментарии(ЭтаФорма);
КонецПроцедуры
&НаСервере
Функция ОписанияТаблиц()
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыНачислений());
ОписанияТаблиц.Добавить(ОписаниеТаблицыЛьгот());
Возврат ОписанияТаблиц;
КонецФункции
&НаСервере
Функция ОписанияТаблицБухучета()
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыБухучетНачислений());
ОписанияТаблиц.Добавить(ОписаниеТаблицыБухучетЛьгот());
ОписанияТаблиц.Добавить(ОписаниеТаблицыБухучетНачисленийРедактируемыхВОтдельныхПолях());
Возврат ОписанияТаблиц;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыБухучетНачислений()
ОписаниеТаблицы = ОписаниеТаблицыНачислений();
ОписаниеТаблицы.ИмяТаблицы = "БухучетНачислений";
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыБухучетЛьгот()
ОписаниеТаблицы = ОписаниеТаблицыЛьгот();
ОписаниеТаблицы.ИмяТаблицы = "БухучетЛьгот";
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыБухучетНачисленийРедактируемыхВОтдельныхПолях()
ОписаниеТаблицы = Новый Структура;
ОписаниеТаблицы.Вставить("ИмяТаблицы", "БухучетНачисленийРедактируемыхВОтдельныхПолях");
ОписаниеТаблицы.Вставить("ПутьКДанным", "БухучетНачисленийРедактируемыхВОтдельныхПолях");
ОписаниеТаблицы.Вставить("ИмяТаблицыБухучетНачислений", "БухучетНачисленийРедактируемыхВОтдельныхПолях");
ОписаниеТаблицы.Вставить("ИмяРеквизитаВидРасчета", "Начисление");
Возврат ОписаниеТаблицы;
КонецФункции
&НаСервере
Функция УстановитьВидимостьБухучетПлановыхНачислений()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СтраницаБухучетНачислений",
"Видимость",
ПолучитьФункциональнуюОпцию("РегистрироватьБухучетПлановыхНачислений"));
КонецФункции
&НаКлиенте
Процедура ИзменитьБухучетНачисленийПриИзменении(Элемент)
ИзменитьБухучетНачисленийПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьБухучетЛьготПриИзменении(Элемент)
ИзменитьБухучетЛьготПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ИзменитьБухучетНачисленийПриИзмененииНаСервере()
УстановитьДоступностьЭлементов(ЭтаФорма);
Если Не Объект.ИзменитьБухучетНачислений Тогда
ЗаполнитьБухучетДействующихНачислений(Истина, Ложь);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьБухучетЛьготПриИзмененииНаСервере()
УстановитьДоступностьЭлементов(ЭтаФорма);
Если Не Объект.ИзменитьБухучетЛьгот Тогда
ЗаполнитьБухучетДействующихНачислений(Ложь, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция БухучетПрежнихНачислений()
Если Не Объект.ИзменитьБухучетНачислений Тогда
Возврат Неопределено;
КонецЕсли;
ИменаКолонок = "Начисление,ДокументОснование,БухучетНачисления,КомандаРедактированияБухучетаНачисления";
Возврат Объект.Начисления.Выгрузить(,ИменаКолонок);
КонецФункции
&НаСервере
Процедура ЗаполнитьБухучетДействующихНачислений(ЗаполнитьБухучетНачислений = Истина, ЗаполнитьБухучетЛьгот = Истина, БухучетПрежнихНачислений = Неопределено)
ТаблицаСотрудников = ТаблицаСотрудников();
ОписанияТаблиц = Новый Массив;
Если ЗаполнитьБухучетНачислений Тогда
ОписанияТаблиц.Добавить(ОписаниеТаблицыНачислений());
КонецЕсли;
Если ЗаполнитьБухучетЛьгот Тогда
ОписанияТаблиц.Добавить(ОписаниеТаблицыЛьгот());
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ОтражениеЗарплатыВБухучетеРасширенный.БухучетДействующихНачисленийВРеквизиты(ЭтаФорма, ОписанияТаблиц, ИсключаемыеРегистраторы(ЭтотОбъект), ТаблицаСотрудников, БухучетПрежнихНачислений);
КонецПроцедуры
&НаСервере
Процедура ДатаОкончанияПриИзмененииНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы= ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВидКвотыПриИзмененииНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ПриИзмененииЭлементаФормыКадровогоПриказа(ЭтотОбъект, "ВидКвоты", Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьКвотуПриИзмененииНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ПриИзмененииЭлементаФормыКадровогоПриказа(ЭтотОбъект, "ИзменитьКвоту", Истина, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПредупрежденияПоОплатеТруда()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеФормы = ОбщегоНазначения.ОбщийМодуль("АдаптацияУвольнениеФормы");
МодульАдаптацияУвольнениеФормы.УстановитьВидимостьПредупрежденияПоОплатеТруда(ЭтотОбъект, ФОТ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти