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