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