#Область ОписаниеПеременных
&НаКлиенте
Перем ИдентификаторЗамераПроведениеНеНужнаРегистрацияОшибки;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
ПодписиДокументов.ПриСозданииНаСервере(ЭтотОбъект, Документы.ПриемНаРаботу.ОписаниеПодписейДокумента());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ЭДОБЗК.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
МодульУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элементы.Шапка);
КонецЕсли;
КонецЕсли;
ИспользуетсяРасчетЗарплаты = ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная");
УстановитьРазмерАванса = Ложь;
РасчетЗарплатыРасширенныйФормы.ИнициализироватьМеханизмПересчетаДокументаПриРедактировании(ЭтотОбъект);
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
КадровыйУчетФормы.ФормаКадровогоДокументаПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если Не Параметры.Свойство("Ключ") Или Параметры.Ключ.Пустая() Тогда
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
КадровыйУчетРасширенный.ПроверитьПравоИнтерактивногоСозданияКадровыхПриказовСотрудника();
РасчетЗарплатыФормы.УстановитьСпособРасчетаАвансаПоУмолчанию(Объект.СпособРасчетаАванса);
УстановитьРазмерАванса = Истина;
ЭлектронныеТрудовыеКнижки.ЗаполнитьНаименованиеДокумента(Объект, "ПриемНаРаботу");
СсылкаНаИсправленныйДокумент = Объект.ИсправленныйДокумент;
Иначе
Параметры.Свойство("АдресСпискаПодобранныхСотрудников", АдресСпискаПодобранныхСотрудников);
Параметры.Свойство("НомераДоговоровТекущегоДокумента", НомераДоговоровТекущегоДокумента);
РедактированиеСтрокиСписочногоДокумента = Истина;
УстановитьПривилегированныйРежим(Истина);
ДокументОбъект = Документы.ПриемНаРаботу.СоздатьДокумент();
УстановитьПривилегированныйРежим(Ложь);
ДокументОбъект.Заполнить(Неопределено);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
СтрокаСписочногоДокумента = Параметры.СтрокаСписочногоДокумента;
ЗарплатаКадрыРасширенныйКлиентСервер.ЗаполнитьЗначенияЗаполненныхСвойств(Объект, СтрокаСписочногоДокумента);
СсылкаНаОбъект = СтрокаСписочногоДокумента.СсылкаНаОбъект;
СсылкаНаИсправленныйДокумент = СтрокаСписочногоДокумента.ИсправленныйДокумент;
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
РасчетЗарплатыФормы.УстановитьСпособРасчетаАвансаПоУмолчанию(Объект.СпособРасчетаАванса);
УстановитьРазмерАванса = Истина;
КонецЕсли;
ТабличныеЧастиОбъекта = СтрокаСписочногоДокумента.ТабличныеЧасти;
Для каждого ОписаниеТабличнойЧасти Из ТабличныеЧастиОбъекта Цикл
Если ОписаниеТабличнойЧасти.Ключ = "ОписаниеТабличныхЧастей" Тогда
Продолжить;
КонецЕсли;
Если ОписаниеТабличнойЧасти.Ключ = "ЕжегодныеОтпуска"
И ЗначениеЗаполнено(ОписаниеТабличнойЧасти.Значение) Тогда
Объект.ЕжегодныеОтпуска.Очистить();
КонецЕсли;
Для каждого СтрокаТЧ Из ОписаниеТабличнойЧасти.Значение Цикл
ЗаполнитьЗначенияСвойств(Объект[ОписаниеТабличнойЧасти.Ключ].Добавить(), СтрокаТЧ);
КонецЦикла;
КонецЦикла;
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Нет;
АвтоЗаголовок = Ложь;
Заголовок = НСтр("ru='Прием на работу'");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РасчетчикГруппа",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"БронированиеПозиции",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Организация",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГруппаНомерДатаПриказаОПриеме",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НаименованиеДокумента",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОснованиеПредставителяНанимателя",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПодвалДокументаГруппа",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КоманднаяПанельФормы",
"Видимость",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОК",
"КнопкаПоУмолчанию",
Истина);
КонецЕсли;
Если Не ЗначениеЗаполнено(Объект.ДатаПриема) Тогда
Объект.ДатаПриема = ТекущаяДатаСеанса();
КонецЕсли;
Если Параметры.Свойство("ЗначениеКопирования") И ЗначениеЗаполнено(Параметры.ЗначениеКопирования) И Параметры.ЗначениеКопирования.Проведен Тогда
Объект.Сотрудник = Справочники.Сотрудники.ПустаяСсылка();
Объект.ФизическоеЛицо = Справочники.ФизическиеЛица.ПустаяСсылка();
КонецЕсли;
Если Параметры.Свойство("ЗначенияЗаполнения") Тогда
Если Параметры.ЗначенияЗаполнения.Свойство("Начисления")
И Параметры.ЗначенияЗаполнения.Начисления <> Неопределено
И Параметры.ЗначенияЗаполнения.Начисления.Количество() > 0 Тогда
Объект.Начисления.Загрузить(Параметры.ЗначенияЗаполнения.Начисления.Выгрузить());
КонецЕсли;
Если Параметры.ЗначенияЗаполнения.Свойство("Показатели")
И Параметры.ЗначенияЗаполнения.Показатели <> Неопределено
И Параметры.ЗначенияЗаполнения.Показатели.Количество() > 0 Тогда
Объект.Показатели.Загрузить(Параметры.ЗначенияЗаполнения.Показатели.Выгрузить());
КонецЕсли;
Если Параметры.ЗначенияЗаполнения.Свойство("РаботаетДистанционно") Тогда
Объект.РаботаетДистанционно = Параметры.ЗначенияЗаполнения.РаботаетДистанционно;
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.ГрафикРаботы) Тогда
ЗначенияДляЗаполнения = Новый Структура;
ФиксированныеЗначения = Новый Массив;
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ЗначенияДляЗаполнения.Вставить("ДолжностьПоШтатномуРасписанию", "Объект.ДолжностьПоШтатномуРасписанию");
ФиксированныеЗначения.Добавить("ДолжностьПоШтатномуРасписанию");
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.Организация");
ФиксированныеЗначения.Добавить("Организация");
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Подразделение) Тогда
ЗначенияДляЗаполнения.Вставить("Подразделение", "Объект.Подразделение");
ФиксированныеЗначения.Добавить("Подразделение");
КонецЕсли;
Если ФиксированныеЗначения.Количество() > 0 Тогда
ЗначенияДляЗаполнения.Вставить("ГрафикРаботы", "Объект.ГрафикРаботы");
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтотОбъект, ЗначенияДляЗаполнения, ФиксированныеЗначения);
КонецЕсли;
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента И ЗначениеЗаполнено(Объект.Сотрудник) И Не ЗначениеЗаполнено(Объект.ИсправленныйДокумент) Тогда
УстановитьВидЗанятостиНовогоСотрудника();
КонецЕсли;
ПриПолученииДанныхНаСервере(Объект);
Если Не ЗначениеЗаполнено(УсловияПриемаПриОткрытии) Тогда
УстановитьУсловияПриема(ЭтотОбъект);
КонецЕсли;
Если Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
ЗаполнитьДанныеФормыПоОрганизации();
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ПриемНаПозицию) Тогда
Объект.ДолжностьПоШтатномуРасписанию = Параметры.ПриемНаПозицию;
Если ЗначениеЗаполнено(Объект.ДатаПриема) Тогда
ЗаполнитьРабочееМесто = Ложь;
ЗаполнитьПоПозицииНаСервере(ЗаполнитьРабочееМесто);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоКатегории(
ЭтотОбъект,
ОписаниеТаблицыНачислений(),
КадровыйУчетРасширенный.ПараметрыВыбораКатегорииНачислений());
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуСодержанию(
ЭтотОбъект,
ОписаниеТаблицыНачислений(),
КадровыйУчетРасширенный.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуСодержанию(ЭтотОбъект));
КадровыйУчетФормыРасширенный.УстановитьОтображениеКнопкиРедактироватьФОТ(ЭтотОбъект);
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтотОбъект);
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтотОбъект, "НачисленияУтверждены");
Если ИспользуетсяРасчетЗарплаты И Не ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений И Объект.НачисленияУтверждены Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачисленияЗаполнитьПоПозиции",
"Видимость",
ИспользоватьШтатноеРасписание);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЕжегодныеОтпускаЗаполнитьЕжегодныеОтпускаПоПозиции",
"Видимость",
ИспользоватьШтатноеРасписание);
КадровыйУчетФормыРасширенный.РазместитьКомандуПроверкиШтатномуРасписанию(ЭтотОбъект);
Если Не ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьМногофункциональностьДокументовЗарплатаКадры") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГруппаСведенияЛевая",
"ОтображатьЗаголовок",
Ложь);
КонецЕсли;
КонецЕсли;
Элементы.РазрядКатегория.Заголовок = РазрядыКатегорииДолжностей.ИнициализироватьЗаголовокФормыИРеквизитов("РеквизитРазрядКатегорияВКадровыхДокументах");
УстановитьНадписьПраваНаОтпуск();
ПрочитатьРазмерАвансаПоУмолчанию(УстановитьРазмерАванса);
Если (Не Параметры.Свойство("Ключ") Или Параметры.Ключ.Пустая()) И Не Параметры.Свойство("СтрокаСписочногоДокумента") Тогда
Если Объект.Начисления.Количество() > 0 Тогда
РассчитатьФОТНаСервере();
КонецЕсли;
КонецЕсли;
Если ПодписиДокументов.ИспользоватьОснованияПолномочий() Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОснованиеПредставителяНанимателя",
"Видимость",
Ложь);
КонецЕсли;
УстановитьВидимостьЕНВД(Элементы, ИспользуетсяЕНВД(Объект.Дата));
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьСвойстваЭлементаРабочееМестоВФормеДокумента(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьСвойстваЭлементовВФормеДокумента(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
УстановитьВидимостьПредупрежденияПоОплатеТруда();
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "ИзмененСтажФизическогоЛица" И Источник.ВладелецФормы = ЭтотОбъект Тогда
ПриИзмененииСтажа();
ВыполнитьРасчетФОТ();
КонецЕсли;
Если Источник = Объект.ФизическоеЛицо Тогда
Если ИмяСобытия = "РедактированиеПроцентаСевернойНадбавки" Тогда
ПриИзмененииПроцентаСевернойНадбавки();
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "ИзмененыЕжегодныеОтпуска" И Источник = ЭтотОбъект Тогда
ЗагрузитьЕжегодныеОтпуска(Параметр.ЕжегодныеОтпуска);
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ИсправлениеДокументовЗарплатаКадрыКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецЕсли;
Если ИмяСобытия = "ИзмененСтажФизическогоЛица" И Источник.ВладелецФормы = ЭтотОбъект Тогда
УстановитьВидимостьПредупрежденияОНезаполненномСтаже();
КонецЕсли;
Если ИмяСобытия = "ИзмененКлассныйЧинРанг" И Источник.ВладелецФормы = ЭтотОбъект Тогда
КлассныйЧинРангПриИзменении(Параметр);
КонецЕсли;
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ЭДОБЗККлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект, Источник);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ЗаписатьИЗакрытьНаКлиенте", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗакрытием(ЭтотОбъект, Объект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ТекущийОбъект = РеквизитФормыВЗначение("Объект");
РеквизитВДанные(ТекущийОбъект);
УстановитьПривилегированныйРежим(Ложь);
Если РедактированиеСтрокиСписочногоДокумента Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("ПроверкаСтрокиСписочногоДокумента", Истина);
МногофункциональныеДокументыБЗК.ОтключитьПроверкуУтверждения(ТекущийОбъект);
ПараметрыСеанса.ИнтерактивнаяПроверкаЗаполненияСвойств = Истина;
КонецЕсли;
Если Не ТекущийОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "Объект");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НомерПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КомментарийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияКомментария(
Элемент.ТекстРедактирования,
ЭтотОбъект,
"Объект.Комментарий");
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ЗаполнитьДанныеФормыПоОрганизации();
УстановитьВидимостьЕНВД(Элементы, ИспользуетсяЕНВД(Объект.Дата));
КонецПроцедуры
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
ОценкаПроизводительностиКлиент.ЗамерВремени("ИзменениеСотрудникаВФормеДокументаПриемНаРаботу");
СотрудникПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ПодразделениеПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ТерриторияПриИзменении(Элемент)
ТерриторияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПКУПриИзменении(Элемент)
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты") Тогда
ВыполнитьРасчетФОТ(Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазрядКатегорияПриИзменении(Элемент)
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты") Тогда
ВыполнитьРасчетФОТ(Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КоличествоСтавокПредставлениеНажатие(Элемент, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ПриИзмененииКоличестваСтавок", ЭтотОбъект);
КадровыйУчетКлиент.ИзменитьКоличествоСтавок(ЭтотОбъект, "Объект.КоличествоСтавок", СтандартнаяОбработка, "КоличествоСтавокПредставление", Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПозицияШтатногоРасписанияПриИзменении(Элемент)
ОценкаПроизводительностиКлиент.ЗамерВремени("ИзменениеПозицииШРВФормеДокументаПриемНаРаботу");
ЗаполнитьПоПозицииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДолжностьПриИзменении(Элемент)
ДолжностьПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриемаПриИзменении(Элемент)
ДатаПриемаПриИзмененииНаСервере();
ВыполнитьРасчетФОТ(Истина);
КонецПроцедуры
&НаКлиенте
Процедура СпособРасчетаАвансаПриИзменении(Элемент)
Если Объект.СпособРасчетаАванса = ПредопределенноеЗначение("Перечисление.СпособыРасчетаАванса.ПроцентомОтТарифа") Тогда
Объект.Аванс = РазмерАвансаПоУмолчанию;
Иначе
Объект.Аванс = 0;
КонецЕсли;
УстановитьПоказРазмераАванса(ЭтотОбъект);
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура АвансРазмерГруппаСтраницаФиксированнойСуммойВеличинаПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура АвансРазмерГруппаСтраницаПроцентомОтТарифаВеличинаПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ГрафикПриИзменении(Элемент)
ЗапомнитьСвойстваГрафикаРаботы();
УстановитьУсловияПриема(ЭтотОбъект);
ЗапомнитьСвойстваГрафикаРаботыПредыдущего(ЭтотОбъект);
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура ВидЗанятостиПриИзменении(Элемент)
СотрудникиКлиент.ПроверитьКонфликтыВидаЗанятостиССуществующимиСотрудниками(
Объект.Сотрудник,
Объект.ФизическоеЛицо,
Объект.Организация,
Объект.ВидЗанятости,
Объект.ДатаПриема);
УстановитьУсловияПриема(ЭтотОбъект);
ПриИзмененииВидаЗанятости(ЭтотОбъект);
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
ВидЗанятостиПредыдущий = Объект.ВидЗанятости;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РаботаетДистанционноПриИзменении(Элемент)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗамещениеИнфоНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
МодульЦепочкиДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦепочкиДокументовКлиент");
МодульЦепочкиДокументовКлиент.ОткрытьФормуЗамещенияПоСсылке(ЭтотОбъект, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементПриИзменении(Элемент)
ПодписиДокументовКлиент.ПриИзмененииПодписывающегоЛица(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементНажатие(Элемент)
ПодписиДокументовКлиент.РасширеннаяПодсказкаНажатие(ЭтотОбъект, Элемент.Имя);
КонецПроцедуры
#Область КадровыеРешения
&НаКлиенте
Процедура Подключаемый_РешениеИнфоНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
КадровыеРешенияКлиент.ОбработкаНавигационнойСсылкиРешения(ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОтразитьВТрудовойКнижкеПриИзменении(Элемент)
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
Если Не Объект.ОтразитьВТрудовойКнижке Тогда
Элементы.ВторойДокументОснованиеГруппа.Скрыть();
КонецЕсли;
Если Не (Объект.ВидЗанятости = ПредопределенноеЗначение("Перечисление.ВидыЗанятости.ОсновноеМестоРаботы")
Или Объект.ВидЗанятости = ПредопределенноеЗначение("Перечисление.ВидыЗанятости.Совместительство")) Тогда
ЭлектронныеТрудовыеКнижкиВызовСервера.ЗапомнитьОтражениеВТрудовойКнижкеСовместительств(Объект.ОтразитьВТрудовойКнижке);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "ПриемНаРаботу", Объект.НаименованиеДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
Объект.НаименованиеДокумента, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаАвтоПодбор(
Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботыПриИзменении(Элемент)
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаПриИзменении(Объект.Организация, "ПриемНаРаботу", Объект.НаименованиеВторогоДокументаОснования);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаОбработкаВыбора(
Объект.НаименованиеВторогоДокументаОснования, ВыбранноеЗначение, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеВторогоДокументаОснованияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЭлектронныеТрудовыеКнижкиКлиент.НаименованиеДокументаАвтоПодбор(
Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура ДатаВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура СерияВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура НомерВторогоДокументаОснованияПриИзменении(Элемент)
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
ЭтотОбъект, РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РабочееМестоПриИзменении(Элемент)
РабочееМестоПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РабочееМестоОчистка(Элемент, СтандартнаяОбработка)
РабочееМестоПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура НачалоТрудовойДеятельностиПриИзменении(Элемент)
Если Объект.НачалоТрудовойДеятельности Тогда
СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботы = Ложь;
Объект.ВидЗаявленияОВыбореСпособаВеденияТрудовойКнижки = Неопределено;
Объект.ДатаЗаявленияОВыбореСпособаВеденияТрудовойКнижки = '00010101';
КонецЕсли;
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы["ДекорацияСостояниеОригинала"]);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисления
&НаКлиенте
Процедура НачисленияПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
РассчитатьИтогиПоФОТ(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийВыбор(
ЭтотОбъект, Элемент, Поле, СтандартнаяОбработка, 1, Объект.Сотрудник, Объект.ДатаПриема);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтотОбъект, "Начисления", 1);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияНачислениеПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ДополнительныеПараметры = ЗарплатаКадрыРасширенныйКлиентСервер.ПараметрыЗаполненияЗначенийПоказателейТарифныхСеток();
ДополнительныеПараметры.ДатаСведений = ВремяРегистрации;
ДополнительныеПараметры.ТарифнаяСетка = ТарифнаяСетка;
ДополнительныеПараметры.ТарифнаяСеткаНадбавки = ТарифнаяСеткаНадбавки;
ДополнительныеПараметры.РазрядКатегория = РазрядКатегория;
ДополнительныеПараметры.РазрядКатегорияНадбавки = Объект.РазрядКатегория;
ДополнительныеПараметры.ПКУ = Объект.ПКУ;
ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийНачислениеПриИзменении(ЭтотОбъект, ОписаниеТаблицыВидовРасчета, 1, Объект.Сотрудник, ДополнительныеПараметры);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРангВСтрокеНачислений();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактирования(ЭтотОбъект, Элемент, 1, ОписаниеТаблицыНачислений()) Тогда
ВыполнитьРасчетФОТ();
Иначе
РассчитатьИтогиПоФОТ(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПослеУдаления(Элемент)
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПересчитатьФОТДокумента(Элемент)
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПересчитатьИтогиФОТДокумента(Элемент)
РассчитатьИтогиПоФОТ(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НачисленияУтвержденыПриИзменении(Элемент)
Если Объект.НачисленияУтверждены Тогда
Объект.БронированиеПозиции = Ложь;
КонецЕсли;
НачисленияУтвержденыПриИзмененииНаСервере();
КонецПроцедуры
&НаСервере
Процедура НачисленияУтвержденыПриИзмененииНаСервере()
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтотОбъект, "НачисленияУтверждены");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьДокументыВведенныеПозже(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьВведенныеНаДатуДокументы(ЭтотОбъект.ДокументыВведенныеПозже);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьРанееВведенныеДокументы(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьВведенныеНаДатуДокументы(ЭтотОбъект.РанееВведенныеДокументы);
КонецПроцедуры
&НаКлиенте
Процедура УсловияПриемаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("УсловияПриемаЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Условия приема'"));
КонецПроцедуры
&НаКлиенте
Процедура ИныеУсловияДоговораНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ИныеУсловияДоговораЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Иные условия'"));
КонецПроцедуры
&НаКлиенте
Процедура ОборудованиеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ОборудованиеРабочегоМестаЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Оборудование рабочего места'"));
КонецПроцедуры
&НаКлиенте
Процедура СрокЗаключенияДоговораНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("СрокЗаключенияДоговораЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Срок заключения договора'"));
КонецПроцедуры
&НаКлиенте
Процедура ОснованиеПредставителяНанимателяНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ОснованиеПредставителяНанимателяЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Основание представителя нанимателя'"));
КонецПроцедуры
&НаКлиенте
Процедура ВидАктаГосорганаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ВидАктаГосорганаЗавершениеВвода", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(
Оповещение,
Элемент.ТекстРедактирования,
НСтр("ru='Вид акта государственного органа'"));
КонецПроцедуры
&НаКлиенте
Процедура СрочныйДоговорПриИзменении(Элемент)
СрочныйДоговорПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ВидДоговораПриИзменении(Элемент)
ВидДоговораПриИзмененииНаСервере();
ВидДоговораПредыдущий = Объект.ВидДоговора;
КонецПроцедуры
&НаКлиенте
Процедура ДатаЗавершенияТрудовогоДоговораПриИзменении(Элемент)
Если НЕ Объект.СрочныйДоговор Тогда
Объект.СрочныйДоговор = ЗначениеЗаполнено(Объект.ДатаЗавершенияТрудовогоДоговора);
КонецЕсли;
УстановитьОтображениеПодсказкиДлительностиИспытательногоСрока(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ГрейдПриИзменении(Элемент)
ГрейдПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДлительностьИспытательногоСрокаПриИзменении(Элемент)
УстановитьОтображениеПодсказкиДлительностиИспытательногоСрока(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СтажиНеЗаданыНадписьНажатие(Элемент)
ЗапрашиваемыеВидыСтажа = ВидыСтажаВЛисткеНетрудоспособности();
ВидыСтажа = Новый ФиксированныйМассив(ЗапрашиваемыеВидыСтажа.ВидыСтажа);
НеобязательныеВидыСтажа = Новый ФиксированноеСоответствие(ЗапрашиваемыеВидыСтажа.НеобязательныеВидыСтажа);
КадровыйУчетРасширенныйКлиент.ОткрытьФормуРедактированияСтажейСотрудника(ЭтотОбъект, Объект.Сотрудник, Объект.ДатаПриема, ВидыСтажа, , , , НеобязательныеВидыСтажа);
КонецПроцедуры
&НаКлиенте
Процедура БронированиеПозицииПриИзменении(Элемент)
Если Объект.БронированиеПозиции Тогда
УстановитьЗначениеНачисленияУтверждены(Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВидКвотыПриИзменении(Элемент)
ВидКвотыПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВидКвотыОчистка(Элемент)
ВидКвотыПриИзмененииНаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПоказатели
&НаКлиенте
Процедура ПоказателиПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 1);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПоказательПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 1);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЛьготы
&НаКлиенте
Процедура ЛьготыПриИзменении(Элемент)
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтотОбъект, "Льготы", 1);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактирования(ЭтотОбъект, Элемент, 1, ОписаниеТаблицыЛьгот()) Тогда
ПериодОжидания = ЗарплатаКадрыРасширенныйКлиент.ПериодОжиданияЗапускаАвтоматическогоРасчета();
Если ПериодОжидания > 0 Тогда
ПодключитьОбработчикОжидания("РассчитатьРазмерЛьготНаКлиенте", ПериодОжидания, Истина);
КонецЕсли;
Иначе
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыЛьготаПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыЛьгот();
ДополнительныеПараметры = ЗарплатаКадрыРасширенныйКлиентСервер.ПараметрыЗаполненияЗначенийПоказателейТарифныхСеток();
ДополнительныеПараметры.ДатаСведений = ВремяРегистрации;
ДополнительныеПараметры.ТарифнаяСетка = ТарифнаяСетка;
ДополнительныеПараметры.ТарифнаяСеткаНадбавки = ТарифнаяСеткаНадбавки;
ДополнительныеПараметры.РазрядКатегория = РазрядКатегория;
ДополнительныеПараметры.РазрядКатегорияНадбавки = Объект.РазрядКатегория;
ДополнительныеПараметры.ПКУ = Объект.ПКУ;
ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийНачислениеПриИзменении(ЭтотОбъект, ОписаниеТаблицыВидовРасчета, 1, Объект.Сотрудник, ДополнительныеПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПослеУдаления(Элемент)
ПериодОжидания = ЗарплатаКадрыРасширенныйКлиент.ПериодОжиданияЗапускаАвтоматическогоРасчета();
Если ПериодОжидания > 0 Тогда
ПодключитьОбработчикОжидания("РассчитатьРазмерЛьготНаКлиенте", ПериодОжидания, Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыУправленческиеНачисления
&НаКлиенте
Процедура УправленческиеНачисленияПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
РассчитатьИтогиПоФОТ(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.ПриемНаРаботуУправленческиеНачисленияВыбор(ЭтотОбъект, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.ПриемНаРаботуУправленческиеНачисленияПриНачалеРедактирования(ЭтотОбъект, Элемент, НоваяСтрока, Копирование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.ПриемНаРаботуУправленческиеНачисленияПриОкончанииРедактирования(ЭтотОбъект, Элемент, НоваяСтрока, ОтменаРедактирования);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПослеУдаления(Элемент)
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияНачислениеПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.ПриемНаРаботуУправленческиеНачисленияНачислениеПриИзменении(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВыполнитьПодключаемуюКомандуПослеПодтвержденияЗаписи", ЭтотОбъект, Команда);
ЗарплатаКадрыРасширенныйКлиент.ПоказатьДиалогЗаписиОбъектаДляВыполненияПодключаемойКоманды(ЭтотОбъект, Команда, ОписаниеОповещения);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ОбновитьПодключаемыеКоманды(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПодключаемуюКомандуПослеПодтвержденияЗаписи(РезультатВопроса, Команда) Экспорт
Если РезультатВопроса = КодВозвратаДиалога.ОК Тогда
ОписаниеКоманды = ПодключаемыеКомандыКлиентПовтИсп.ОписаниеКоманды(Команда.Имя, ЭтотОбъект.ПараметрыПодключаемыхКоманд.АдресТаблицыКоманд);
Если ОписаниеКоманды.РежимЗаписи = "Проводить" Тогда
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
Иначе
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ВыполнитьКомандуПослеВсехПроверок", ЭтотОбъект, Новый Структура("Команда", Команда));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи, Оповещение);
Если Объект.Ссылка.Пустая() Или Модифицированность Тогда
Возврат;
КонецЕсли;
ИначеЕсли РезультатВопроса = КодВозвратаДиалога.Отмена Тогда
Возврат;
Иначе
ВыполнитьКомандуПослеВсехПроверок(Истина, Новый Структура("Команда", Команда));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандуПослеВсехПроверок(Результат, ДополнительныеПарметры) Экспорт
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, ДополнительныеПарметры.Команда, Объект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыБухучетНачислений
&НаКлиенте
Процедура БухучетНачисленийВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если СтрНайти(Поле.Имя, "КомандаРедактированияБухучетаНачисления") <> 0 Тогда
ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуРедактированиеБухучетаНачисления(ЭтаФорма, ОписаниеТаблицыНачислений(), ВыбраннаяСтрока, Истина);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыБухучетЛьготы
&НаКлиенте
Процедура БухучетЛьготВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если СтрНайти(Поле.Имя, "КомандаРедактированияБухучетаНачисления") <> 0 Тогда
ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуРедактированиеБухучетаНачисления(ЭтаФорма, ОписаниеТаблицыЛьгот(), ВыбраннаяСтрока, Истина);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыБухучетНачисленийРедактируемыхВОтдельныхПолях
&НаКлиенте
Процедура БухучетНачисленийРедактируемыхВОтдельныхПоляхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если СтрНайти(Поле.Имя, "КомандаРедактированияБухучетаНачисления") <> 0 Тогда
ОписаниеТаблицы = ОписаниеТаблицыБухучетНачисленийРедактируемыхВОтдельныхПолях();
ОтражениеЗарплатыВБухучетеКлиентРасширенный.ОткрытьФормуРедактированиеБухучетаНачисления(ЭтаФорма, ОписаниеТаблицы, ВыбраннаяСтрока, Истина);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивом(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивомНаСервере(Знач Параметры) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ВыполнитьПодключаемуюКоманду(ЭтотОбъект, Параметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИнтеграцияС1САрхивом_Нажатие(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.Нажатие(Элемент, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Исправить(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.Исправить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправлению(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправлению(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправленному(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправленному(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазблокироватьФормуОбъекта(Команда)
БлокировкаИзмененияОбъектовКлиент.РазблокироватьФормуОбъекта(ЭтотОбъект, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьНаСоответствиеШтатномуРасписанию(Команда)
КадровыйУчетРасширенныйКлиент.ПроверитьНаСоответствиеШтатномуРасписанию(ЭтотОбъект, Объект, Объект.ИсправленныйДокумент);
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьЕжегодныеОтпуска(Команда)
ПараметрыОткрытия = Новый Структура;
ПараметрыОткрытия.Вставить("ЕжегодныеОтпуска", ЕжегодныеОтпускаСотрудника());
ПараметрыОткрытия.Вставить("Сотрудник", Объект.Сотрудник);
ПараметрыОткрытия.Вставить("ДатаСобытия", Объект.ДатаПриема);
ПараметрыОткрытия.Вставить("Ссылка", Объект.Ссылка);
ПараметрыОткрытия.Вставить("ДолжностьПоШтатномуРасписанию", Объект.ДолжностьПоШтатномуРасписанию);
ПараметрыОткрытия.Вставить("Организация", Объект.Организация);
ПараметрыОткрытия.Вставить("Подразделение", Объект.Подразделение);
ПараметрыОткрытия.Вставить("Территория", Объект.Территория);
ПараметрыОткрытия.Вставить("Должность", Объект.Должность);
ОткрытьФорму("Документ.ПриемНаРаботу.Форма.ФормаРедактированияПравНаОтпуск", ПараметрыОткрытия, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНачисленияПоПозиции(Команда)
Оповещение = Новый ОписаниеОповещения("ЗаполнитьНачисленияПоПозицииЗавершение", ЭтотОбъект);
ЗарплатаКадрыРасширенныйКлиент.ПроверитьВозможностьОчисткиТабличныхЧастей(ЭтотОбъект, "Начисления", Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНачисленияПоПозицииЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Не Отказ Тогда
ЗаполнитьНачисленияПоПозицииНаСервере();
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецЕсли;
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьФОТ(Команда)
РедактироватьФОТ = НЕ Элементы.РедактироватьФОТ.Пометка;
Элементы.РедактироватьФОТ.Пометка = РедактироватьФОТ;
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьВидимостьВкладаВФОТРНачисленийРедактируемыхВОтдельныхПолях(ЭтотОбъект, РедактироватьФОТ);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИзменитьЗначениеПоказателяСевернаяНадбавка(Команда)
ЗарплатаКадрыРасширенныйКлиент.ОткрытьФормуРедактированияПроцентаСевернойНадбавки(ЭтотОбъект, Объект.Сотрудник, Объект.ДатаПриема);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровестиИЗакрыть(Команда) Экспорт
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровести(Команда)
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаписать(Команда)
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Рассчитать(Команда)
РассчитатьФОТНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура КлассныйЧинРангИзменить(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРангиКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КлассныеЧиныРангиКлиент");
МодульКлассныеЧиныРангиКлиент.РедактироватьКлассныйЧинРанг(ЭтотОбъект, Объект.Сотрудник, Объект.ДатаПрисвоения, Объект.КлассныйЧинРанг);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьРазмерЛьгот(Команда)
Элементы.РедактироватьРазмерЛьгот.Пометка = Не Элементы.РедактироватьРазмерЛьгот.Пометка;
УстановитьВидимостьРазмераЛьгот(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьРазмерЛьгот(Команда)
РассчитатьРазмерЛьготНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура ОК(Команда)
ОчиститьСообщения();
ЗавершитьРедактированиеСтрокиДокумента();
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьРедактированиеСтрокиДокумента()
Отказ = Ложь;
Если Модифицированность Тогда
Если Не ПроверитьЗаполнение() Тогда
Отказ = Истина;
Иначе
ОписаниеДокумента = СтруктураСОписаниемДокумента();
Если РегистрацияНачисленийДоступна Тогда
ЗапомнитьРазмерАвансаПоУмолчанию(Объект.Аванс, Объект.Организация, Объект.СпособРасчетаАванса);
КонецЕсли;
Модифицированность = Ложь;
КонецЕсли;
Иначе
ОписаниеДокумента = Неопределено;
КонецЕсли;
Если Не Отказ Тогда
Закрыть(ОписаниеДокумента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НазначитьНомерДоговору(Команда)
Если Не ЗначениеЗаполнено(Объект.ТрудовойДоговорДата) Тогда
ПоказатьПредупреждение(, НСтр("ru='Необходимо указать дату договора.'"));
Иначе
Объект.ТрудовойДоговорНомер = НомерСледующегоТрудовогоДоговора(
Объект.Организация, НомераДоговоровТекущегоДокумента, Год(Объект.ТрудовойДоговорДата));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(
Команда,
ЭтотОбъект,
Объект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Команда, Объект)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Контекст, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийСледующемуНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_ОткрытьОтчетПоПроблемам(ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка)
КонтрольВеденияУчетаКлиентБЗК.ОткрытьОтчетПоПроблемамОбъекта(ЭтотОбъект, Объект.Ссылка, СтандартнаяОбработка);
КонецПроцедуры
#Область ИсправлениеДокументов
&НаКлиенте
Процедура УстановитьПоляИсправленияНаКлиенте() Экспорт
УстановитьПоляИсправления(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляИсправления(Форма)
ИсправлениеДокументовЗарплатаКадрыКлиентСервер.УстановитьПоляИсправления(Форма, "ПериодическиеСведения");
КонецПроцедуры
#КонецОбласти
#Область ИнициализацияФормы
&НаСервере
Процедура ПриПолученииДанныхНаСервере(ТекущийОбъект)
ИспользоватьСтатьиФинансирования = ПолучитьФункциональнуюОпцию("ИспользоватьСтатьиФинансированияЗарплатаРасширенный");
РаботаВБюджетномУчреждении = ПолучитьФункциональнуюОпцию("РаботаВБюджетномУчреждении");
НачатьИнициализациюФормы(ТекущийОбъект);
ЗарплатаКадрыРасширенный.ИзменитьРеквизитыФормы(ЭтотОбъект);
ЗавершитьИнициализациюФормы(ТекущийОбъект);
РеквизитыКДобавлению.Очистить();
РеквизитыКУдалению.Очистить();
КонецПроцедуры
&НаСервере
Процедура НачатьИнициализациюФормы(ТекущийОбъект)
УстановитьДоступностьРегистрацииНачислений();
ИспользоватьШтатноеРасписание = ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание");
УстановитьПривилегированныйРежим(Истина);
КоличествоСтавокПредставление = КадровыйУчетКлиентСервер.ПредставлениеКоличестваСтавок(Объект.КоличествоСтавок);
ПрочитатьВремяРегистрации();
ЗаполнитьСведенияСотрудника();
ДополнитьФорму(Истина);
КонецПроцедуры
&НаСервере
Процедура ЗавершитьИнициализациюФормы(ТекущийОбъект)
ИмяКнопкиРассчитать = "Рассчитать";
УстановитьПривилегированныйРежим(Истина);
ДополнитьФорму(Ложь);
ДополнитьФорму();
УстановитьФункциональныеОпцииФормы();
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
УстановитьВидимостьБухучетПлановыхНачислений();
ДанныеВРеквизит();
ДанныеДолжности(Истина);
ПрочитатьТарифнуюСетку();
УстановитьПоказРазмераАванса(ЭтотОбъект);
УстановитьВидимостьРасчетныхПолей();
УстановитьВидимостьРазмераЛьгот(ЭтотОбъект);
ВидЗанятостиПредыдущий = ТекущийОбъект.ВидЗанятости;
ВидДоговораПредыдущий = ТекущийОбъект.ВидДоговора;
КоличествоСтавокПредыдущее = ТекущийОбъект.КоличествоСтавок;
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтотОбъект, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
ЗарплатаКадрыРасширенный.УстановитьТекстПоясненияКПорядкуПересчетаТарифныхСтавок(ЭтотОбъект, "ПорядокРасчетаСтоимостиЕдиницыВремени");
ЗарплатаКадрыРасширенный.УстановитьРазмерностьСовокупнойТарифнойСтавки(ЭтотОбъект);
ЗарплатаКадрыРасширенный.УстановитьКомментарийКРазмеруСовокупнойТарифнойСтавки(ЭтотОбъект, Объект.ВидТарифнойСтавки,"СовокупнаяТарифнаяСтавкаРазмерность");
ЗапомнитьУсловияПриемаПозицииШтатногоРасписания();
УстановитьОтображениеНадписей();
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
ОписаниеФормы = ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
КонтрактыДоговорыСотрудниковФормы.НастроитьФормуПоВидуДоговора(ЭтотОбъект, ОписаниеФормы, Объект.ВидДоговора);
КонтрактыДоговорыСотрудниковФормы.ЗаполнитьСписокВыбораВидаДоговора(Элементы.ВидДоговора.СписокВыбора,"РаботникиИСлужащие");
УстановитьДоступностьПолейСрочногоТрудовогоДоговора();
Если РедактированиеСтрокиСписочногоДокумента Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидДоговора",
"ТолькоПросмотр",
Истина);
КонецЕсли;
РазрядыКатегорииДолжностей.УстановитьСвязиПараметровВыбораРазрядаКадровогоПриказа(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРангиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРангиКлиентСервер");
КлассныйЧинРангПредставление = МодульКлассныеЧиныРангиКлиентСервер.ПредставлениеКлассногоЧинаРанга(Объект.КлассныйЧинРанг, Объект.ДатаПрисвоения);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.УстановитьВидимостьГруппыЛьготы(Элементы);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуУстановитьОтображениеЭлементовФормы(ЭтотОбъект, Объект.ДатаПриема, ОграниченияНаУровнеЗаписей);
КонецЕсли;
Если Объект.Проведен
И Не Объект.БронированиеПозиции
И ПолучитьФункциональнуюОпциюФормы("ИспользоватьБронированиеПозиций") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"БронированиеПозиции",
"Видимость",
Ложь);
КонецЕсли;
РассчитатьИтогиПоФОТ(ЭтотОбъект);
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
УстановитьОтображениеПодсказкиДлительностиИспытательногоСрока(ЭтотОбъект);
ЗапомнитьСвойстваГрафикаРаботы();
ЗапомнитьСвойстваГрафикаРаботыПредыдущего(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ДополнитьФорму(ОтложенноеИзменение = Неопределено)
Если ОтложенноеИзменение = Неопределено Тогда
ЗарплатаКадрыРасширенный.МногофункциональныеДокументыДобавитьЭлементыФормы(ЭтотОбъект, НСтр("ru='Приказом установлены ежемесячные начисления'"), "РасчетчикГруппа", "НачисленияУтверждены");
ЗарплатаКадрыРасширенный.СформироватьСписокВыбораПорядкаПересчета(Элементы, РегистрацияНачисленийДоступна);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.ГруппаГрейдДополнитьФормуКадровогоПриказа(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.ДополнитьФормуКадровогоПриказа(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ДополнитьФормуКадровогоПриказа(ЭтотОбъект, Ложь, Ложь);
КонецЕсли;
ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийУстановитьУсловноеОформление(ЭтаФорма, ОписанияТаблицБухучета(), РегистрацияНачисленийДоступна);
Иначе
Если ОтложенноеИзменение Тогда
ДобавлятьЭлементыФормы = Ложь;
ДобавлятьРеквизитыФормы = Истина;
Иначе
ДобавлятьЭлементыФормы = Истина;
ДобавлятьРеквизитыФормы = Ложь;
КонецЕсли;
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтотОбъект, ОписаниеТаблицыНачислений(), "Начисления", 3, РегистрацияНачисленийДоступна И ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтотОбъект, ОписаниеТаблицыЛьгот(), "Начисления", 3, РегистрацияНачисленийДоступна И ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ПроверяемыеРеквизитыНаСоответствие = РеквизитыПроверяемыеНаСоответствие(ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтотОбъект, ОписаниеТаблицыЛьгот(),, 3), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
УправлениеШтатнымРасписаниемФормы.ПроверкаШтатногоРасписанияПодготовитьТаблицуФормы(
ЭтотОбъект, ПроверяемыеРеквизитыНаСоответствие, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ЗарплатаКадрыРасширенный.ОформлениеНесколькихДокументовНаОднуДатуДополнитьФорму(
ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ИсправлениеДокументовЗарплатаКадры.ГруппаИсправлениеДополнитьФорму(
ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ДополнитьФормуКадровогоДокумента(ЭтотОбъект, ОписаниеТаблицыЛьгот(), ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуДополнитьФорму(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
МодульЦепочкиДокументовФормы = ОбщегоНазначения.ОбщийМодуль("ЦепочкиДокументовФормы");
МодульЦепочкиДокументовФормы.ДополнитьФормуДокументаЭлементамиЗамещения(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
КадровыеРешенияФормы.ДополнитьФормуКадровогоДокумента(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
МодульДистанционнаяРаботаФормы = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРаботаФормы");
МодульДистанционнаяРаботаФормы.ПриемНаРаботуДополнитьФорму(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ВыполнитьРасчетФОТ(ЗаполнитьДанныеТарифнойСетки = Ложь, ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг = Ложь) Экспорт
Если ЗаполнитьДанныеТарифнойСетки Тогда
ПерезаполнитьДанныеТарифнойСетки = Истина;;
КонецЕсли;
Если ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг Тогда
ПерезаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг = Истина;
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.ПодключитьОбработчикОжиданияАвтоматическогоРасчета(ЭтотОбъект, РегистрацияНачисленийДоступна, "РассчитатьФОТНаКлиенте", ИмяКнопкиРассчитать);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьФОТНаКлиенте()
РассчитатьФОТНаСервере();
ЗарплатаКадрыРасширенныйКлиентСервер.СброситьФлагНеобходимостиВыполненияРасчета(ЭтотОбъект, ИмяКнопкиРассчитать);
УстановитьВидимостьПредупрежденияПоОплатеТруда();
КонецПроцедуры
&НаСервере
Процедура РассчитатьФОТНаСервере()
УстановитьПривилегированныйРежим(Истина);
Если ПерезаполнитьДанныеТарифнойСетки Тогда
ЗаполнитьДанныеТарифнойСеткиНаСервере();
КонецЕсли;
Если ПерезаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг Тогда
ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРангНаСервере();
КонецЕсли;
ТаблицаНачислений = ПлановыеНачисленияСотрудников.ТаблицаНачисленийДляРасчетаВторичныхДанных();
ТаблицаПоказателей = ПлановыеНачисленияСотрудников.ТаблицаИзвестныеПоказатели();
МодульУправленческаяЗарплатаФормы = Неопределено;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуПриЗаполненииДанныхНачисленийДляРасчета(ТаблицаНачислений, ТаблицаПоказателей, ЭтотОбъект);
КонецЕсли;
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ОписаниеДанныхСовокупнойСтавки = ПлановыеНачисленияСотрудниковФормы.ОписаниеДанныхТарифныхСтавок("Объект.ВидТарифнойСтавки", "Объект.СовокупнаяТарифнаяСтавка");
ГоловнаяОрганизация = ЗарплатаКадры.ГоловнаяОрганизация(Объект.Организация);
ПлановыеНачисленияСотрудниковФормы.ЗаполнитьДанныеПлановыхНачисленийПоСотруднику(
ТаблицаНачислений,
ТаблицаПоказателей,
ЭтотОбъект,
Объект.Сотрудник,
ГоловнаяОрганизация,
ВремяРегистрации,
ОписаниеТаблицыНачислений);
КадровыеДанные = ПлановыеНачисленияСотрудников.СоздатьТаблицуКадровыхДанныхПоСотруднику(
Объект.Сотрудник,
ВремяРегистрации,
Объект.Организация,
Объект.Подразделение,
Объект.КоличествоСтавок,
Объект.ГрафикРаботы);
РассчитанныеВторичныеДанные = ПлановыеНачисленияСотрудников.РассчитатьВторичныеДанныеПлановыхНачислений(ТаблицаНачислений, ТаблицаПоказателей, КадровыеДанные);
ПлановыеНачисленияСотрудниковФормы.РезультатРасчетаВторичныхДанныхПоСотрудникуВДанныеФормы(
ЭтотОбъект,
РассчитанныеВторичныеДанные,
ГоловнаяОрганизация,
ОписаниеТаблицыНачислений,
ОписаниеДанныхСовокупнойСтавки);
Если МодульУправленческаяЗарплатаФормы <> Неопределено Тогда
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуПриПомещенииРезультатаРасчетаНачисленийВДанныеФормы(ЭтотОбъект, РассчитанныеВторичныеДанные);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
РассчитатьИтогиПоФОТ(ЭтотОбъект);
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтотОбъект, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
КонецПроцедуры
&НаСервере
Процедура ДанныеВРеквизит()
ТекущаяДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
ОписанияТаблиц = ОписанияТаблиц();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуДополнитьМассивОписанийТаблиц(ОписанияТаблиц);
КонецЕсли;
ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийДанныеВРеквизит(ЭтотОбъект, ОписанияТаблиц);
ЗарплатаКадрыРасширенный.ВводНачисленийДанныеВРеквизит(ЭтотОбъект, ОписанияТаблиц, 1);
УстановитьПредставленияКомандВводаСтажей();
Если Не РедактированиеСтрокиСписочногоДокумента Тогда
ИсправлениеДокументовЗарплатаКадры.ПрочитатьРеквизитыИсправления(ЭтотОбъект, "ПериодическиеСведения");
УстановитьПоляИсправления(ЭтотОбъект);
КонецЕсли;
СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботы =
Не Объект.НачалоТрудовойДеятельности
И (ЗначениеЗаполнено(Объект.ВидЗаявленияОВыбореСпособаВеденияТрудовойКнижки)
Или ЗначениеЗаполнено(Объект.ДатаЗаявленияОВыбореСпособаВеденияТрудовойКнижки));
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
УсловияПриемаПриОткрытии = Объект.УсловияПриема;
КонецПроцедуры
&НаСервере
Процедура РеквизитВДанные(ТекущийОбъект)
УстановитьПривилегированныйРежим(Истина);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтотОбъект, ТекущийОбъект, ОписаниеТаблицыВидовРасчета, 1);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыЛьгот();
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтотОбъект, ТекущийОбъект, ОписаниеТаблицыВидовРасчета, 1, Ложь);
ОтражениеЗарплатыВБухучетеРасширенный.БухучетНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписанияТаблиц());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуРеквизитВДанные(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
Если Не СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботы Тогда
ТекущийОбъект.ВидЗаявленияОВыбореСпособаВеденияТрудовойКнижки =
Перечисления.ВидыЗаявленийОПредоставленииСведенийОТрудовойДеятельности.ПустаяСсылка();
ТекущийОбъект.ДатаЗаявленияОВыбореСпособаВеденияТрудовойКнижки = '00010101';
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Функция ПроверкаПередЗаписьюНаСервере(РезультатыПроверки, ДанныеОЗанятыхПозициях) Экспорт
Возврат КадровыйУчетРасширенный.ПроверкаСоответствияШтатномуРасписанию(ДанныеОЗанятыхПозициях, Объект.Ссылка, Истина, РезультатыПроверки, Объект.ИсправленныйДокумент);
КонецФункции
&НаКлиенте
Функция ПолучитьДанныеОЗанятыхПозициях() Экспорт
ДанныеОЗанятыхПозициях = Новый Массив;
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ОбщегоНазначенияКлиент.ДатаСеанса());
ЭлементДанных.Период = ВремяРегистрации;
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность);
ЭлементДанных.Сотрудник = Объект.Сотрудник;
ЭлементДанных.КоличествоСтавок = Объект.КоличествоСтавок;
Если ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
ДанныеОНачислениях = КадровыйУчетРасширенныйКлиентСервер.ДанныеОНачисленияхВФорме(
ЭтотОбъект,
Объект.Начисления,
Объект.Показатели,
ОписаниеТаблицыНачислений());
ЭлементДанных.ФОТ = ФОТ;
ЭлементДанных.Грейд = Объект.Грейд;
Иначе
ДанныеОНачислениях = Неопределено;
КонецЕсли;
ЭлементДанных.ДанныеОНачислениях = ДанныеОНачислениях;
ДанныеОЗанятыхПозициях.Добавить(ЭлементДанных);
Если ЗначениеЗаполнено(Объект.ДатаЗавершенияТрудовогоДоговора) Тогда
ЭлементДанных = УправлениеШтатнымРасписаниемКлиентСервер.СтруктураДанныхОЗанятыхПозициях(ОбщегоНазначенияКлиент.ДатаСеанса());
ЭлементДанных.Период = Объект.ДатаЗавершенияТрудовогоДоговора;
ЭлементДанных.ПозицияШтатногоРасписания = ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность);
ЭлементДанных.Сотрудник = Объект.Сотрудник;
ЭлементДанных.КоличествоСтавок = - Объект.КоличествоСтавок;
ЭлементДанных.ДанныеОНачислениях = Неопределено;
ДанныеОЗанятыхПозициях.Добавить(ЭлементДанных);
КонецЕсли;
Возврат ДанныеОЗанятыхПозициях;
КонецФункции
&НаСервере
Процедура УстановитьФункциональныеОпцииФормы()
ПараметрыФО = Новый Структура("Организация", Объект.Организация);
УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыФО);
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
ЗаполнитьГрафикРаботыПоУмолчанию();
ЗаполнитьДанныеФормыПоОрганизации();
ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей();
УстановитьФункциональныеОпцииФормы();
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ПрочитатьРазмерАвансаПоУмолчанию(Истина);
УстановитьВидЗанятостиНовогоСотрудника();
ЭлектронныеТрудовыеКнижки.ЗаполнитьНаименованиеДокумента(Объект, "ПриемНаРаботу");
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.ДополнитьФормуКадровогоПриказа(ЭтотОбъект,,, Истина);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПодразделениеПриИзмененииНаСервере()
Если ЗначениеЗаполнено(Объект.Подразделение) Тогда
ЗаполнитьГрафикРаботыПоУмолчанию();
КонецЕсли;
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьСвойстваЭлементаРабочееМестоВФормеДокумента(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ДанныеДолжности(Перезаполнить = Ложь)
Данные = Неопределено;
Если Перезаполнить Или ДанныеДолжности = Неопределено Тогда
КадровыйУчетФормыРасширенный.УстановитьДанныеДолжностиВФорме(
ЭтотОбъект, ВремяРегистрации, Объект.Должность, Объект.ДолжностьПоШтатномуРасписанию, ТекущаяДолжностьПоШтатномуРасписанию);
КонецЕсли;
Если ДанныеДолжности <> Неопределено Тогда
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьШтатноеРасписание") Тогда
Данные = ДанныеДолжности.Получить(Объект.ДолжностьПоШтатномуРасписанию);
Иначе
Данные = ДанныеДолжности.Получить(Объект.Должность);
КонецЕсли;
КонецЕсли;
Возврат Данные;
КонецФункции
&НаСервере
Процедура ЗаполнитьПоПозицииНаСервере(ЗаполнитьРабочееМесто = Истина)
РеквизитыПозиции = ДанныеДолжности(Истина);
Если РеквизитыПозиции <> Неопределено Тогда
Объект.Подразделение = РеквизитыПозиции.Подразделение;
Объект.Должность = РеквизитыПозиции.Должность;
Объект.ТрудоваяФункция = РеквизитыПозиции.ТрудоваяФункция;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда")
И (ЗаполнитьРабочееМесто Или Не ЗначениеЗаполнено(Объект.РабочееМесто)) Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьРабочееМестоВФормеДокумента(ЭтотОбъект);
РабочееМестоПриИзмененииНаСервере()
КонецЕсли;
ЗапомнитьУсловияПриемаПозицииШтатногоРасписания();
УстановитьПривилегированныйРежим(Истина);
ЗаполнитьГрафикРаботыПоУмолчанию();
ЗаполнитьНачисленияПоПозицииНаСервере();
ПрочитатьТарифнуюСетку();
ЗаполнитьПКУПоУмолчанию();
ЗаполнитьРазрядПоУмолчанию();
ЗаполнитьГрейдПоУмолчанию();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуУстановитьОтображениеЭлементовФормы(ЭтотОбъект, Объект.ДатаПриема, ОграниченияНаУровнеЗаписей);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект);
КонецЕсли;
РассчитатьФОТНаСервере();
ЗаполнитьЕжегодныеОтпускаНаСервере();
УстановитьУсловияПриема(ЭтотОбъект);
ЗаполнитьЛьготыПоПозиции();
РассчитатьРазмерЛьготНаСервере();
ЗаполнитьБухучетПоПозицииШтатногоРасписания();
УстановитьПривилегированныйРежим(Ложь);
ТекущаяДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьБухучетПоПозицииШтатногоРасписания()
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ИменаРеквизитов = "СпособОтраженияЗарплатыВБухучете,СтатьяФинансирования,ОтношениеКЕНВД";
БухучетПозиции = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ДолжностьПоШтатномуРасписанию,ИменаРеквизитов);
Объект.СтатьяФинансирования = БухучетПозиции.СтатьяФинансирования;
Объект.СпособОтраженияЗарплатыВБухучете = БухучетПозиции.СпособОтраженияЗарплатыВБухучете;
Объект.ОтношениеКЕНВД = БухучетПозиции.ОтношениеКЕНВД;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьГрафикРаботыПоУмолчанию()
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЗначенияДляЗаполнения = Новый Структура;
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.Организация");
ФиксированныеЗначения = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Организация");
ЗначенияДляЗаполнения.Вставить("Подразделение", "Объект.Подразделение");
Если ЗначениеЗаполнено(Объект.Подразделение) Тогда
ФиксированныеЗначения.Добавить("Подразделение")
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ЗначенияДляЗаполнения.Вставить("ДолжностьПоШтатномуРасписанию", "Объект.ДолжностьПоШтатномуРасписанию");
ФиксированныеЗначения.Добавить("ДолжностьПоШтатномуРасписанию")
КонецЕсли;
ЗначенияДляЗаполнения.Вставить("ГрафикРаботы", "Объект.ГрафикРаботы");
ПрежнийГрафик = Объект.ГрафикРаботы;
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтотОбъект, ЗначенияДляЗаполнения, ФиксированныеЗначения);
Если Не ЗначениеЗаполнено(Объект.ГрафикРаботы) Тогда
Объект.ГрафикРаботы = ПрежнийГрафик;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПКУПоУмолчанию()
БылПКУ = Объект.ПКУ;
РазрядыКатегорииДолжностей.ЗаполнитьПКУСотрудникаПоУмолчанию(
ЭтотОбъект, "Объект.ПКУ", Объект.ДатаПриема, Объект.ДолжностьПоШтатномуРасписанию);
Если ЗначениеЗаполнено(Объект.ПКУ) И Объект.ПКУ <> БылПКУ Тогда
ПерезаполнитьДанныеТарифнойСетки = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьРазрядПоУмолчанию()
БылРазряд = Объект.РазрядКатегория;
РазрядыКатегорииДолжностей.ЗаполнитьРазрядКатегориюСотрудникаПоУмолчанию(
ЭтотОбъект, "Объект.РазрядКатегория", ТарифнаяСетка, Объект.Должность,
Объект.ДолжностьПоШтатномуРасписанию, Объект.Сотрудник, Объект.ДатаПриема);
Если ЗначениеЗаполнено(Объект.РазрядКатегория) И Объект.РазрядКатегория <> БылРазряд Тогда
ПерезаполнитьДанныеТарифнойСетки = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьГрейдПоУмолчанию()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
Позиция = ?(ИспользоватьШтатноеРасписание, Объект.ДолжностьПоШтатномуРасписанию, Объект.Должность);
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
Объект.Грейд = МодульГрейды.ГрейдПозиции(Позиция);
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ГрейдПриИзмененииНаСервере()
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.УстановитьЗначениеПодсказкиГрейда(ЭтотОбъект, Объект.Грейд);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачисленияПоПозицииНаСервере()
Если ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
УстановитьПривилегированныйРежим(Истина);
ПараметрыЗаполнения = КадровыйУчетРасширенный.ПараметрыЗаполненияНачисленийПоПозицииШтатногоРасписания();
ПараметрыЗаполнения.ДатаСобытия = Объект.ДатаПриема;
ПараметрыЗаполнения.Сотрудник = Объект.Сотрудник;
ПараметрыЗаполнения.РазрядКатегорияНадбавки = Объект.РазрядКатегория;
ПараметрыЗаполнения.ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ПараметрыЗаполнения.ДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
ПараметрыЗаполнения.ТекущаяДолжностьПоШтатномуРасписанию = ТекущаяДолжностьПоШтатномуРасписанию;
ПараметрыЗаполнения.ПКУ = Объект.ПКУ;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриемНаРаботуДополнитьПараметрыЗаполненияНачисленийПоПозицииШтатногоРасписания(ПараметрыЗаполнения);
КонецЕсли;
КадровыйУчетРасширенный.ЗаполнитьНачисленияПоПозиции(ЭтотОбъект, ПараметрыЗаполнения);
УстановитьПредставленияКомандВводаСтажей();
УстановитьПривилегированныйРежим(Ложь);
КонецЕсли;
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЕжегодныеОтпускаНаСервере()
ДанныеДокумента = ОстаткиОтпусков.ОписаниеПараметровДанныхКадровогоДокумента();
ДанныеДокумента.Регистратор = Объект.Ссылка;
ДанныеДокумента.Сотрудник = Объект.Сотрудник;
ДанныеДокумента.ДатаСобытия = Объект.ДатаПриема;
ДанныеНовойПозиции = ОстаткиОтпусков.ОписаниеПараметровДанныхПозиции();
ДанныеНовойПозиции.ДолжностьПоШтатномуРасписанию = Объект.ДолжностьПоШтатномуРасписанию;
ДанныеНовойПозиции.Подразделение = Объект.Подразделение;
ДанныеНовойПозиции.Должность = Объект.Должность;
ДанныеНовойПозиции.Территория = Объект.Территория;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТрудаФормы = ОбщегоНазначения.ОбщийМодуль("ОхранаТрудаФормы");
МодульОхранаТрудаФормы.ДополнитьДанныеПозицииРабочимМестом(ЭтотОбъект, ДанныеНовойПозиции);
КонецЕсли;
ОстаткиОтпусков.ЗаполнитьПоложеннымиПравамиСотрудника(Объект.ЕжегодныеОтпуска, ДанныеДокумента, ДанныеНовойПозиции);
УстановитьНадписьПраваНаОтпуск();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыНачислений()
ОписаниеТаблицыВидовРасчета =
РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Истина, Ложь);
ОписаниеТаблицыВидовРасчета.Вставить("ЗапретитьИзменениеПоказателяТарифнойСетки", Истина);
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыЛьгот()
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Ложь, Ложь);
ОписаниеТаблицыВидовРасчета.ИмяТаблицы = "Льготы";
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаВидРасчета = "Льгота";
ОписаниеТаблицыВидовРасчета.ПутьКДанным = "Объект.Льготы";
ОписаниеТаблицыВидовРасчета.ПутьКДаннымПоказателей = "Объект.Показатели";
ОписаниеТаблицыВидовРасчета.НомерТаблицы = 1;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаФиксРасчет = "ЛьготыФиксРасчет";
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыПроверяемыеНаСоответствие(КоличествоПоказателей, ЧтениеБезОграничений)
РеквизитыПроверяемыеНаСоответствие = Новый Структура("РеквизитыШапки,ТабличныеЧасти", Новый Соответствие, Новый Соответствие);
РеквизитыПроверяемыеНаСоответствие.РеквизитыШапки.Вставить("ДолжностьПоШтатномуРасписанию", "ПозицияШтатногоРасписания");
РеквизитыПроверяемыеНаСоответствие.РеквизитыШапки.Вставить("КоличествоСтавок", "КоличествоСтавок");
Если ЧтениеБезОграничений Тогда
ОписаниеСоответствияПоказателей = Новый Соответствие;
Для НомерПоказателя = 1 По КоличествоПоказателей Цикл
ОписаниеСоответствияПоказателей.Вставить("Показатель" + НомерПоказателя, "Показатель" + НомерПоказателя + "НеСоответствуетПозиции");
ОписаниеСоответствияПоказателей.Вставить("Значение" + НомерПоказателя, "Значение" + НомерПоказателя + "НеСоответствуетПозиции");
КонецЦикла;
СтруктураОписанияТЧНачисления = УправлениеШтатнымРасписаниемКлиентСервер.ОписаниеРеквизитовПроверяемыхНаСоответствие();
СтруктураОписанияТЧНачисления.СтруктураПоиска = Новый Структура("Начисление");
РеквизитНесоответствияСтроки = Новый Структура("ИмяРеквизита,ИмяРеквизитаНесоответствия", "Начисление", "НачислениеНеСоответствуетПозиции");
СтруктураОписанияТЧНачисления.РеквизитНесоответствияСтроки = РеквизитНесоответствияСтроки;
СтруктураОписанияТЧНачисления.РасшифровкаНачислений = Истина;
СтруктураОписанияТЧНачисления.ОписаниеСоответствияПоказателей = ОписаниеСоответствияПоказателей;
СтруктураОписанияТЧНачисления.МаксимальноеКоличествоПоказателей = КоличествоПоказателей;
РеквизитыПроверяемыеНаСоответствие.ТабличныеЧасти.Вставить("Начисления", СтруктураОписанияТЧНачисления);
КонецЕсли;
Возврат РеквизитыПроверяемыеНаСоответствие;
КонецФункции
&НаКлиенте
Функция РеквизитыПроверяемыеНаСоответствиеНаКлиенте() Экспорт
Возврат РеквизитыПроверяемыеНаСоответствие(
ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтотОбъект, ОписаниеТаблицыНачислений(),, 3), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
КонецФункции
&НаСервере
Процедура УстановитьВидЗанятостиНовогоСотрудника()
УстановитьПривилегированныйРежим(Истина);
УстановитьВидЗанятостиНовогоСотрудника = Истина;
Если РедактированиеСтрокиСписочногоДокумента
И Не ПустаяСтрока(АдресСпискаПодобранныхСотрудников) Тогда
ПодобранныеСотрудники = ПолучитьИзВременногоХранилища(АдресСпискаПодобранныхСотрудников);
Если ПодобранныеСотрудники.Найти(Объект.Сотрудник) = Неопределено Тогда
Если КадровыйУчетРасширенный.УстановитьВидЗанятостиНовогоСотрудникаВСтрокеПриемаНаРаботуСписком(Объект, ПодобранныеСотрудники) Тогда
УстановитьВидЗанятостиНовогоСотрудника = Ложь;
КонецЕсли;;
КонецЕсли;
КонецЕсли;
Если УстановитьВидЗанятостиНовогоСотрудника Тогда
Объект.ВидЗанятости = СотрудникиВызовСервера.ПолучитьВидЗанятостиДляНовогоСотрудника(Объект.Сотрудник, Объект.Организация);
ПриИзмененииВидаЗанятости(ЭтотОбъект);
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
КонтрактыДоговорыСотрудников.УточнитьВидЗанятостиВПриказеОПриемеНаРаботуПоВидуДоговора(Объект);
КонецЕсли;
УстановитьУсловияПриема(ЭтотОбъект);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ПриИзмененииВидаЗанятости(Форма)
Если Не (Форма.Объект.ВидЗанятости = ПредопределенноеЗначение("Перечисление.ВидыЗанятости.ОсновноеМестоРаботы")
Или Форма.Объект.ВидЗанятости = ПредопределенноеЗначение("Перечисление.ВидыЗанятости.Совместительство")) Тогда
Форма.Объект.ОтразитьВТрудовойКнижке = ЭлектронныеТрудовыеКнижкиВызовСервера.ОтражениеВТрудовойКнижкеСовместительств();
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьОтображенияВТрудовойКнижке(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СведенияТрудовойКнижкиГруппа",
"Доступность",
Форма.Объект.ОтразитьВТрудовойКнижке);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НачалоТрудовойДеятельности",
"Видимость",
(Не ЗначениеЗаполнено(Форма.Объект.ДатаПриема) Или Форма.Объект.ДатаПриема >= '20210101')
И (Форма.ЭтоНачалоТрудовойДеятельности Или Форма.Объект.НачалоТрудовойДеятельности));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботы",
"Доступность",
Не Форма.Объект.НачалоТрудовойДеятельности);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ЗаявлениеОВыбореСпособаВеденияТрудовойКнижкиГруппа",
"Доступность",
Форма.СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботы);
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьЗаголовокГруппыВторогоДокументаОснования(
Форма, Форма.РедактированиеСтрокиСписочногоДокумента);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьУсловияПриема(Форма)
УсловияПриема = УсловияПриемаПоВидуЗанятостиИВидуДоговора(Форма.Объект.ВидЗанятости, Форма.Объект.ВидДоговора, Форма.Объект.КоличествоСтавок, Форма.СвойстваГрафикаРаботы);
Если УсловияПриема <> Форма.УсловияПриемаПриОткрытии Тогда
Если ПустаяСтрока(Форма.Объект.УсловияПриема)Тогда
Форма.Объект.УсловияПриема = УсловияПриема + ?(ПустаяСтрока(Форма.УсловияПриемаПозицииШтатногоРасписания), "",
", " + Форма.УсловияПриемаПозицииШтатногоРасписания);
ИначеЕсли СтрНайти(Форма.Объект.УсловияПриема, Форма.УсловияПриемаПриОткрытии) > 0 Тогда
Форма.Объект.УсловияПриема = СтрЗаменить(Форма.Объект.УсловияПриема, Форма.УсловияПриемаПриОткрытии, УсловияПриема);
Иначе
Форма.Объект.УсловияПриема = УсловияПриема + ", " + Форма.Объект.УсловияПриема;
КонецЕсли;
Иначе
Если Не ЗначениеЗаполнено(Форма.Объект.ДолжностьПоШтатномуРасписанию)
И Не ПустаяСтрока(Форма.УсловияПриемаПозицииШтатногоРасписания) Тогда
Форма.Объект.УсловияПриема = СтрЗаменить(Форма.Объект.УсловияПриема, ", " + Форма.УсловияПриемаПозицииШтатногоРасписания, "");
Форма.УсловияПриемаПозицииШтатногоРасписания = "";
ИначеЕсли Не ПустаяСтрока(Форма.УсловияПриемаПозицииШтатногоРасписания)
И Не СтрНайти(Форма.Объект.УсловияПриема, Форма.УсловияПриемаПозицииШтатногоРасписания) Тогда
Форма.Объект.УсловияПриема = УсловияПриема + ", " + Форма.УсловияПриемаПозицииШтатногоРасписания;
КонецЕсли;
КонецЕсли;
Форма.УсловияПриемаПриОткрытии = УсловияПриема;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция УсловияПриемаПоВидуЗанятостиИВидуДоговора(ВидЗанятости, ВидДоговора, КоличествоСтавок, СвойстваГрафикаРаботы)
Если ВидДоговора = ПредопределенноеЗначение("Перечисление.ВидыДоговоровССотрудниками.КонтрактГосслужащего") Тогда
УсловияПриема = НСтр("ru='Замещение должности государственной гражданской службы'");
ИначеЕсли ВидДоговора = ПредопределенноеЗначение("Перечисление.ВидыДоговоровССотрудниками.ДоговорМуниципальногоСлужащего") Тогда
УсловияПриема = НСтр("ru='Замещение должности муниципальной службы'");
Иначе
Если ВидЗанятости = ПредопределенноеЗначение("Перечисление.ВидыЗанятости.ОсновноеМестоРаботы") Тогда
УсловияПриема = НСтр("ru='Основное место работы'");
Иначе
УсловияПриема = НСтр("ru='Работа по совместительству'");
КонецЕсли;
Если СвойстваГрафикаРаботы <> Неопределено И СвойстваГрафикаРаботы.НеполноеРабочееВремя И СвойстваГрафикаРаботы.СокращеннаяРабочаяНеделя Тогда
УсловияПриема = УсловияПриема + ", " + НСтр("ru='сокращенная рабочая неделя'");
ИначеЕсли СвойстваГрафикаРаботы <> Неопределено И СвойстваГрафикаРаботы.НеполноеРабочееВремя И СвойстваГрафикаРаботы.НеполныйРабочийДень Тогда
УсловияПриема = УсловияПриема + ", " + НСтр("ru='сокращенный рабочий день'");
ИначеЕсли КоличествоСтавок < 1 Тогда
УсловияПриема = УсловияПриема + ", " + НСтр("ru='сокращенная рабочая неделя'");
Иначе
УсловияПриема = УсловияПриема + ", " + НСтр("ru='полная занятость'");
КонецЕсли;
КонецЕсли;
Возврат УсловияПриема;
КонецФункции
&НаСервере
Процедура ЗапомнитьСвойстваГрафикаРаботы()
Если ЗначениеЗаполнено(Объект.ГрафикРаботы) Тогда
СвойстваГрафика = Новый ФиксированнаяСтруктура(
ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.ГрафикРаботы, "НеполноеРабочееВремя,СокращеннаяРабочаяНеделя,НеполныйРабочийДень"));
Иначе
СвойстваГрафика = Неопределено;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьРеквизитФормыПоПути(
ЭтотОбъект, "СвойстваГрафикаРаботы", СвойстваГрафика);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗапомнитьСвойстваГрафикаРаботыПредыдущего(Форма)
Если Форма.СвойстваГрафикаРаботы <> Неопределено Тогда
Форма.СвойстваГрафикаРаботыПредыдущего = Новый ФиксированнаяСтруктура(Новый Структура(Форма.СвойстваГрафикаРаботы));
Иначе
Форма.СвойстваГрафикаРаботыПредыдущего = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СотрудникПриИзмененииНаСервере()
ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей();
ПрочитатьВремяРегистрации();
ЗаполнитьСведенияСотрудника(Истина);
УстановитьВидЗанятостиНовогоСотрудника();
ЗаполнитьЕжегодныеОтпускаНаСервере();
УстановитьНадписьПраваНаОтпуск();
ЗаполнитьСведенияОКлассномЧинеРангеСотрудника();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
МодульКлассныеЧиныРанги.УстановитьПредставлениеКлассногоЧинаРанга(ЭтотОбъект.КлассныйЧинРангПредставление, Объект.Сотрудник);
КонецЕсли;
УстановитьОтображениеНадписей();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияСотрудника(ЗаполнитьДанныеДокумента = Ложь)
УстановитьЗначенияПоУмолчанию = Истина;
ДанныеЗаявления = Новый Структура("Дата,ВидЗаявления");
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Если ЗначениеЗаполнено(Объект.ДатаПриема) Тогда
ДатаСобытия = Объект.ДатаПриема;
Иначе
ДатаСобытия = ТекущаяДатаСеанса();
КонецЕсли;
ИсключаемыеРегистраторы = Новый Массив;
ИсключаемыеРегистраторы.Добавить(СсылкаНаОбъект);
Если ЗначениеЗаполнено(СсылкаНаИсправленныйДокумент) Тогда
ИсключаемыеРегистраторы.Добавить(СсылкаНаИсправленныйДокумент);
КонецЕсли;
ФизическоеЛицо = Объект.ФизическоеЛицо;
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Объект.Сотрудник, "ГоловнаяОрганизация,ВидЗастрахованногоЛица", ДатаСобытия);
Если КадровыеДанные.Количество() > 0 Тогда
ФизическоеЛицо = КадровыеДанные[0].ФизическоеЛицо;
ГоловнаяОрганизацияСотрудника = КадровыеДанные[0].ГоловнаяОрганизация;
ВидЗастрахованногоЛица = КадровыеДанные[0].ВидЗастрахованногоЛица;
ДанныеЗаявления = ЭлектронныеТрудовыеКнижки.ПоследнееЗаявлениеОВеденииТрудовойКнижки(
КадровыеДанные[0].ФизическоеЛицо, ДатаСобытия, ИсключаемыеРегистраторы);
УстановитьЗначенияПоУмолчанию = Ложь;
КонецЕсли;
ЗарплатаКадрыРасширенный.УстановитьЗначениеСевернойНадбавкиВФорме(ЭтотОбъект, Объект.Сотрудник, Объект.ДатаПриема, Объект.ФизическоеЛицо);
ЭтоНачалоТрудовойДеятельности = КадровыйУчет.ЭтоНачалоТрудовойДеятельности(ФизическоеЛицо, Объект.ДатаПриема, ИсключаемыеРегистраторы);
Если ЗаполнитьДанныеДокумента
И (Объект.ДатаПриема >= '20210101'
Или Не ЗначениеЗаполнено(Объект.ДатаПриема))Тогда
Если Не ЭтоНачалоТрудовойДеятельности Тогда
Объект.НачалоТрудовойДеятельности = Ложь;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ТекстПодсказки = "";
Если ЗначениеЗаполнено(ДанныеЗаявления.ВидЗаявления) Тогда
ТекстПодсказки = СтрШаблон(НСтр("ru = '%1 выбран способ - %2'"),
Формат(ДанныеЗаявления.Дата, "ДЛФ=D"), ДанныеЗаявления.ВидЗаявления);
КонецЕсли;
ЗарплатаКадрыКлиентСервер.УстановитьРасширеннуюПодсказкуЭлементуФормы(
ЭтотОбъект, "СпособВеденияТрудовойКнижкиВыбранныйПоПрежнемуМестуРаботы", ТекстПодсказки);
Если УстановитьЗначенияПоУмолчанию Тогда
ГоловнаяОрганизацияСотрудника = Справочники.Организации.ПустаяСсылка();
ВидЗастрахованногоЛица = Перечисления.ВидыЗастрахованныхЛицОбязательногоСтрахования.ГражданеРФ;
КонецЕсли;
СвязиПараметровВыбора = Новый Массив;
Если ЗначениеЗаполнено(ГоловнаяОрганизацияСотрудника) Тогда
Связь = Новый СвязьПараметраВыбора("Отбор.ГоловнаяОрганизация", "ГоловнаяОрганизацияСотрудника");
СвязиПараметровВыбора.Добавить(Связь);
КонецЕсли;
Элементы.Организация.СвязиПараметровВыбора = Новый ФиксированныйМассив(СвязиПараметровВыбора);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"УсловияРаботыИПроживанияИностранныхГраждан",
"Видимость",
ВидЗастрахованногоЛица <> Перечисления.ВидыЗастрахованныхЛицОбязательногоСтрахования.ГражданеРФ);
УстановитьВидимостьПредупрежденияОНезаполненномСтаже();
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоказРазмераАванса(Форма)
РасчетЗарплатыКлиентСервер.УстановитьПоказРазмераАванса(Форма);
КонецПроцедуры
&НаСервере
Процедура ДатаПриемаПриИзмененииНаСервере()
ПрочитатьВремяРегистрации();
Если ИспользоватьШтатноеРасписание
И ПолучитьФункциональнуюОпцию("ИспользоватьИсториюИзмененияШтатногоРасписания")
И ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
Если Объект.ДатаПриема < ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.ДолжностьПоШтатномуРасписанию, "ДатаУтверждения") Тогда
Объект.ДолжностьПоШтатномуРасписанию = Справочники.ШтатноеРасписание.ПустаяСсылка();
Иначе
Если ЗначениеЗаполнено(Объект.ДатаПриема) Тогда
ЗаполнитьПоПозицииНаСервере();
КонецЕсли;
КонецЕсли;
КонецЕсли;
УстановитьПредставленияКомандВводаСтажей();
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ЗарплатаКадрыРасширенный.УстановитьЗначениеСевернойНадбавкиВФорме(ЭтотОбъект, Объект.Сотрудник, Объект.ДатаПриема, Объект.ФизическоеЛицо);
УстановитьОтображениеНадписей();
ПодходящаяДатаДокумента = Документы.ПриемНаРаботу.ПодходящаяДатаДокумента(Объект.ДатаПриема);
Если ЗначениеЗаполнено(ПодходящаяДатаДокумента)
И ПодходящаяДатаДокумента < НачалоДня(Объект.Дата) Тогда
Объект.Дата = ПодходящаяДатаДокумента;
КонецЕсли;
ЗаполнитьСведенияОКлассномЧинеРангеСотрудника();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
МодульРабочиеМестаОхраныТрудаФормы = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТрудаФормы");
МодульРабочиеМестаОхраныТрудаФормы.УстановитьСвойстваЭлементаРабочееМестоВФормеДокумента(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект);
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДатаПриема)
И Объект.ДатаПриема < '20210101' Тогда
Объект.НачалоТрудовойДеятельности = Ложь;
КонецЕсли;
УстановитьДоступностьОтображенияВТрудовойКнижке(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойствоНачисленияУтверждены()
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
УстановитьЗначениеНачисленияУтверждены(Истина);
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтотОбъект, "НачисленияУтверждены");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьЗначениеНачисленияУтверждены(ЗначениеНачисленияУтверждены)
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
Если ЗначениеНачисленияУтверждены Тогда
Если Не Объект.БронированиеПозиции
Или Не ПолучитьФункциональнуюОпциюФормы("ИспользоватьБронированиеПозиций") Тогда
Объект.НачисленияУтверждены = Истина;
КонецЕсли;
Иначе
Объект.НачисленияУтверждены = Ложь;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьРасчетныхПолей()
ИменаЭлементов = Новый Массив;
ИменаЭлементов.Добавить("НачислениеИтогРазмерГлавное");
ИменаЭлементов.Добавить("РасчетчикГруппа");
ИменаЭлементов.Добавить("КоманднаяПанельНачисленийЛевая");
ИменаЭлементов.Добавить("ГруппаНачисленияИтогРазмер");
ИменаЭлементов.Добавить("Рассчитать");
ИменаЭлементов.Добавить("КоманднаяПанельНачисленийПравая");
ИменаЭлементов.Добавить("Начисления");
ИменаЭлементов.Добавить("Показатели");
ИменаЭлементов.Добавить("КомандныеПанелиЛьгот");
ИменаЭлементов.Добавить("ГруппаАванс");
ИменаЭлементов.Добавить("БухучетНачисленийРедактируемыхВОтдельныхПолях");
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейМногофункциональныхДокументов(ЭтотОбъект, ИменаЭлементов);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачисленияИтогРазмер",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачислениеИтогРазмерГлавное",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РазмерЛьгот",
"ТолькоПросмотр",
Истина);
Если ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоТарифныхСтавок") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиГруппа", "Видимость", Ложь);
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьВидимостьВкладаВФОТРНачисленийРедактируемыхВОтдельныхПолях(ЭтотОбъект, Элементы.РедактироватьФОТ.Пометка);
ЗарплатаКадрыРасширенный.УстановитьОтображениеНачисленийРедактируемыхВОтдельныхПолях(ЭтотОбъект);
ЗарплатаКадрыРасширенный.ВосстановитьОтображениеПроцентаСевернойНадбавки(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьРегистрацииНачислений()
ПраваНаДокумент = ЗарплатаКадрыРасширенный.ПраваНаМногофункциональныйДокумент(Объект);
РегистрацияНачисленийДоступна = ПраваНаДокумент.ПолныеПраваПоРолям;
ОграниченияНаУровнеЗаписей = Новый ФиксированнаяСтруктура(ПраваНаДокумент.ОграниченияНаУровнеЗаписей);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей()
БылиОграничения = ОграниченияНаУровнеЗаписей;
УстановитьДоступностьРегистрацииНачислений();
Если БылиОграничения.ЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений
Или БылиОграничения.ИзменениеБезОграничений <> ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений
Или БылиОграничения.ИзменениеКадровыхДанных <> ОграниченияНаУровнеЗаписей.ИзменениеКадровыхДанных Тогда
УстановитьЗначениеНачисленияУтверждены(ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений);
УстановитьВидимостьРасчетныхПолей();
Если БылиОграничения.ЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтогиПоФОТ(Форма)
Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
Форма.ФОТ = МодульУправленческаяЗарплатаКлиентСервер.ПриемНаРаботуРассчитатьИтогиПоФОТ(Форма, ОписаниеТаблицыНачислений());
Иначе
Форма.ФОТ = ЗарплатаКадрыРасширенныйКлиентСервер.ИтогиПоФОТ(Форма, ОписаниеТаблицыНачислений());
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставленияКомандВводаСтажей()
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
СтрокаСотрудник = ТаблицаСотрудников.Добавить();
СтрокаСотрудник.Сотрудник = Объект.Сотрудник;
СтрокаСотрудник.Период = Объект.ДатаПриема;
ЗарплатаКадрыРасширенный.УстановитьПредставленияКомандВводаСтажей(ЭтотОбъект, ТаблицаСотрудников, ОписаниеТаблицыВидовРасчета, 1);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииСтажа()
УстановитьПредставленияКомандВводаСтажей();
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииПроцентаСевернойНадбавки()
ЗарплатаКадрыРасширенный.УстановитьЗначениеСевернойНадбавкиВФорме(ЭтотОбъект, Объект.Сотрудник, Объект.ДатаПриема, Объект.ФизическоеЛицо);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьТарифнуюСетку()
РазрядыКатегорииДолжностей.ПрочитатьДанныеТарифныхСетокДолжностиВФорму(ЭтотОбъект, Объект.Должность, Объект.ДолжностьПоШтатномуРасписанию, Объект.ДатаПриема);
КонецПроцедуры
&НаСервере
Процедура ДолжностьПриИзмененииНаСервере()
УстановитьПривилегированныйРежим(Истина);
РеквизитыДолжности = ДанныеДолжности(Истина);
Если РеквизитыДолжности <> Неопределено Тогда
Объект.ТрудоваяФункция = РеквизитыДолжности.ТрудоваяФункция;
КонецЕсли;
ПрочитатьТарифнуюСетку();
ЗаполнитьРазрядПоУмолчанию();
ЗаполнитьДанныеТарифнойСеткиНаСервере();
ЗаполнитьГрейдПоУмолчанию();
ЗаполнитьЛьготыПоПозиции();
РассчитатьРазмерЛьготНаСервере();
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
ЗаполнитьЕжегодныеОтпускаНаСервере();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.УстановитьЭлементыФормыДокумента(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеТарифнойСеткиНаСервере()
ДополнительныеПараметры = ЗарплатаКадрыРасширенныйКлиентСервер.ПараметрыЗаполненияЗначенийПоказателейТарифныхСеток();
ДополнительныеПараметры.ДатаСведений = ВремяРегистрации;
ДополнительныеПараметры.ТарифнаяСетка = ТарифнаяСетка;
ДополнительныеПараметры.ТарифнаяСеткаНадбавки = ТарифнаяСеткаНадбавки;
ДополнительныеПараметры.РазрядКатегория = РазрядКатегория;
ДополнительныеПараметры.РазрядКатегорияНадбавки = Объект.РазрядКатегория;
ДополнительныеПараметры.ПКУ = Объект.ПКУ;
ЗарплатаКадрыРасширенныйКлиентСервер.ЗаполнитьЗначенияПоказателейТарифныхСеток(ЭтотОбъект, Объект.Начисления, ОписаниеТаблицыНачислений(), 1, ДополнительныеПараметры);
ПерезаполнитьДанныеТарифнойСетки = Ложь;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьВремяРегистрации()
ВремяРегистрации = ЗарплатаКадрыРасширенный.ВремяРегистрацииСотрудникаДокумента(Объект.Ссылка, Объект.Сотрудник, Объект.ДатаПриема);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтображениеНадписей()
МассивСотрудников = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Сотрудник);
ЗарплатаКадрыРасширенный.УстановитьТекстНадписиОДокументахВведенныхНаДату(ЭтотОбъект, ВремяРегистрации,
МассивСотрудников, Объект.Ссылка, ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, Объект.ИсправленныйДокумент);
КадровыеРешенияФормы.УстановитьОтображениеНадписейВКадровомДокументе(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеФормыПоОрганизации()
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Возврат;
КонецЕсли;
ЗапрашиваемыеЗначения = Новый Структура;
ЗапрашиваемыеЗначения.Вставить("Организация", "Объект.Организация");
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтотОбъект, ЗапрашиваемыеЗначения, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Организация"));
ПодписиДокументов.ЗаполнитьПодписиПоОрганизации(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииКоличестваСтавок(Результат, ДополнительныеПараметры) Экспорт
УстановитьУсловияПриема(ЭтотОбъект);
КоличествоСтавокПредыдущее = Объект.КоличествоСтавок;
ЗаполнитьНачисленияПоПозицииНаСервере();
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЛьготыПоПозиции()
Если ИспользоватьШтатноеРасписание И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ПрочитатьЛьготыПозиции(ЭтотОбъект, Объект.ДолжностьПоШтатномуРасписанию, ОписаниеТаблицыЛьгот(), Ложь);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьРазмерЛьготНаКлиенте()
РассчитатьРазмерЛьготНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьРазмерЛьготНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.РассчитатьРазмерЛьготВФормеСОднимСотрудником(ЭтотОбъект, ОписаниеТаблицыЛьгот());
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтогиПоРазмеруЛьгот(Форма)
Форма.РазмерЛьгот = ЗарплатаКадрыРасширенныйКлиентСервер.ИтогиПоФОТ(Форма, ОписаниеТаблицыЛьгот());
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьРазмераЛьгот(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ЛьготыРазмер", "Видимость", Форма.Элементы.РедактироватьРазмерЛьгот.Пометка);
КонецПроцедуры
&НаСервере
Функция СтруктураСОписаниемДокумента()
Если РасчетНеобходимоВыполнить Тогда
РассчитатьФОТНаСервере();
КонецЕсли;
РеквизитВДанные(Объект);
ОписаниеДокумента = ЗарплатаКадрыРасширенныйВызовСервера.СтруктураПоМетаданным("Документ.ПриемНаРаботу");
ЗарплатаКадрыРасширенный.ЗаполнитьОбъектПоОбразцу(ОписаниеДокумента, Объект);
Возврат ОписаниеДокумента;
КонецФункции
&НаСервере
Функция ТребуетсяВводСтажа()
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
Возврат Ложь;
КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") Тогда
Возврат Ложь;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Сотрудник", Объект.Сотрудник);
Запрос.УстановитьПараметр("КатегорииСтажа", Документы.БольничныйЛист.КатегорииСтажаВЛисткеНетрудоспособности());
Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1
| СтажиФизическихЛиц.ФизическоеЛицо
|ИЗ
| РегистрСведений.СтажиФизическихЛиц КАК СтажиФизическихЛиц
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники
| ПО СтажиФизическихЛиц.ФизическоеЛицо = Сотрудники.ФизическоеЛицо
| И (Сотрудники.Ссылка = &Сотрудник)
| И (СтажиФизическихЛиц.ВидСтажа.КатегорияСтажа В (&КатегорииСтажа))";
РезультатЗапроса = Запрос.Выполнить();
Возврат РезультатЗапроса.Пустой();
КонецФункции
&НаСервереБезКонтекста
Функция ВидыСтажаВЛисткеНетрудоспособности() Экспорт
Возврат Документы.БольничныйЛист.ВидыСтажаВЛисткеНетрудоспособности();
КонецФункции
&НаСервере
Процедура УстановитьВидимостьПредупрежденияОНезаполненномСтаже()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "СтажиНеЗаданыГруппа", "Видимость", ТребуетсяВводСтажа());
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияОКлассномЧинеРангеСотрудника()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
СведенияОКлассномЧинеРанге = МодульКлассныеЧиныРанги.СведенияОКлассномЧинеРангеСотрудника(Объект.Сотрудник, ВремяРегистрации);
ЗаполнитьЗначенияСвойств(Объект, СведенияОКлассномЧинеРанге);
МодульКлассныеЧиныРангиКлиентСервер = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРангиКлиентСервер");
КлассныйЧинРангПредставление = МодульКлассныеЧиныРангиКлиентСервер.ПредставлениеКлассногоЧинаРанга(Объект.КлассныйЧинРанг, Объект.ДатаПрисвоения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КлассныйЧинРангПриИзменении(СведенияОКлассномЧине)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
ЗаполнитьЗначенияСвойств(Объект, СведенияОКлассномЧине);
Модифицированность = Истина;
МодульКлассныеЧиныРангиКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("КлассныеЧиныРангиКлиентСервер");
КлассныйЧинРангПредставление = МодульКлассныеЧиныРангиКлиентСервер.ПредставлениеКлассногоЧинаРанга(Объект.КлассныйЧинРанг, Объект.ДатаПрисвоения);
ВыполнитьРасчетФОТ(, Истина);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРангНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
МодульКлассныеЧиныРанги.ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРанг(ЭтотОбъект, Объект.Начисления, ОписаниеТаблицыНачислений(), 1, Объект.КлассныйЧинРанг, Объект.ДатаПриема);
КонецЕсли;
ПерезаполнитьДанныеОкладаНадбавкиЗаКлассныйЧинРанг = Ложь;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРангВСтрокеНачислений()
СтрокаНачислений = Объект.Начисления.НайтиПоИдентификатору(Элементы.Начисления.ТекущаяСтрока);
КоллекцияСтрокНачислений = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(СтрокаНачислений);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда
МодульКлассныеЧиныРанги = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
МодульКлассныеЧиныРанги.ЗаполнитьЗначениеОкладаНадбавкиЗаКлассныйЧинРанг(ЭтотОбъект, КоллекцияСтрокНачислений, ОписаниеТаблицыНачислений(), 1, Объект.КлассныйЧинРанг, Объект.ДатаПриема);
КонецЕсли;
КонецПроцедуры
#Область ЗаписьДокумента
&НаКлиенте
Процедура ЗаписатьИЗакрытьНаКлиенте(Результат, ДополнительныеПараметры) Экспорт
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи, ПараметрыЗаписи, ОповещениеЗавершения = Неопределено)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", ЗакрытьПослеЗаписи);
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Если РедактированиеСтрокиСписочногоДокумента Тогда
ЗавершитьРедактированиеСтрокиДокумента();
Иначе
РасчетЗарплатыРасширенныйКлиент.ВыполнитьРасчетСотрудникаПередЗаписьюДокумента(
ЭтотОбъект, "ЗаписатьНаКлиентеЗавершение", ДополнительныеПараметры, РегистрацияНачисленийДоступна);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиентеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
Если РасчетНеобходимоВыполнить Тогда
РассчитатьФОТНаКлиенте();
КонецЕсли;
ПараметрыЗаписи = ДополнительныеПараметры.ПараметрыЗаписи;
ОповещениеЗавершения = ДополнительныеПараметры.ОповещениеЗавершения;
ЗакрытьПослеЗаписи = ДополнительныеПараметры.ЗакрытьПослеЗаписи;
КадровыйУчетРасширенныйКлиент.ПередЗаписьюКадровогоДокументаВФорме(ЭтотОбъект, Объект, ПараметрыЗаписи, ОповещениеЗавершения, ЗакрытьПослеЗаписи);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область РедактированиеДанныхКонтрактаДоговора
&НаСервере
Функция ОписаниеФормыРедактирующейДанныеКонтрактаДоговора()
ОписаниеФормы = КонтрактыДоговорыСотрудниковФормы.ОписаниеФормыРедактирующейДанныеКонтрактаДоговора();
ОписаниеФормы.Вставить("ИмяЭлементаПредставитель", "Руководитель");
ОписаниеФормы.Вставить("ИмяЭлементаДолжностьПредставителя", "ДолжностьРуководителя");
ОписаниеФормы.Вставить("ОснованиеСрочногоДоговораПредыдущее", "ОснованиеСрочногоДоговораПредыдущее");
Возврат ОписаниеФормы;
КонецФункции
&НаСервере
Процедура СрочныйДоговорПриИзмененииНаСервере()
Объект.ДатаЗавершенияТрудовогоДоговора = '00010101';
Если НЕ Объект.СрочныйДоговор Тогда
Объект.СезонныйДоговор = Ложь;
КонецЕсли;
УстановитьДоступностьПолейСрочногоТрудовогоДоговора();
УстановитьОтображениеПодсказкиДлительностиИспытательногоСрока(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьПолейСрочногоТрудовогоДоговора()
КонтрактыДоговорыСотрудниковФормы.УстановитьДоступностьПолейСрочногоТрудовогоДоговора(ЭтотОбъект, ОписаниеФормыРедактирующейДанныеКонтрактаДоговора(), Истина, Объект.СрочныйДоговор);
КонецПроцедуры
&НаСервере
Процедура ВидДоговораПриИзмененииНаСервере()
КонтрактыДоговорыСотрудниковФормы.НастроитьФормуПоВидуДоговора(ЭтотОбъект, ОписаниеФормыРедактирующейДанныеКонтрактаДоговора(), Объект.ВидДоговора);
УстановитьУсловияПриема(ЭтотОбъект);
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуСодержанию(
ЭтотОбъект,
ОписаниеТаблицыНачислений(),
КадровыйУчетРасширенный.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуСодержанию(ЭтотОбъект));
КонецПроцедуры
&НаКлиенте
Процедура УсловияПриемаЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.УсловияПриема = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ИныеУсловияДоговораЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ИныеУсловияДоговора = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ОборудованиеРабочегоМестаЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ОборудованиеРабочегоМеста = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура СрокЗаключенияДоговораЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.СрокЗаключенияДоговора = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ОснованиеПредставителяНанимателяЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ОснованиеПредставителяНанимателя = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ВидАктаГосорганаЗавершениеВвода(Знач ВведенныйТекст, Знач ДополнительныеПараметры) Экспорт
Если ВведенныйТекст = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.ВидАктаГосоргана = ВведенныйТекст;
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура ЗапомнитьУсловияПриемаПозицииШтатногоРасписания()
Если ИспользоватьШтатноеРасписание И ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) Тогда
ДанныеПозиции = УправлениеШтатнымРасписанием.ДанныеПозицииШтатногоРасписания(Объект.ДолжностьПоШтатномуРасписанию, Объект.ДатаПриема, Ложь);
УсловияПриемаПозицииШтатногоРасписания = ДанныеПозиции.УсловияПриема;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ЕжегодныеОтпускаСотрудника()
СтрокиТЧЕжегодныеОтпуска = Объект.ЕжегодныеОтпуска.Выгрузить();
Возврат ОбщегоНазначения.ТаблицаЗначенийВМассив(СтрокиТЧЕжегодныеОтпуска);
КонецФункции
&НаСервере
Процедура ЗагрузитьЕжегодныеОтпуска(ЕжегодныеОтпуска)
Объект.ЕжегодныеОтпуска.Загрузить(ЕжегодныеОтпуска.Выгрузить());
УстановитьНадписьПраваНаОтпуск();
Модифицированность = Истина;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтображениеПодсказкиДлительностиИспытательногоСрока(Форма)
ТекстПодсказки = "";
Если ЗначениеЗаполнено(Форма.Объект.ДлительностьИспытательногоСрока) Тогда
Если ЗначениеЗаполнено(Форма.Объект.ДатаЗавершенияТрудовогоДоговора)
И ДобавитьМесяц(Форма.Объект.ДатаПриема, 6) > Форма.Объект.ДатаЗавершенияТрудовогоДоговора Тогда
ТекстПодсказки = НСтр("ru='При заключении трудового договора на срок от двух до шести месяцев испытание не может превышать двух недель'");
ИначеЕсли Форма.Объект.ДлительностьИспытательногоСрока > 3 Тогда
ТекстПодсказки = НСтр("ru='Срок испытания не может превышать трех месяцев, а для руководителей организаций и их заместителей, главных бухгалтеров и их заместителей, руководителей филиалов, представительств или иных обособленных структурных подразделений организаций - шести месяцев, если иное не установлено федеральным законом'");
КонецЕсли;
КонецЕсли;
ЗарплатаКадрыКлиентСервер.УстановитьРасширеннуюПодсказкуЭлементуФормы(
Форма, "ДлительностьИспытательногоСрока", ТекстПодсказки);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ДлительностьИспытательногоСрока",
"ОтображениеПодсказки",
?(ПустаяСтрока(ТекстПодсказки), ОтображениеПодсказки.Кнопка, ОтображениеПодсказки.ОтображатьСправа));
КонецПроцедуры
&НаСервере
Процедура ТерриторияПриИзмененииНаСервере()
ЗаполнитьЕжегодныеОтпускаНаСервере();
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
КонецПроцедуры
&НаСервере
Процедура УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях()
Если ИспользоватьШтатноеРасписание Тогда
ДолжностьСотрудника = Объект.ДолжностьПоШтатномуРасписанию;
Иначе
ДолжностьСотрудника = Объект.Должность;
КонецЕсли;
ЗарплатаКадрыРасширенный.УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях(
ЭтотОбъект, Объект.Сотрудник, ВремяРегистрации, Объект.Подразделение,
Объект.Организация, Объект.Территория, ДолжностьСотрудника);
ЗарплатаКадрыРасширенный.УстановитьОтображениеНачисленийРедактируемыхВОтдельныхПолях(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область АдаптацияУвольнение
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиРешенияЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат;
КонецЕсли;
ОбработкаНавигационнойСсылкиРешенияЗавершениеНаСервере(Результат, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура ОбработкаНавигационнойСсылкиРешенияЗавершениеНаСервере(Результат, ДополнительныеПараметры)
КадровыеРешенияФормы.ОбработкаНавигационнойСсылкиРешенияЗавершение(ЭтотОбъект, Результат, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура УстановитьНадписьПраваНаОтпуск()
ПраваНаОтпускаЗаполнены = (Объект.ЕжегодныеОтпуска.Количество() > 0);
НадписьПраваНаОтпуск = ОстаткиОтпусков.НадписьПраваНаОтпуск(Объект.ЕжегодныеОтпуска, ТолькоПросмотр);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РедактироватьЕжегодныеОтпуска",
"Заголовок",
?(ПраваНаОтпускаЗаполнены, НСтр("ru = 'Редактировать'"), НСтр("ru = 'Ввести права на отпуск'")));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НадписьПраваНаОтпуск",
"Видимость",
ПраваНаОтпускаЗаполнены ИЛИ ТолькоПросмотр);
КонецПроцедуры
&НаСервереБезКонтекста
Функция НомерСледующегоТрудовогоДоговора(Организация, НомераДоговоровТекущегоДокумента, ГодНомера)
Возврат КадровыйУчетРасширенный.НомерСледующегоТрудовогоДоговора(Организация, НомераДоговоровТекущегоДокумента, ГодНомера);
КонецФункции
&НаСервереБезКонтекста
Процедура ЗапомнитьРазмерАвансаПоУмолчанию(Аванс, Организация, СпособРасчетаАванса)
РасчетЗарплатыФормы.ЗапомнитьРазмерАвансаПоУмолчанию(
Аванс, Организация, СпособРасчетаАванса);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьРазмерАвансаПоУмолчанию(УстановитьРазмерАванса)
РазмерАвансаПоУмолчанию = РасчетЗарплатыФормы.РазмерАвансаВПроцентахПоУмолчанию(Объект.Организация);
Если УстановитьРазмерАванса Тогда
Если Объект.СпособРасчетаАванса = Перечисления.СпособыРасчетаАванса.ПроцентомОтТарифа Тогда
Объект.Аванс = РазмерАвансаПоУмолчанию;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЕНВД(ЭлементыФормы, ИспользуетсяЕНВД)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭлементыФормы,
"ОтношениеКЕНВД",
"Видимость",
ИспользуетсяЕНВД);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИспользуетсяЕНВД(Период)
Возврат ОтражениеЗарплатыВБухучете.ИспользуетсяЕНВД(Период);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьПодключаемыеКоманды(УправляемаяФорма)
ЭДОБЗККлиентСервер.ОбновитьКоманды(УправляемаяФорма, УправляемаяФорма.Объект, Истина);
КонецПроцедуры
&НаСервере
Процедура РабочееМестоПриИзмененииНаСервере()
УстановитьНастройкиРедактированияНачисленийВОтдельныхПолях();
РассчитатьФОТНаСервере();
ЗаполнитьЕжегодныеОтпускаНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПредупреждениеПоОплатеТрудаНадписьГлавноеОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.Решение);
КонецПроцедуры
&НаКлиенте
Процедура ПредупреждениеПоОплатеТрудаНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ПоказатьЗначение(, Объект.Решение);
КонецПроцедуры
&НаСервере
Функция ОписанияТаблиц()
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыНачислений());
ОписанияТаблиц.Добавить(ОписаниеТаблицыЛьгот());
Возврат ОписанияТаблиц;
КонецФункции
&НаСервере
Функция ОписанияТаблицБухучета()
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыБухучетНачислений());
ОписанияТаблиц.Добавить(ОписаниеТаблицыБухучетЛьгот());
ОписанияТаблиц.Добавить(ОписаниеТаблицыБухучетНачисленийРедактируемыхВОтдельныхПолях());
Возврат ОписанияТаблиц;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыБухучетНачислений()
ОписаниеТаблицы = ОписаниеТаблицыНачислений();
ОписаниеТаблицы.ИмяТаблицы = "БухучетНачислений";
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыБухучетЛьгот()
ОписаниеТаблицы = ОписаниеТаблицыЛьгот();
ОписаниеТаблицы.ИмяТаблицы = "БухучетЛьгот";
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыБухучетНачисленийРедактируемыхВОтдельныхПолях()
ОписаниеТаблицы = Новый Структура;
ОписаниеТаблицы.Вставить("ИмяТаблицы", "БухучетНачисленийРедактируемыхВОтдельныхПолях");
ОписаниеТаблицы.Вставить("ПутьКДанным", "БухучетНачисленийРедактируемыхВОтдельныхПолях");
ОписаниеТаблицы.Вставить("ИмяТаблицыБухучетНачислений", "БухучетНачисленийРедактируемыхВОтдельныхПолях");
ОписаниеТаблицы.Вставить("ИмяРеквизитаВидРасчета", "Начисление");
Возврат ОписаниеТаблицы;
КонецФункции
&НаСервере
Функция УстановитьВидимостьБухучетПлановыхНачислений()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СтраницаБухучетНачислений",
"Видимость",
ПолучитьФункциональнуюОпцию("РегистрироватьБухучетПлановыхНачислений"));
КонецФункции
&НаСервере
Процедура ВидКвотыПриИзмененииНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда
МодульТрудоустройствоПоКвотамФормы = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотамФормы");
МодульТрудоустройствоПоКвотамФормы.ПриИзмененииЭлементаФормыКадровогоПриказа(ЭтотОбъект, "ВидКвоты");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьПредупрежденияПоОплатеТруда()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеФормы = ОбщегоНазначения.ОбщийМодуль("АдаптацияУвольнениеФормы");
МодульАдаптацияУвольнениеФормы.УстановитьВидимостьПредупрежденияПоОплатеТруда(ЭтотОбъект, ФОТ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти