#Область ОписаниеПеременных
&НаКлиенте
Перем СтарыеЗначенияКонтролируемыхПолей;
&НаКлиенте
Перем СотрудникУдаляемойСтроки;
#КонецОбласти
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтаФорма);
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ПодписиДокументов.ПриСозданииНаСервере(ЭтаФорма);
РасчетЗарплатыРасширенныйФормы.ИнициализироватьМеханизмПересчетаДокументаПриРедактировании(ЭтаФорма);
Если Параметры.Ключ.Пустая() Тогда
ОграниченияНаУровнеЗаписей = Новый ФиксированнаяСтруктура("ЧтениеБезОграничений, ИзменениеБезОграничений, ИзменениеКадровыхДанных, ПлановыеНачисленияЧтениеБезОграничений, ПлановыеНачисленияИзменениеБезОграничений", Ложь, Ложь, Ложь, Ложь, Ложь);
КонецЕсли;
КадровыйУчетФормы.ФормаКадровогоДокументаПриСозданииНаСервере(ЭтаФорма);
УстановитьПривилегированныйРежим(Истина);
РасчетЗарплатыРасширенныйФормы.ДокументыПриСозданииНаСервере(ЭтаФорма);
УстановитьПривилегированныйРежим(Ложь);
Если Параметры.Ключ.Пустая() Тогда
Объект.ИзменитьНачисления = Ложь;
Если Параметры.Свойство("Сотрудник") И ЗначениеЗаполнено(Параметры.Сотрудник) Тогда
Объект.Сотрудник = Параметры.Сотрудник;
КонецЕсли;
ЗначенияДляЗаполнения = Новый Структура;
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.Организация");
ЗначенияДляЗаполнения.Вставить("Ответственный", "Объект.Ответственный");
ЗначенияДляЗаполнения.Вставить("Месяц", "Объект.ПериодРегистрации");
ЗначенияДляЗаполнения.Вставить("ДатаСобытия", "Объект.ДатаНачала");
ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтаФорма, ЗначенияДляЗаполнения);
ЗаполнитьПодписиПоОрганизацииНаСервере();
ЗарплатаКадрыРасширенный.УстановитьНаименованиеПервичногоДокумента(Объект);
ПриПолученииДанныхНаСервере(Объект);
РасчетЗарплатыРасширенный.УстановитьПланируемуюДатуВыплаты(ЭтотОбъект, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)));
УстановитьВидимостьКолонокПрогрессивногоНалога(Объект.ПланируемаяДатаВыплаты);
Если ЗначениеЗаполнено(Объект.Сотрудник) Тогда
УстановитьОсновногоСотрудника(Ложь);
ОбновитьДанныеПоСотруднику(Истина);
КонецЕсли;
Объект.НеНачислятьЗарплатуИНеВыплачиватьАвансВоВремяОтпуска = Истина;
ОтпускаПоУходуЗаРебенком.ЗаполнитьВидПособияДоПолутораЛет(ЭтотОбъект);
ОтпускаПоУходуЗаРебенком.ЗаполнитьВидПособияДоТрехЛет(ЭтотОбъект);
ЗаполнитьПериодРасчетаСреднегоЗаработка();
Иначе
Если Параметры.Свойство("ВыполнитьПерезаполнениеСведенийОСреднемЗаработке") Тогда
ОбновитьДанныеДляРасчетаСреднего(Истина);
РассчитатьНачисленияНаСервере(Истина);
КонецЕсли;
КонецЕсли;
РасчетЗарплатыРасширенныйФормы.УстановитьДоступныеХарактерыВыплаты(Элементы);
УстановитьВидимостьДатыДвиженийПФР();
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтаФорма);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужбаФормы");
Модуль.УстановитьПараметрыВыбораСотрудников(ЭтаФорма, "Сотрудник");
КонецЕсли;
ОкончательныйРасчетНДФЛ = Ложь;
ЭлементУО = ОбщегоНазначенияБЗК.ДобавитьУсловноеОформление(ЭтотОбъект, "ДанныеОДетяхСообщениеВФСС");
ОбщегоНазначенияБЗК.УстановитьПараметрУсловногоОформления(ЭлементУО, "Текст", НСтр("ru = '<Создать сообщение>'"));
ОбщегоНазначенияБЗК.ДобавитьОтборУсловногоОформления(ЭлементУО, "Объект.ДанныеОДетях.Заявление", ВидСравненияКомпоновкиДанных.НеЗаполнено);
ОбщегоНазначенияБЗК.ДобавитьОтборУсловногоОформления(ЭлементУО, "Объект.ДанныеОДетях.СообщениеВФСС", ВидСравненияКомпоновкиДанных.НеЗаполнено);
ВидИнойДокумент = Перечисления.ВидыПодтверждающихДокументовОтпускаПоУходу.ИнойДокументПодтверждающийРождениеРебенка;
ПутьКПолюВид = "Объект.ДанныеОДетях.ВидПодтверждающегоДокумента";
ЭлементУО = ОбщегоНазначенияБЗК.ДобавитьУсловноеОформление(ЭтотОбъект, "ДанныеОДетяхНаименованиеПодтверждающегоДокумента");
ОбщегоНазначенияБЗК.УстановитьПараметрУсловногоОформления(ЭлементУО, "ТолькоПросмотр", Истина);
ОбщегоНазначенияБЗК.ДобавитьОтборУсловногоОформления(ЭлементУО, ПутьКПолюВид, "<>", ВидИнойДокумент);
РасчетЗарплатыРасширенныйФормы.УстановитьПризнакНеобходимостиРасчета(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка);
ЭДОБЗК.ПриСозданииНаСервереФормыОбъекта(ЭтотОбъект, Отказ, СтандартнаяОбработка, Объект);
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументов = ОбщегоНазначения.ОбщийМодуль("УчетОригиналовПервичныхДокументов");
МодульУчетОригиналовПервичныхДокументов.ПриСозданииНаСервере_ФормаДокумента(ЭтотОбъект, Элементы.Шапка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
ДатыЗапретаИзменения.ОбъектПриЧтенииНаСервере(ЭтаФорма, ТекущийОбъект);
ЗаполнениеВыполнено = Ложь;
ПриПолученииДанныхНаСервере(ТекущийОбъект);
УстановитьВидимостьКолонокПрогрессивногоНалога(Объект.ПланируемаяДатаВыплаты);
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонтрольВеденияУчетаБЗК.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПриЧтенииНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект,
ПравоДоступа("Изменение", Метаданные.Документы.ОтпускПоУходуЗаРебенком));
ЭДОБЗК.ПриЧтенииНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
Если ПараметрыЗаписи.РежимЗаписи <> РежимЗаписиДокумента.ОтменаПроведения
И Не ПараметрыЗаписи.Свойство("ПроверкаПередЗаписьюВыполнена") Тогда
Отказ = Истина;
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если РасчетНеобходимоВыполнить Тогда
РассчитатьНачисленияИФОТНаСервере();
ЗарплатаКадрыРасширенный.ЗаполнитьТекущийОбъектОбъектомФормы(ТекущийОбъект, Объект);
КонецЕсли;
РеквизитыВДанные(ТекущийОбъект);
Если ЗаполнениеВыполнено Тогда
ТекущийОбъект.ДополнительныеСвойства.Вставить("УдалитьПерерасчетыСреднегоЗаработка", Истина);
КонецЕсли;
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи, Отказ);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность = ОбщегоНазначения.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональность");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональность.ПередЗаписьюНаСервере(
ЭтотОбъект,
ТекущийОбъект,
ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ПодписиДокументов.ПослеЗаписиНаСервере(ЭтаФорма);
ПрочитатьВремяРегистрации();
ДанныеНачисленийВРеквизит(ТекущийОбъект);
НесколькоРабочихМестОбработкаФормы(Ложь);
УстановитьОтображениеНадписей();
ОбновитьДанныеОДетях();
ПерерасчетЗарплаты.РегистрацияПерерасчетовПоПредварительнымДаннымВФоне(ТекущийОбъект.Ссылка);
КонтрольВеденияУчетаБЗК.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
БлокировкаИзмененияОбъектов.ПослеЗаписиНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
ЭДОБЗК.ПослеЗаписиНаСервереФормыОбъекта(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи, Объект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ПередЗакрытием(ЭтотОбъект, Объект, Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
Оповестить("Запись_ОтпускПоУходуЗаРебенком", ПараметрыЗаписи, Объект.Ссылка);
Оповестить("ЗаявкиСотрудниковЗаписанДокумент", Объект.Ссылка, ВладелецФормы);
Если ПараметрыЗаписи.Свойство("ИмяПроцедурыПослеЗаписи") Тогда
Обработчик = Новый ОписаниеОповещения(ПараметрыЗаписи.ИмяПроцедурыПослеЗаписи, ЭтотОбъект, ПараметрыЗаписи);
ПараметрыЗаписи.Удалить("ИмяПроцедурыПослеЗаписи");
ВыполнитьОбработкуОповещения(Обработчик, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "ИзмененСтажФизическогоЛица" И Источник.ВладелецФормы = ЭтаФорма Тогда
УстановитьПредставленияКомандВводаСтажей();
ИначеЕсли ИмяСобытия = "Запись_ЗаявлениеСотрудникаНаВыплатуПособия"
Или ИмяСобытия = "Запись_ИсходящееСообщениеОСтраховомСлучаеФСС" Тогда
ОбновитьДанныеОДетях();
ИначеЕсли ИмяСобытия = "ЗаписанПодчиненныйДокумент" И Источник = Объект.Ссылка Тогда
УстановитьИнфоНадписьЗамещения();
КонецЕсли;
ИсправлениеДокументовЗарплатаКадрыКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
ЭДОБЗККлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОбработчикОповещенияФормаДокумента(ИмяСобытия, ЭтотОбъект, Источник);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "Объект");
ДокументОбъект = РеквизитФормыВЗначение("Объект");
РеквизитыВДанные(ДокументОбъект);
Если Не ДокументОбъект.ПроверитьЗаполнение() Тогда
Отказ = Истина;
КонецЕсли;
ОбработатьСообщенияПользователю(ДокументОбъект);
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура НеНачислятьЗарплатуИНеВыплачиватьАвансВоВремяОтпускаПриИзменении(Элемент)
ОбновитьДоступностьЭлементовФормы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОрганизацияПриИзменении(Элемент)
ОрганизацияПриИзмененииНаСервере();
ВыполнитьРасчетНачислений();
КонецПроцедуры
&НаКлиенте
Процедура ДатаПриИзменении(Элемент)
ДатаПриИзмененииНаСервере();
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьОтображениеРеквизитовПервичногоДокумента(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура СотрудникПриИзменении(Элемент)
СотрудникПриИзмененииНаСервере();
ВыполнитьРасчетНачислений();
КонецПроцедуры
&НаКлиенте
Процедура ДатаИзмененияПриИзменении(Элемент)
ДатаНачалаПриИзмененииНаСервере();
ВыполнитьРасчетНачислений();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьНачисленияПриИзменении(Элемент)
ОбновитьДоступностьЭлементовФормы(ЭтаФорма)
КонецПроцедуры
&НаКлиенте
Процедура ВыплачиватьПособиеДоПолутораЛетПриИзменении(Элемент)
ВыплачиватьПособиеДоПолутораЛетПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура КоличествоДетейПриИзменении(Элемент)
КоличествоДетейПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура КоличествоПервыхДетейПриИзменении(Элемент)
КоличествоПервыхДетейПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПрименятьЛьготыПриНачисленииПособияПриИзменении(Элемент)
ПрименятьЛьготыПриНачисленииПособияПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ДатаОкончанияПособияДоПолутораЛетПриИзменении(Элемент)
ДатаОкончанияПособияДоПолутораЛетПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ВыплачиватьПособиеДоТрехЛетПриИзменении(Элемент)
ВыплачиватьПособиеДоТрехЛетПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РасчетПоПравилам2010ГодаПриИзменении(Элемент)
УстановитьДоступностьУчитыватьДанныеСтрахователей(ЭтаФорма);
РасчетПоПравилам2010ГодаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура УчитыватьЗаработокПредыдущихСтрахователейПриИзменении(Элемент)
УчитыватьЗаработокПредыдущихСтрахователейПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ПособиеДоПолутораЛетПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ПособиеДоТрехЛетПриИзменении(Элемент)
ПриИзмененииВидаПособияДоТрехЛет();
КонецПроцедуры
&НаКлиенте
Процедура ДатаОкончанияПособияДоТрехЛетПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаКлиенте
Процедура ПорядокРасчетаСтоимостиЕдиницыВремениПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестПриИзмененииРеквизитаФормыСвязанногоСТабличнойЧастью(ЭтаФорма, "ПорядокРасчетаСтоимостиЕдиницыВремени", "Объект.ПересчетТарифныхСтавок", "ПорядокРасчетаСтоимостиЕдиницыВремени");
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойПриИзменении(Элемент)
ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(ЭтаФорма, "Объект.ПериодРегистрации", "МесяцНачисленияСтрокой", Модифицированность);
ПриИзмененииМесяцаНачисления();
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("МесяцНачисленияСтрокойНачалоВыбораЗавершение", ЭтотОбъект);
ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(ЭтаФорма, ЭтаФорма, "Объект.ПериодРегистрации", "МесяцНачисленияСтрокой", , Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойНачалоВыбораЗавершение(ЗначениеВыбрано, ДополнительныеПараметры) Экспорт
ПриИзмененииМесяцаНачисления();
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойРегулирование(Элемент, Направление, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(ЭтаФорма, "Объект.ПериодРегистрации", "МесяцНачисленияСтрокой", Направление, Модифицированность);
ПодключитьОбработчикОжидания("ОбработчикОжиданияМесяцНачисленияПриИзменении", 0.3, Истина);
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура МесяцНачисленияСтрокойОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьЗарплатуПриИзменении(Элемент)
РассчитатьЗарплатуПриИзмененииНаСервере();
ВыполнитьРасчетНачислений();
КонецПроцедуры
&НаКлиенте
Процедура ИзменитьЛьготыПриИзменении(Элемент)
ОбновитьДоступностьЭлементовФормы(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НачисленияУтвержденыПриИзменении(Элемент)
УстановитьСвойствоНачисленияУтверждены(Объект.НачисленияУтверждены);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьДокументыВведенныеПозже(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьВведенныеНаДатуДокументы(ЭтотОбъект.ДокументыВведенныеПозже);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьРанееВведенныеДокументы(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьВведенныеНаДатуДокументы(ЭтотОбъект.РанееВведенныеДокументы);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПорядокВыплатыПриИзменении(Элемент)
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПланируемаяДатаВыплатыПриИзменении(Элемент)
Если Объект.ПорядокВыплаты = ПредопределенноеЗначение("Перечисление.ХарактерВыплатыЗарплаты.Межрасчет") Тогда
ВыполнитьРасчетНачислений();
КонецЕсли;
УстановитьВидимостьКолонокПрогрессивногоНалога(Объект.ПланируемаяДатаВыплаты);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗамещениеИнфоНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("ЦепочкиДокументовКлиент");
Модуль.ОткрытьФормуЗамещенияПоСсылке(ЭтаФорма, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗаполненностьДанныхИнформационныйТекстОбработкаНавигационнойСсылки(Элемент,
НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
УчетСреднегоЗаработкаКлиент.ПоказатьПричиныПерерасчетаСреднегоЗаработка(Объект.Ссылка,
СтандартнаяОбработка, НавигационнаяСсылкаФорматированнойСтроки);
КонецПроцедуры
#Область РеквизитыПервичногоДокумента
&НаКлиенте
Процедура НаименованиеПервичногоДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ОткрытьФормуСпискаЗначенийСтроковогоРеквизита(Элемент,
СтандартнаяОбработка, "ПервичныйДокумент", НСтр("ru = 'Первичные документы'"), НСтр("ru = 'Первичный документ'"));
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПервичногоДокументаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ТипЗнч(ВыбранноеЗначение) = Тип("Строка") Тогда
Объект.НаименованиеПервичногоДокумента = ВыбранноеЗначение;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПервичногоДокументаАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ПодборЗначенияСтроковогоРеквизита(Текст, ДанныеВыбора, СтандартнаяОбработка, "ПервичныйДокумент");
КонецПроцедуры
&НаКлиенте
Процедура ДатаПервичногоДокументаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Оповещение = Новый ОписаниеОповещения("ДатаПервичногоДокументаНачалоВыбораЗавершение", ЭтотОбъект);
ПоказатьВводДаты(Оповещение, ?(ЗначениеЗаполнено(Объект.ДатаПервичногоДокумента), Объект.ДатаПервичногоДокумента, Объект.Дата), НСтр("ru='Дата первичного документа'"), ЧастиДаты.Дата);
КонецПроцедуры
&НаКлиенте
Процедура ДатаПервичногоДокументаНачалоВыбораЗавершение(Дата, ДополнительныеПараметры) Экспорт
Если ЗначениеЗаполнено(Дата) Тогда
Объект.ДатаПервичногоДокумента = Дата;
ДатаПервичногоДокументаПредставление = Формат(Дата,"ДФ=dd.MM.yyyy");
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДатаПервичногоДокументаОчистка(Элемент, СтандартнаяОбработка)
Объект.ДатаПервичногоДокумента = Дата(1,1,1);
Модифицированность = Истина;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементПриИзменении(Элемент)
ПодписиДокументовКлиент.ПриИзмененииПодписывающегоЛица(ЭтаФорма, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПодписиДокументовЭлементНажатие(Элемент)
ПодписиДокументовКлиент.РасширеннаяПодсказкаНажатие(ЭтаФорма, Элемент.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов") Тогда
МодульУчетОригиналовПервичныхДокументовКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УчетОригиналовПервичныхДокументовКлиент");
МодульУчетОригиналовПервичныхДокументовКлиент.ОткрытьМенюВыбораСостояния(ЭтотОбъект,Элементы["ДекорацияСостояниеОригинала"]);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РешениеИнфоНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылка, СтандартнаяОбработка)
КадровыеРешенияКлиент.ОбработкаНавигационнойСсылкиРешения(ЭтотОбъект, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисления
&НаКлиенте
Процедура НачисленияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийВыбор(
ЭтаФорма, Элемент, Поле, СтандартнаяОбработка, 1, Элемент.ТекущиеДанные.РабочееМесто, Объект.ДатаНачала);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриАктивизацииСтроки(Элемент)
ОписаниеКоманднойПанелиНачислений = ОписаниеКоманднойПанелиНачислений();
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриАктивизацииСтроки(ЭтаФорма, "Начисления", "НачисленияНачисление", 1, ОписаниеКоманднойПанелиНачислений);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачисленияПриАктивизацииСтроки(ЭтаФорма, "Начисления", "НачисленияПредставлениеРабочегоМеста")
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока И Не Копирование Тогда
Если СотрудникиДокумента <> Неопределено
И СотрудникиДокумента.Количество() = 1 Тогда
Элемент.ТекущиеДанные.РабочееМесто = СотрудникиДокумента[0];
КонецЕсли;
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтаФорма, "Начисления", 1, , НоваяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПередУдалением(Элемент, Отказ)
Отказ = Истина;
ОписаниеКоманднойПанелиНачислений = ОписаниеКоманднойПанелиНачислений();
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийОтменитьНачисление(ЭтаФорма, "Начисления", 1, ОписаниеКоманднойПанелиНачислений);
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
Если НоваяСтрока Тогда
ОписаниеФормы = ОписаниеФормы();
Если НЕ ЭтаФорма[ОписаниеФормы.ИмяРеквизитаПризнакаНесколькихРабочихМест] Тогда
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные, ОписаниеФормы, ОписаниеТаблицыРабочихМест, ОписаниеТаблицыНачислений);
КонецЕсли;
КонецЕсли;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактированияВФормеСНесколькимиСотрудниками(
ЭтаФорма, Элемент, ОписаниеТаблицыНачислений) Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачисленияНачислениеПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ТекущиеДанные = Элементы.Начисления.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
Сотрудник = ТекущиеДанные.РабочееМесто;
Иначе
Сотрудник = Неопределено;
КонецЕсли;
СтруктураДанных = ДанныеСотрудника(Сотрудник);
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийНачислениеПриИзменении(ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Сотрудник,
СтруктураДанных.ТарифнаяСетка, СтруктураДанных.РазрядКатегория, ВремяРегистрации, СтруктураДанных.ТарифнаяСеткаНадбавки, СтруктураДанных.РазрядКатегорияНадбавки);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗначениеПоказателяПриИзмененииНачисления(Элемент)
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСНачислением(Элементы.Начисления.ТекущиеДанные,
ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтаФорма, ОписаниеТаблицыНачислений,, 1), 1, ОписаниеТаблицыНачислений, Объект.ДатаНачала);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НачисленияПредставлениеРабочегоМестаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестОбработкаВыбораРабочегоМеста(ЭтаФорма, ВыбранноеЗначение, ОписаниеТаблицыРабочихМест(ОписаниеФормы()), ОписаниеТаблицыНачислений());
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НачисленияПредставлениеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачалоВыбораРабочегоМеста(ЭтаФорма, ДанныеВыбора, ОписаниеТаблицыРабочихМест(ОписаниеФормы))
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
ТекстСообщения = НСтр("ru = 'Добавление начисления возможно только после выбора сотрудника'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "Объект.Сотрудник", , Отказ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПоказатели
&НаКлиенте
Процедура ПоказателиПриАктивизацииСтроки(Элемент)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаДополнительныхПоказателейПриАктивизацииСтроки(ЭтаФорма, "Показатели", "ПоказателиПоказатель", ОписаниеКоманднойПанелиПоказателей());
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПередУдалением(Элемент, Отказ)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаДополнительныхПоказателейОтменитьПоказатель(ЭтаФорма, "Показатели", ОписаниеКоманднойПанелиПоказателей(), Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 1);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если НоваяСтрока Тогда
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаДополнительныхПоказателейПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные);
ОписаниеТаблицыПоказателей = ОписаниеТаблицыПоказателей();
ОписаниеФормы = ОписаниеФормы();
Если НЕ ЭтаФорма[ОписаниеФормы.ИмяРеквизитаПризнакаНесколькихРабочихМест] Тогда
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные, ОписаниеФормы, ОписаниеТаблицыРабочихМест, ОписаниеТаблицыПоказателей);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПоказательПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 1);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиЗначениеПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСДополнительнымПоказателем(Элементы.Показатели.ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПоказателиПредставлениеРабочегоМестаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеФормы = ОписаниеФормы();
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ОписаниеТаблицыНачислений.Вставить("ИмяТаблицы", "Показатели");
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестОбработкаВыбораРабочегоМеста(ЭтаФорма, ВыбранноеЗначение, ОписаниеТаблицыРабочихМест(ОписаниеФормы), ОписаниеТаблицыНачислений);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПоказателиПредставлениеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачалоВыбораРабочегоМеста(ЭтаФорма, ДанныеВыбора, ОписаниеТаблицыРабочихМест(ОписаниеФормы))
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЛьготы
&НаКлиенте
Процедура ЛьготыПриАктивизацииСтроки(Элемент)
ОписаниеКоманднойПанелиЛьгот = ОписаниеКоманднойПанелиЛьгот();
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриАктивизацииСтроки(ЭтаФорма, "Льготы", "ЛьготыЛьгота", 1, ОписаниеКоманднойПанелиЛьгот);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачисленияПриАктивизацииСтроки(ЭтаФорма, "Льготы", "ЛьготыПредставлениеРабочегоМеста")
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
ТекстСообщения = НСтр("ru = 'Добавление льготы возможно только после выбора сотрудника'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "Объект.Сотрудник", , Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПередУдалением(Элемент, Отказ)
Отказ = Истина;
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийОтменитьНачисление(ЭтаФорма, "Льготы", 1, ОписаниеКоманднойПанелиЛьгот());
ПериодОжидания = ЗарплатаКадрыРасширенныйКлиент.ПериодОжиданияЗапускаАвтоматическогоРасчета();
Если ПериодОжидания > 0 Тогда
ПодключитьОбработчикОжидания("РассчитатьРазмерЛьготНаКлиенте", ПериодОжидания, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока И Не Копирование Тогда
Если СотрудникиДокумента <> Неопределено
И СотрудникиДокумента.Количество() = 1 Тогда
Элемент.ТекущиеДанные.РабочееМесто = СотрудникиДокумента[0];
КонецЕсли;
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтаФорма, "Льготы", 1, , НоваяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ОписаниеТаблицыЛьгот = ОписаниеТаблицыЛьгот();
Если НоваяСтрока Тогда
ОписаниеФормы = ОписаниеФормы();
Если НЕ ЭтаФорма[ОписаниеФормы.ИмяРеквизитаПризнакаНесколькихРабочихМест] Тогда
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные, ОписаниеФормы, ОписаниеТаблицыРабочихМест, ОписаниеТаблицыЛьгот);
КонецЕсли;
КонецЕсли;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактированияВФормеСНесколькимиСотрудниками(
ЭтаФорма, Элемент, ОписаниеТаблицыЛьгот) Тогда
ПериодОжидания = ЗарплатаКадрыРасширенныйКлиент.ПериодОжиданияЗапускаАвтоматическогоРасчета();
Если ПериодОжидания > 0 Тогда
ПодключитьОбработчикОжидания("РассчитатьРазмерЛьготНаКлиенте", ПериодОжидания, Истина);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыЛьготаПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыЛьгот();
ТекущиеДанные = Элементы.Льготы.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
Сотрудник = ТекущиеДанные.РабочееМесто;
Иначе
Сотрудник = Неопределено;
КонецЕсли;
СтруктураДанных = ДанныеСотрудника(Сотрудник);
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийНачислениеПриИзменении(ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Сотрудник,
СтруктураДанных.ТарифнаяСетка, СтруктураДанных.РазрядКатегория, ВремяРегистрации, СтруктураДанных.ТарифнаяСеткаНадбавки, СтруктураДанных.РазрядКатегорияНадбавки);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЛьготыПредставлениеРабочегоМестаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестОбработкаВыбораРабочегоМеста(ЭтаФорма, ВыбранноеЗначение, ОписаниеТаблицыРабочихМест(ОписаниеФормы()), ОписаниеТаблицыЛьгот());
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЛьготыПредставлениеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачалоВыбораРабочегоМеста(ЭтаФорма, ДанныеВыбора, ОписаниеТаблицыРабочихМест(ОписаниеФормы))
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗначениеПоказателяПриИзмененииЛьготы(Элемент)
ОписаниеТаблицыЛьгот = ОписаниеТаблицыЛьгот();
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьКомментарииДействийСНачислением(Элементы.Льготы.ТекущиеДанные,
ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтаФорма, ОписаниеТаблицыЛьгот,, 1), 1, ОписаниеТаблицыЛьгот, Объект.ДатаНачала);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыОплатаТруда
&НаКлиенте
Процедура ОплатаТрудаВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ПриНажатииПолеРаспределениеПоТерриториямУсловиямТруда(ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
Если Не СтандартнаяОбработка Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Элемент", Элемент);
ДополнительныеПараметры.Вставить("ВыбраннаяСтрока", ВыбраннаяСтрока);
ДополнительныеПараметры.Вставить("Поле", Поле);
Оповещение = Новый ОписаниеОповещения("ОплатаТрудаВыборЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна);
РасчетЗарплатыРасширенныйКлиент.ВыполнитьКомандуРасшифровкиЗначенияПоказателя(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка, Оповещение);
Если СтрНайти(Поле.Имя, "КомандаРедактированияРаспределения") <> 0 Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаВыборЗавершение(Результат, ДополнительныеПараметры) Экспорт
Элемент = ДополнительныеПараметры.Элемент;
ВыбраннаяСтрока = ДополнительныеПараметры.ВыбраннаяСтрока;
Поле = ДополнительныеПараметры.Поле;
ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПриАктивизацииСтроки(Элемент)
РасчетЗарплатыРасширенныйКлиент.ДокументыВыполненияНачисленийПриАктивацииСтроки(ЭтаФорма, "ОплатаТруда", Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
ТекстСообщения = НСтр("ru = 'Добавление начисления возможно только после выбора сотрудника'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "Объект.Сотрудник", , Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПередУдалением(Элемент, Отказ)
СотрудникУдаляемойСтроки = Элемент.ТекущиеДанные.Сотрудник;
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(
ИзмененныеДанные,
"Начисления",
Объект.Сотрудник,
ТекущиеДанные.Сотрудник,
ТекущиеДанные.Начисление);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
РасчетЗарплатыКлиент.СтрокаРасчетаПриНачалеРедактирования(ЭтаФорма, "ОплатаТруда", Элементы.ОплатаТруда.ТекущиеДанные, НоваяСтрока, Копирование);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(
ИзмененныеДанные,
"Начисления",
Объект.Сотрудник,
ТекущиеДанные.Сотрудник,
ТекущиеДанные.Начисление);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактирования(ЭтаФорма, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
Если НоваяСтрока Тогда
ОписаниеФормы = ОписаниеФормы();
Если Не ЭтаФорма[ОписаниеФормы.ИмяРеквизитаПризнакаНесколькихРабочихМест] Тогда
ОписаниеТаблицыОплатаТруда = ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна);
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные, ОписаниеФормы, ОписаниеТаблицыРабочихМест, ОписаниеТаблицыОплатаТруда);
КонецЕсли;
КонецЕсли;
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПослеУдаления(Элемент)
РассчитатьСотрудника(СотрудникУдаляемойСтроки, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаНачислениеПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенныйКлиент.ВводНачисленийНачислениеПриИзменении(ЭтаФорма, ОписаниеТаблицыВидовРасчета, 2);
РасчетЗарплатыРасширенныйКлиент.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Ложь, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаДатаНачалаПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна);
РасчетЗарплатыРасширенныйКлиент.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Истина, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаДатаОкончанияПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна);
РасчетЗарплатыРасширенныйКлиент.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Истина, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОплатаТрудаПредставлениеРабочегоМестаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестОбработкаВыбораРабочегоМеста(ЭтаФорма, ВыбранноеЗначение, ОписаниеТаблицыРабочихМест(ОписаниеФормы()), ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОплатаТрудаПредставлениеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачалоВыбораРабочегоМеста(ЭтаФорма, ДанныеВыбора, ОписаниеТаблицыРабочихМест(ОписаниеФормы))
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыОплатаЛьгот
&НаКлиенте
Процедура ОплатаЛьготВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Элемент", Элемент);
ДополнительныеПараметры.Вставить("ВыбраннаяСтрока", ВыбраннаяСтрока);
ДополнительныеПараметры.Вставить("Поле", Поле);
Оповещение = Новый ОписаниеОповещения("ОплатаЛьготВыборЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна);
РасчетЗарплатыРасширенныйКлиент.ВыполнитьКомандуРасшифровкиЗначенияПоказателя(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка, Оповещение);
Если СтрНайти(Поле.Имя, "КомандаРедактированияРаспределения") <> 0 Тогда
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготВыборЗавершение(Результат, ДополнительныеПараметры) Экспорт
Элемент = ДополнительныеПараметры.Элемент;
ВыбраннаяСтрока = ДополнительныеПараметры.ВыбраннаяСтрока;
Поле = ДополнительныеПараметры.Поле;
ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПриАктивизацииСтроки(Элемент)
РасчетЗарплатыРасширенныйКлиент.ДокументыВыполненияНачисленийПриАктивацииСтроки(ЭтаФорма, "ОплатаЛьгот", Истина);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если Не ЗначениеЗаполнено(Объект.Сотрудник) Тогда
ТекстСообщения = НСтр("ru = 'Добавление начисления возможно только после выбора сотрудника'");
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , "Объект.Сотрудник", , Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПередУдалением(Элемент, Отказ)
СотрудникУдаляемойСтроки = Элемент.ТекущиеДанные.Сотрудник;
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
РасчетЗарплатыКлиент.СтрокаРасчетаПриНачалеРедактирования(ЭтаФорма, "ОплатаЛьгот", Элементы.ОплатаЛьгот.ТекущиеДанные, НоваяСтрока, Копирование);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактирования(ЭтаФорма, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
Если НоваяСтрока Тогда
ОписаниеФормы = ОписаниеФормы();
Если Не ЭтаФорма[ОписаниеФормы.ИмяРеквизитаПризнакаНесколькихРабочихМест] Тогда
ОписаниеТаблицыОплатаЛьгот = ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна);
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы);
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестПриВводеНового(ЭтаФорма, Элемент.ТекущиеДанные, ОписаниеФормы, ОписаниеТаблицыРабочихМест, ОписаниеТаблицыОплатаЛьгот);
КонецЕсли;
КонецЕсли;
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПослеУдаления(Элемент)
РассчитатьСотрудника(СотрудникУдаляемойСтроки, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготНачислениеПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенныйКлиент.ВводНачисленийНачислениеПриИзменении(ЭтаФорма, ОписаниеТаблицыВидовРасчета, 2);
РасчетЗарплатыРасширенныйКлиент.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Ложь, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготДатаНачалаПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна);
РасчетЗарплатыРасширенныйКлиент.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Истина, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготДатаОкончанияПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна);
РасчетЗарплатыРасширенныйКлиент.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеТаблицыВидовРасчета, Истина, Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОплатаЛьготПредставлениеРабочегоМестаОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестОбработкаВыбораРабочегоМеста(ЭтаФорма, ВыбранноеЗначение, ОписаниеТаблицыРабочихМест(ОписаниеФормы()), ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОплатаЛьготПредставлениеРабочегоМестаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенныйКлиент.НесколькоРабочихМестНачалоВыбораРабочегоМеста(ЭтаФорма, ДанныеВыбора, ОписаниеТаблицыРабочихМест(ОписаниеФормы))
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыУдержания
&НаКлиенте
Процедура УдержанияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияПриАктивизацииСтроки(Элемент)
РасчетЗарплатыРасширенныйКлиент.ДокументыВыполненияНачисленийПриАктивацииСтроки(ЭтаФорма, "Удержания", Истина);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
Элементы.Удержания.ТекущиеДанные.ФизическоеЛицо = Объект.Сотрудник;
КонецЕсли;
РасчетЗарплатыКлиент.СтрокаРасчетаПриНачалеРедактирования(ЭтаФорма, "Удержания", Элементы.Удержания.ТекущиеДанные, НоваяСтрока, Копирование);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(
ИзмененныеДанные,
"Удержания",
Объект.Сотрудник,
,
ТекущиеДанные.Удержание);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактирования(ЭтаФорма, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияПередУдалением(Элемент, Отказ)
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(
ИзмененныеДанные,
"Удержания",
Объект.Сотрудник,
,
ТекущиеДанные.Удержание);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияУдержаниеПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенныйКлиент.ВводНачисленийНачислениеПриИзменении(ЭтаФорма, ОписаниеТаблицыВидовРасчета, 2);
КонецПроцедуры
&НаКлиенте
Процедура УдержанияДокументОснованиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаДокументаУдержанияПоКатегории(
Элемент, Элементы.Удержания.ТекущиеДанные, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыНДФЛ
&НаКлиенте
Процедура НДФЛВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицыНДФЛ(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПриАктивизацииСтроки(Элемент)
РасчетЗарплатыРасширенныйКлиент.ДокументыВыполненияНачисленийПриАктивацииСтроки(ЭтаФорма, "НДФЛ", Истина);
УчетНДФЛКлиент.НДФЛПриАктивизацииСтроки(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПередНачаломИзменения(Элемент, Отказ)
УчетНДФЛКлиент.НДФЛПередНачаломИзменения(ЭтаФорма, Элементы.НДФЛ.ТекущиеДанные, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПередУдалением(Элемент, Отказ)
НДФЛВыделенныеСтроки = Новый Массив;
Для Каждого ИдентификаторСтрок ИЗ Элементы.НДФЛ.ВыделенныеСтроки Цикл
СтрокаТаблицы = Объект.НДФЛ.НайтиПоИдентификатору(ИдентификаторСтрок);
Если СтрокаТаблицы <> Неопределено Тогда
НДФЛВыделенныеСтроки.Добавить(СтрокаТаблицы.ИдентификаторСтрокиНДФЛ);
КонецЕсли;
КонецЦикла;
УчетНДФЛКлиент.НДФЛПередУдалением(ЭтаФорма, НДФЛВыделенныеСтроки, Отказ);
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(ИзмененныеДанные, "НДФЛ", Объект.Сотрудник);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
Элементы.НДФЛ.ТекущиеДанные.ФизическоеЛицо = Объект.Сотрудник;
КонецЕсли;
РасчетЗарплатыКлиент.СтрокаРасчетаПриНачалеРедактирования(ЭтаФорма, "НДФЛ", Элементы.НДФЛ.ТекущиеДанные, НоваяСтрока, Копирование);
УчетНДФЛКлиент.НДФЛПриНачалеРедактирования(ЭтаФорма, Элементы.НДФЛ.ТекущиеДанные, НоваяСтрока, Копирование);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(ИзмененныеДанные, "НДФЛ", Объект.Сотрудник);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ИспользоватьСтатьиФинансирования Тогда
ТекущиеДанные = Элемент.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОтражениеЗарплатыВБухучетеКлиентСерверРасширенный.ПерераспределитьНДФЛ(ТекущиеДанные, РаботаВБюджетномУчреждении);
КонецЕсли;
КонецЕсли;
РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактирования(ЭтаФорма, ОписаниеТаблицыНДФЛ(РегистрацияНачисленийДоступна), , Ложь);
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
УчетНДФЛКлиент.НДФЛУстановитьДоступностьЭлементовЛичныхВычетов(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура НДФЛПослеУдаления(Элемент)
УчетНДФЛКлиентРасширенный.УдалитьПримененныеВычеты(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВычетыЛичныеПриИзменении(Элемент)
УчетНДФЛКлиент.НДФЛПриОкончанииРедактирования(ЭтаФорма);
РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактирования(ЭтаФорма, ОписаниеТаблицыНДФЛ(РегистрацияНачисленийДоступна), , Ложь);
УчетНДФЛКлиент.НДФЛУстановитьДоступностьЭлементовЛичныхВычетов(ЭтаФорма);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКорректировкиВыплаты
&НаКлиенте
Процедура КорректировкиВыплатыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицыКорректировкиВыплаты(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура КорректировкиВыплатыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
Элементы.КорректировкиВыплаты.ТекущиеДанные.ФизическоеЛицо = Объект.Сотрудник;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КорректировкиВыплатыПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ИспользоватьСтатьиФинансирования Тогда
ТекущиеДанные = Элемент.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ОтражениеЗарплатыВБухучетеКлиентСерверРасширенный.ПерераспределитьКорректировкиВыплаты(ТекущиеДанные, РаботаВБюджетномУчреждении);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПримененныеВычетыКДоходам
&НаКлиенте
Процедура Подключаемый_ВычетыКДоходамПередНачаломИзменения(Элемент, Отказ, Копирование, Родитель, Группа)
УчетНДФЛКлиентРасширенный.ПримененныеВычетыКДоходам(ЭтаФорма, Элемент, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВычетыКДоходамПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ВычетыПриОкончанииРедактирования(Элемент.ТекущиеДанные, ОтменаРедактирования, "ФизическоеЛицо,Подразделение");
ОбновитьПредставлениеВычетовКДоходамСтрокиНДФЛ();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПримененныеВычетыИИмущественные
&НаКлиенте
Процедура Подключаемый_ВычетыНаДетейИИмущественныеПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа)
УчетНДФЛКлиент.МожноИзменятьПримененныеВычеты(ЭтаФорма, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВычетыНаДетейИИмущественныеПередНачаломИзменения(Элемент, Отказ)
УчетНДФЛКлиентРасширенный.ПримененныеВычетыНаДетейИИмущественныеПередНачаломИзменения(ЭтаФорма, Элемент, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВычетыНаДетейИИмущественныеПередУдалением(Элемент, Отказ)
УчетНДФЛКлиент.МожноИзменятьПримененныеВычеты(ЭтаФорма, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВычетыНаДетейИИмущественныеПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
УчетНДФЛКлиент.ВычетыПриНачалеРедактирования(Элемент.ТекущиеДанные, НоваяСтрока, Элементы.НДФЛ.ТекущиеДанные);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВычетыНаДетейИИмущественныеПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
ВычетыПриОкончанииРедактирования(Элемент.ТекущиеДанные, ОтменаРедактирования, "ИдентификаторСтрокиНДФЛ");
ОбновитьПредставлениеВычетовНаДетейИИмущественныхСтрокиНДФЛ();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПогашениеЗаймов
&НаКлиенте
Процедура ПогашениеЗаймовВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицыПогашениеЗаймов(РегистрацияНачисленийДоступна), Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ПогашениеЗаймовПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
Элементы.ПогашениеЗаймов.ТекущиеДанные.ФизическоеЛицо = Объект.Сотрудник;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыВзносы
&НаКлиенте
Процедура ВзносыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
Элементы.Взносы.ТекущиеДанные.ФизическоеЛицо = Объект.Сотрудник;
ТекущиеДанные = Элементы.Взносы.ТекущиеДанные;
Если ТекущиеДанные <> Неопределено Тогда
ТекущиеДанные.ДатаПолученияДохода = КонецМесяца(Объект.ПериодРегистрации);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ТекущиеДанные, "ДатаПолученияДохода", "ДатаПолученияДоходаСтрокой");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВзносыДатаПолученияДоходаПриИзменении(Элемент)
ДанныеТекущейСтроки = Элементы.Взносы.ТекущиеДанные;
УчетСтраховыхВзносовКлиент.ВзносыДатаПолученияДоходаСтрокойПриИзменении(ДанныеТекущейСтроки, "ДатаПолученияДохода", "ДатаПолученияДоходаСтрокой", Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ВзносыДатаПолученияДоходаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДанныеТекущейСтроки = Элементы.Взносы.ТекущиеДанные;
УчетСтраховыхВзносовКлиент.ВзносыДатаПолученияДоходаСтрокойНачалоВыбора(ЭтотОбъект, ДанныеТекущейСтроки, "ДатаПолученияДохода", "ДатаПолученияДоходаСтрокой");
КонецПроцедуры
&НаКлиенте
Процедура ВзносыДатаПолученияДоходаРегулирование(Элемент, Направление, СтандартнаяОбработка)
УчетСтраховыхВзносовКлиент.ВзносыДатаПолученияДоходаСтрокойРегулирование(
Элементы.Взносы.ТекущиеДанные,
"ДатаПолученияДохода",
"ДатаПолученияДоходаСтрокой",
Направление,
Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ВзносыДатаПолученияДоходаАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ВзносыДатаПолученияДоходаОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДанныеОДетях
&НаКлиенте
Процедура ДанныеОДетяхПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если НоваяСтрока Тогда
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
МаксимальнаяОчередность = ?(Объект.КоличествоПервыхДетей = 1, 0, 1);
Если Объект.ДанныеОДетях.Количество() > 0 Тогда
Для Каждого ДанныеОРебенке Из Объект.ДанныеОДетях Цикл
Если МаксимальнаяОчередность < ДанныеОРебенке.Очередность Тогда
МаксимальнаяОчередность = ДанныеОРебенке.Очередность;
ТекущаяФамилия = ДанныеОРебенке.Фамилия;
ТекущееОтчество = ДанныеОРебенке.Отчество;
КонецЕсли;
КонецЦикла;
СтрокаТаблицы.Фамилия = ТекущаяФамилия;
СтрокаТаблицы.Отчество = ТекущееОтчество;
КонецЕсли;
СтрокаТаблицы.ИдентификаторСтроки = Строка(Новый УникальныйИдентификатор);
СтрокаТаблицы.Очередность = МаксимальнаяОчередность + 1;
СтрокаТаблицы.ПредставлениеОчередности = ПредставлениеОчередностиРебенка(СтрокаТаблицы.Очередность);
СтрокаТаблицы.ВидПодтверждающегоДокумента = ПредопределенноеЗначение("Перечисление.ВидыПодтверждающихДокументовОтпускаПоУходу.СвидетельствоОРождении");
СтрокаТаблицы.НаименованиеПодтверждающегоДокумента = Строка(СтрокаТаблицы.ВидПодтверждающегоДокумента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхВыбор(Элемент, ИдентификаторСтроки, КолонкаТаблицы, СтандартнаяОбработка)
Если КолонкаТаблицы = Элементы.ДанныеОДетяхЗаявление Тогда
СтандартнаяОбработка = Ложь;
СоздатьСведенияДляРеестраПрямыхВыплат(Неопределено);
ИначеЕсли КолонкаТаблицы = Элементы.ДанныеОДетяхСообщениеВФСС Тогда
СтандартнаяОбработка = Ложь;
СоздатьИсходящееСообщениеОСтраховомСлучаеФСС(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхПередУдалением(Элемент, Отказ)
Если ЗначениеЗаполнено(Элементы.ДанныеОДетях.ТекущиеДанные.Заявление) Тогда
ТекстВопроса = НСтр("ru = 'Существует заявление на выплату пособия, введенное на основании данной строки. Пометить его на удаление?'");
Оповещение = Новый ОписаниеОповещения("ДанныеОДетяхПередУдалениемЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена);
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхПередУдалениемЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ = КодВозвратаДиалога.Отмена Тогда
Возврат;
КонецЕсли;
ТекущаяСтрока = Элементы.ДанныеОДетях.ТекущаяСтрока;
Если Ответ = КодВозвратаДиалога.Да Тогда
АннулироватьЗаявление(ТекущаяСтрока);
КонецЕсли;
Объект.ДанныеОДетях.Удалить(ТекущаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхПредставлениеОчередностиАвтоПодбор(ПолеФормы, ВведенныйТекст, СписокВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокВыбора = Новый СписокЗначений;
ВведеннаяОчередность = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ВведенныйТекст);
Если ВведеннаяОчередность = 0 Тогда
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Начало = 1;
Иначе
Начало = Макс(СтрокаТаблицы.Очередность - СтрокаТаблицы.Очередность%10, 1);
КонецЕсли;
ИначеЕсли ВведеннаяОчередность <> Неопределено И ВведеннаяОчередность > 0 И ВведеннаяОчередность < 100 Тогда
СписокВыбора.Добавить(ВведеннаяОчередность, ПредставлениеОчередностиРебенка(ВведеннаяОчередность));
Если ВведеннаяОчередность > 9 Тогда
Возврат;
КонецЕсли;
Начало = ВведеннаяОчередность*10;
Иначе
ВведеннаяОчередность = ЧислительноеДоДевятиВЧисло(НРег(ВведенныйТекст));
Если ВведеннаяОчередность <> Неопределено Тогда
СписокВыбора.Добавить(ВведеннаяОчередность, ПредставлениеОчередностиРебенка(ВведеннаяОчередность));
Возврат;
КонецЕсли;
Начало = 1;
КонецЕсли;
Окончание = ?(Начало = 1, 9, Начало+9);
Для Очередность = Начало По Окончание Цикл
СписокВыбора.Добавить(Очередность, ПредставлениеОчередностиРебенка(Очередность));
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхПредставлениеОчередностиОбработкаВыбора(ПолеФормы, Очередность, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ТипЗнч(Очередность) <> Тип("Число") Тогда
Возврат;
КонецЕсли;
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицы.Очередность = Очередность;
СтрокаТаблицы.ПредставлениеОчередности = ПредставлениеОчередностиРебенка(Очередность);
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхПредставлениеОчередностиПриИзменении(ПолеФормы)
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
ОжидаемоеПредставлениеОчередности = ПредставлениеОчередностиРебенка(СтрокаТаблицы.Очередность);
Если СтрокаТаблицы.ПредставлениеОчередности <> ОжидаемоеПредставлениеОчередности Тогда
ВведеннаяОчередность = СтроковыеФункцииКлиентСервер.СтрокаВЧисло(СтрокаТаблицы.ПредставлениеОчередности);
Если ВведеннаяОчередность <> Неопределено И ВведеннаяОчередность > 0 И ВведеннаяОчередность < 100 Тогда
СтрокаТаблицы.Очередность = ВведеннаяОчередность;
СтрокаТаблицы.ПредставлениеОчередности = ПредставлениеОчередностиРебенка(ВведеннаяОчередность);
Иначе
СтрокаТаблицы.ПредставлениеОчередности = ОжидаемоеПредставлениеОчередности;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхВидПодтверждающегоДокументаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.ВидПодтверждающегоДокумента)
Или СтрокаТаблицы.ВидПодтверждающегоДокумента = ВидИнойДокумент Тогда
СтрокаТаблицы.НаименованиеПодтверждающегоДокумента = "";
Иначе
СтрокаТаблицы.НаименованиеПодтверждающегоДокумента = Строка(СтрокаТаблицы.ВидПодтверждающегоДокумента);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхСерияДокументаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицы.СерияДокумента = СокрЛП(СтрокаТаблицы.СерияДокумента);
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхНомерДокументаПриИзменении(Элемент)
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицы.НомерДокумента = СокрЛП(СтрокаТаблицы.НомерДокумента);
КонецПроцедуры
&НаКлиенте
Процедура ДанныеОДетяхКемВыданДокументПриИзменении(Элемент)
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
Возврат;
КонецЕсли;
СтрокаТаблицы.КемВыданДокумент = СокрЛП(СтрокаТаблицы.КемВыданДокумент);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыУправленческиеНачисления
&НаКлиенте
Процедура УправленческиеНачисленияПриАктивизацииСтроки(Элемент)
РасчетЗарплатыРасширенныйКлиент.ДокументыВыполненияНачисленийПриАктивацииСтроки(ЭтаФорма, "УправленческиеНачисления", Истина);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
РасчетЗарплатыКлиент.СтрокаРасчетаПриНачалеРедактирования(ЭтаФорма, "УправленческиеНачисления", Элементы.УправленческиеНачисления.ТекущиеДанные, НоваяСтрока, Копирование);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(
ИзмененныеДанные,
"Начисления",
Объект.Сотрудник,
ТекущиеДанные.Сотрудник,
ТекущиеДанные.Начисление);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПриОкончанииРедактированияСтрокиНачисленияЗарплаты(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПередУдалением(Элемент, Отказ)
СотрудникУдаляемойСтроки = Элементы.УправленческиеНачисления.ТекущиеДанные.Сотрудник;
ТекущиеДанные = Элемент.ТекущиеДанные;
РасчетЗарплатыРасширенныйКлиент.ДобавитьИзмененныеДанные(
ИзмененныеДанные,
"Начисления",
Объект.Сотрудник,
ТекущиеДанные.Сотрудник,
ТекущиеДанные.Начисление);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПослеУдаления(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПослеУдаленияСтрокиНачисленияЗарплаты(ЭтаФорма, СотрудникУдаляемойСтроки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияНачислениеПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПриИзмененииНачисленияСтрокиНачисленияЗарплаты(ЭтаФорма, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияДатаНачалаПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПриИзмененииДатыНачалаСтрокиНачисленияЗарплаты(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияДатаОкончанияПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПриИзмененииДатыОкончанияСтрокиНачисленияЗарплаты(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПериодДействияПриИзменении(Элемент)
ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(Элементы.УправленческиеНачисления.ТекущиеДанные, "ПериодДействия", "ПериодДействияСтрокой", Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПериодДействияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(ЭтаФорма, Элементы.УправленческиеНачисления.ТекущиеДанные, "ПериодДействия", "ПериодДействияСтрокой");
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПериодДействияРегулирование(Элемент, Направление, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(Элементы.УправленческиеНачисления.ТекущиеДанные, "ПериодДействия", "ПериодДействияСтрокой", Направление, Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПериодДействияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПериодДействияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПодробно(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПриНажатииКнопкиПоказатьПодробностиРасчета(ЭтаФорма, Элементы.УправленческиеНачисленияПодробно);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_УправленческиеНачисленияОтменитьИсправление(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
Модуль.ПриОтменеИсправленияНачисленияЗарплаты(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьИнфоНадписьЗамещения()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЦепочкиДокументовФормы");
Модуль.УстановитьИнфоНадписьЗамещения(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеОчередностиРебенка(Очередность)
Если Очередность = 1 Тогда
Возврат НСтр("ru = 'Первый ребенок'");
ИначеЕсли Очередность = 2 Тогда
Возврат НСтр("ru = 'Второй ребенок'");
ИначеЕсли Очередность = 3 Тогда
Возврат НСтр("ru = 'Третий ребенок'");
ИначеЕсли Очередность = 4 Тогда
Возврат НСтр("ru = 'Четвертый ребенок'");
ИначеЕсли Очередность = 5 Тогда
Возврат НСтр("ru = 'Пятый ребенок'");
ИначеЕсли Очередность = 6 Тогда
Возврат НСтр("ru = 'Шестой ребенок'");
ИначеЕсли Очередность = 7 Тогда
Возврат НСтр("ru = 'Седьмой ребенок'");
ИначеЕсли Очередность = 8 Тогда
Возврат НСтр("ru = 'Восьмой ребенок'");
ИначеЕсли Очередность = 9 Тогда
Возврат НСтр("ru = 'Девятый ребенок'");
Иначе
Возврат СтрШаблон(НСтр("ru = '%1й ребенок'"), Формат(Очередность, "ЧГ="));
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЧислительноеДоДевятиВЧисло(ВведенныйТекстНРег)
КодСимвола1 = КодСимвола(ВведенныйТекстНРег, 1);
Если КодСимвола1 = 1087 Тогда
Возврат ?(КодСимвола(ВведенныйТекстНРег, 2) = 1103, 5, 1);
ИначеЕсли КодСимвола1 = 1074 Тогда
Возврат ?(КодСимвола(ВведенныйТекстНРег, 2) = 1086, 8, 2);
ИначеЕсли КодСимвола1 = 1090 Тогда
Возврат 3;
ИначеЕсли КодСимвола1 = 1095 Тогда
Возврат 4;
ИначеЕсли КодСимвола1 = 1096 Тогда
Возврат 6;
ИначеЕсли КодСимвола1 = 1089 Тогда
Возврат 7;
ИначеЕсли КодСимвола1 = 1076 Тогда
Возврат 9;
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
&НаСервере
Процедура ОбработатьСообщенияПользователю(ДокументОбъект, Сообщения = Неопределено)
Если Сообщения = Неопределено Тогда
Сообщения = ПолучитьСообщенияПользователю(Ложь);
КонецЕсли;
Для Каждого Сообщение Из Сообщения Цикл
Если Не ЗначениеЗаполнено(Сообщение.КлючДанных)
И Не ЗначениеЗаполнено(Сообщение.ПутьКДанным)
И Не СтрНачинаетсяС(Сообщение.Поле, "Объект.") Тогда
Сообщение.ПутьКДанным = "Объект";
КонецЕсли;
НачалоСкобки = СтрНайти(Сообщение.Поле, "[");
Если НачалоСкобки = 0 Тогда
Продолжить;
КонецЕсли;
ОкончаниеСкобки = СтрНайти(Сообщение.Поле, "].");
Если НачалоСкобки > ОкончаниеСкобки Тогда
Продолжить;
КонецЕсли;
ИмяТаблицы = Лев(Сообщение.Поле, НачалоСкобки - 1);
ИндексСтроки = Сред(Сообщение.Поле, НачалоСкобки + 1, ОкончаниеСкобки - НачалоСкобки - 1);
ИмяРеквизита = Сред(Сообщение.Поле, ОкончаниеСкобки + 2);
Если ИмяТаблицы = "ДанныеОДетях" И ИмяРеквизита = "Очередность" Тогда
Сообщение.Поле = ИмяТаблицы + "[" + ИндексСтроки + "].ПредставлениеОчередности";
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивом(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуИнтеграцииС1САрхивомНаСервере(Знач Параметры) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивом = ОбщегоНазначения.ОбщийМодуль("ОбменСАрхивом");
МодульОбменСАрхивом.ВыполнитьПодключаемуюКоманду(ЭтотОбъект, Параметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИнтеграцияС1САрхивом_Нажатие(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1САрхивом") Тогда
МодульОбменСАрхивомКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбменСАрхивомКлиент");
МодульОбменСАрхивомКлиент.Нажатие(Элемент, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Команда, Объект)
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначения.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплата");
МодульПроцессыОбработкиДокументовЗарплата.ВыполнитьЗадачу(ЭтотОбъект, Контекст, Объект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ПроцессыОбработкиДокументовЗарплата") Тогда
МодульПроцессыОбработкиДокументовЗарплата = ОбщегоНазначенияКлиент.ОбщийМодуль("ПроцессыОбработкиДокументовЗарплатаКлиент");
МодульПроцессыОбработкиДокументовЗарплата.КомментарийСледующемуНачалоВыбора(ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ОбновитьПодключаемыеКоманды(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Исправить(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.Исправить(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправлению(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправлению(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПерейтиКИсправленному(Команда)
ИсправлениеДокументовЗарплатаКадрыКлиент.ПерейтиКИсправленному(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура РаспределитьЗависимыеРезультаты(ПараметрыДляРаспределения) Экспорт
Если ПараметрыДляРаспределения.РаспределятьЗависимыеТаблицы Тогда
ОбновитьБухучетРезультатовРасчетаНаСервере(ПараметрыДляРаспределения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
Оповещение = Новый ОписаниеОповещения("ОбновитьЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, НСтр("ru = 'Внесенные изменения не сохранятся. Продолжить?'"), РежимДиалогаВопрос.ДаНет);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ = КодВозвратаДиалога.Да Тогда
ЗаполнитьСоставДействующихНачисленийСотрудника()
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьСреднийЗаработок(Команда)
Оповещение = Новый ОписаниеОповещения("ОткрытьСреднийЗаработокЗавершение", ЭтотОбъект);
УчетСреднегоЗаработкаКлиент.ОткрытьФормуВводаСреднегоЗаработкаФСС(ПараметрыРедактированияСреднегоЗаработка(), ЭтаФорма, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьСреднийЗаработокЗавершение(РезультатРедактирования, ДополнительныеПараметры) Экспорт
Если РезультатРедактирования = Неопределено Тогда
Возврат;
КонецЕсли;
ПеренестиДанныеУчетаСреднегоЗаработкаВДокумент(РезультатРедактирования);
КонецПроцедуры
&НаКлиенте
Процедура Рассчитать(Команда)
ОбновитьДанныеДляРасчетаСреднего(Истина);
ЗарплатаКадрыРасширенныйКлиентСервер.СброситьФлагНеобходимостиВыполненияРасчета(ЭтаФорма);
РасчетНеобходимоВыполнить = РассчитатьФОТ;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнятьРасчетПоПравилам2010Года(Команда)
Объект.РасчетПоПравилам2010Года = Не Объект.РасчетПоПравилам2010Года;
УстановитьДоступностьУчитыватьДанныеСтрахователей(ЭтаФорма);
РасчетПоПравилам2010ГодаПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПодробно(Команда)
РасчетЗарплатыРасширенныйКлиентСервер.ДокументыВыполненияНачисленийУстановитьРежимОтображенияПодробно(ЭтаФорма, Не Элементы.ОплатаТрудаПодробно.Пометка, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйВызовСервера.СохранитьНастройкуРежимаОтображенияПодробно(Объект.Ссылка, Элементы.ОплатаТрудаПодробно.Пометка, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура ОплатаЛьготПодробно(Команда)
РасчетЗарплатыРасширенныйКлиентСервер.ДокументыВыполненияНачисленийУстановитьРежимОтображенияПодробно(ЭтаФорма, Не Элементы.ОплатаЛьготПодробно.Пометка, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйВызовСервера.СохранитьНастройкуРежимаОтображенияПодробно(Объект.Ссылка, Элементы.ОплатаЛьготПодробно.Пометка, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура УдержанияПодробно(Команда)
РасчетЗарплатыРасширенныйКлиентСервер.ДокументыВыполненияНачисленийУстановитьРежимОтображенияПодробно(ЭтаФорма, Не Элементы.УдержанияПодробно.Пометка, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйВызовСервера.СохранитьНастройкуРежимаОтображенияПодробно(Объект.Ссылка, Элементы.УдержанияПодробно.Пометка, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОплатаТрудаОтменитьИсправление(Команда)
РасчетЗарплатыКлиент.ОтменитьИсправление(ЭтаФорма, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_УдержанияОтменитьИсправление(Команда)
РасчетЗарплатыКлиент.ОтменитьИсправление(ЭтаФорма, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_НДФЛОтменитьИсправление(Команда)
РасчетЗарплатыКлиент.ОтменитьИсправление(ЭтаФорма, ОписаниеТаблицыНДФЛ(РегистрацияНачисленийДоступна));
КонецПроцедуры
&НаКлиенте
Процедура КарточкаУчетаПоСтраховымВзносам(Команда)
ВзносыТекущиеДанные = Элементы.Взносы.ТекущиеДанные;
Если ВзносыТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
КарточкаУчетаПоСтраховымВзносам = КарточкаУчетаПоСтраховымВзносамНаСервере(ВзносыТекущиеДанные.ФизическоеЛицо);
УправлениеПечатьюКлиент.ВыполнитьКомандуПечати(
"Отчет.КарточкаУчетаПоСтраховымВзносам",
"КарточкаУчетаПоСтраховымВзносамПодробнее",
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Ссылка),
ЭтотОбъект,
Новый Структура("ПечатаемыйДокумент", КарточкаУчетаПоСтраховымВзносам));
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьФОТ(Команда)
РассчитатьФОТНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьФОТ(Команда)
РедактироватьФОТ = НЕ Элементы.РедактироватьФОТ.Пометка;
Элементы.РедактироватьФОТ.Пометка = РедактироватьФОТ;
КонецПроцедуры
&НаКлиенте
Процедура РегистрНалоговогоУчетаПоНДФЛ(Команда)
НДФЛТекущиеДанные = Элементы.НДФЛ.ТекущиеДанные;
Если НДФЛТекущиеДанные <> Неопределено Тогда
РегистрНалоговогоУчетаПоНДФЛ = НДФЛПодробнееНаСервере(НДФЛТекущиеДанные.ФизическоеЛицо);
УправлениеПечатьюКлиент.ВыполнитьКомандуПечати("Отчет.РегистрНалоговогоУчетаПоНДФЛ", "РегистрНалоговогоУчетаПоНДФЛ",
ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Ссылка), ЭтаФорма, Новый Структура("ПечатаемыйДокумент", РегистрНалоговогоУчетаПоНДФЛ));
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьРазмерЛьгот(Команда)
РассчитатьРазмерЛьготНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьРазмерЛьгот(Команда)
Элементы.РедактироватьРазмерЛьгот.Пометка = Не Элементы.РедактироватьРазмерЛьгот.Пометка;
УстановитьВидимостьРазмераЛьгот(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровестиИЗакрыть(Команда)
ОчиститьСообщения();
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Истина, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаПровести(Команда)
ОчиститьСообщения();
ПараметрыЗаписи = Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Проведение);
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаписать(Команда)
ОчиститьСообщения();
ПараметрыЗаписи = Новый Структура("РежимЗаписи", ?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
ЗаписатьНаКлиенте(Ложь, ПараметрыЗаписи);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазблокироватьФормуОбъекта(Команда)
БлокировкаИзмененияОбъектовКлиент.РазблокироватьФормуОбъекта(ЭтотОбъект, Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуИнтеграции(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияС1СДокументооборотом") Тогда
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль(
"ИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент");
МодульИнтеграцияС1СДокументооборотБазоваяФункциональностьКлиент.ВыполнитьПодключаемуюКомандуИнтеграции(
Команда,
ЭтотОбъект,
Объект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьОтчетПоПроблемам(ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка)
КонтрольВеденияУчетаКлиентБЗК.ОткрытьОтчетПоПроблемамОбъекта(ЭтотОбъект, Объект.Ссылка, СтандартнаяОбработка);
КонецПроцедуры
#Область ИсправлениеДокументов
&НаКлиенте
Процедура УстановитьПоляИсправленияНаКлиенте() Экспорт
УстановитьПоляИсправления(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоляИсправления(Форма)
ИсправлениеДокументовЗарплатаКадрыКлиентСервер.УстановитьПоляИсправления(Форма);
КонецПроцедуры
#КонецОбласти
#Область ИнициализацияФормы
&НаСервере
Процедура ПриПолученииДанныхНаСервере(ТекущийОбъект)
НовыйДокумент = Параметры.Ключ.Пустая();
НачатьИнициализациюФормы(ТекущийОбъект);
ЗарплатаКадрыРасширенный.ИзменитьРеквизитыФормы(ЭтаФорма);
ЗавершитьИнициализациюФормы(ТекущийОбъект);
РеквизитыКДобавлению.Очистить();
РеквизитыКУдалению.Очистить();
КонецПроцедуры
&НаСервере
Процедура НачатьИнициализациюФормы(ТекущийОбъект)
РасчетЗарплатыРасширенныйФормы.ПодготовитьФормуДляПредварительногоРасчетаНачислений(ЭтотОбъект);
ИспользуетсяРасчетЗарплаты = ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная");
РаботаВБюджетномУчреждении = ПолучитьФункциональнуюОпцию("РаботаВБюджетномУчреждении");
ИспользоватьСтатьиФинансирования = ПолучитьФункциональнуюОпцию("ИспользоватьСтатьиФинансированияЗарплатаРасширенный");
УстановитьФункциональныеОпцииФормы();
УстановитьДоступностьРегистрацииНачислений();
УстановитьПривилегированныйРежим(Истина);
ПрочитатьВремяРегистрации();
ДополнитьФорму(Истина);
КонецПроцедуры
&НаСервере
Процедура ЗавершитьИнициализациюФормы(ТекущийОбъект)
УстановитьПривилегированныйРежим(Истина);
ДополнитьФорму(Ложь);
ДополнитьФорму();
ОписаниеФормы = ОписаниеФормы();
УстановитьИнфонадписьРасчетаСреднегоЗаработка();
УстановитьВидимостьДанныхДляФСС();
УчетСтраховыхВзносов.УстановитьВидимостьКолонокТаблицыСтраховыхВзносов(ЭтаФорма, Объект.ПериодРегистрации);
УстановитьДоступностьРасчетаПоПравилам2010Года();
ЗарплатаКадрыРасширенный.УстановитьТекстПоясненияКПорядкуПересчетаТарифныхСтавок(ЭтаФорма, "ПорядокРасчетаСтоимостиЕдиницыВремени");
ЗарплатаКадрыРасширенный.УстановитьРазмерностьСовокупнойТарифнойСтавки(ЭтаФорма);
ЗарплатаКадрыРасширенный.УстановитьКомментарийКРазмеруСовокупнойТарифнойСтавки(ЭтаФорма, ?(Объект.ПересчетТарифныхСтавок.Количество() > 0, Объект.ПересчетТарифныхСтавок[0], Неопределено),"СовокупнаяТарифнаяСтавкаРазмерность");
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ЭтаФорма, "Объект.ПериодРегистрации", "МесяцНачисленияСтрокой");
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.ОплатаТруда, "ПериодДействия", "ПериодДействияСтрокой");
УстановитьВидимостьГруппыВыплата();
УстановитьДоступностьПоляПорядокРасчета();
ЗагрузитьНастройки();
ДанныеНачисленийВРеквизит(ТекущийОбъект);
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, ОписаниеТаблицыПересчетТарифныхСтавок(ОписаниеФормы));
ОбновитьДанныеОДетях();
ОбновитьКомментарийКДокументу(ЭтаФорма);
ЗарплатаКадрыРасширенныйКлиентСервер.РассчитатьИтогиФОТВФормеДокументаСНесколькимиРабочимиМестами(ЭтаФорма, ОписаниеТаблицыНачислений());
Если ИспользуетсяРасчетЗарплаты И Не ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений И Объект.НачисленияУтверждены Тогда
ТолькоПросмотр = Истина;
КонецЕсли;
УстановитьЗаголовокФлажкаРассчитатьЗарплату();
УстановитьСвойствоРассчитатьЗарплату(ЭтаФорма);
УстановитьЗаголовокСредиДетейЕстьПервый();
УстановитьОтображениеНадписей();
УстановитьВидимостьРазмераЛьгот(ЭтотОбъект);
УстановитьВидимостьРасчетныхПолей();
ОбновитьДоступностьЭлементовФормы(ЭтаФорма);
УстановитьОтображениеНомеровДокумента();
ОтпускаПоУходуЗаРебенком.УстановитьВидимостьГруппыПособиеДоТрехЛет(ЭтотОбъект);
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.УстановитьВидимостьГруппыЛьготы(Элементы, "ГруппаЛьготы");
Модуль.УстановитьВидимостьГруппыЛьготы(Элементы, "ГруппаОплатаЛьгот");
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура ДополнитьФорму(ОтложенноеИзменение = Неопределено)
Если ОтложенноеИзменение = Неопределено Тогда
ЗарплатаКадрыРасширенный.РедактированиеСоставаДополнительныхПоказателейДополнитьФорму(ЭтаФорма, ОписаниеТаблицыНачислений(), РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенный.НесколькоРабочихМестДополнитьФорму(ЭтаФорма, ОписаниеФормы(), СтруктураТаблицФормы(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйФормы.ДокументыНачисленийДополнитьФормуРезультатыРаспределения(ЭтаФорма, ОписанияТаблицДляРаспределенияРезультата(РегистрацияНачисленийДоступна));
Если РегистрацияНачисленийДоступна Тогда
УчетНДФЛФормы.ДополнитьФормуПанельюВычетов(ЭтаФорма);
КонецЕсли;
ЗарплатаКадрыРасширенный.МногофункциональныеДокументыДобавитьЭлементыФормы(ЭтаФорма, НСтр("ru='Документ утвержден'"), , "НачисленияУтверждены");
ЗарплатаКадрыРасширенный.СформироватьСписокВыбораПорядкаПересчета(Элементы, РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенный.СформироватьСписокВыбораПорядкаПересчета(Элементы, РегистрацияНачисленийДоступна, "ПересчетТарифныхСтавокПорядокРасчетаСтоимостиЕдиницыВремени");
ЗарплатаКадры.КлючевыеРеквизитыЗаполненияФормыЗаполнитьПредупреждения(ЭтаФорма);
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
НадписьВалютаПособияФиксированнойСуммой = НСтр("ru = 'руб.'");
Иначе
Если ОтложенноеИзменение Тогда
ДобавлятьЭлементыФормы = Ложь;
ДобавлятьРеквизитыФормы = Истина;
Иначе
ДобавлятьЭлементыФормы = Истина;
ДобавлятьРеквизитыФормы = Ложь;
КонецЕсли;
ДополнительныеПараметры = Новый Структура(
"КонтролируемыеПоля,
|ДобавлятьЭлементыФормы,
|ДобавлятьРеквизитыФормы,
|ОтложенноеИзменение");
ДополнительныеПараметры.ДобавлятьЭлементыФормы = ДобавлятьЭлементыФормы;
ДополнительныеПараметры.ДобавлятьРеквизитыФормы = ДобавлятьРеквизитыФормы;
ДополнительныеПараметры.ОтложенноеИзменение = ОтложенноеИзменение;
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыНачислений(), "Начисления", 1, РегистрацияНачисленийДоступна И ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыЛьгот(), "Начисления", 1, РегистрацияНачисленийДоступна И ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
РасчетЗарплатыРасширенныйФормы.ДокументыВыполненияНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна), "Начисления", , РегистрацияНачисленийДоступна,, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение, Объект.Ссылка);
РасчетЗарплатыРасширенныйФормы.ДокументыВыполненияНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна), "Удержания", , РегистрацияНачисленийДоступна,, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение, Объект.Ссылка);
РасчетЗарплатыРасширенныйФормы.ДокументыВыполненияНачисленийДополнитьФорму(
ЭтаФорма, ОписаниеТаблицыНДФЛ(РегистрацияНачисленийДоступна), "", , РегистрацияНачисленийДоступна,, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение, Объект.Ссылка);
РасчетЗарплатыРасширенныйФормы.РаспределениеПоТерриториямУсловиямТрудаДополнитьФорму(
ЭтаФорма, Объект.Организация, ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда(), ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.ДокументыВыполненияНачисленийДополнитьФорму(ЭтотОбъект, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна), "ОплатаЛьготАвтоКоманды", , "ГруппаОплатаЛьгот", РегистрацияНачисленийДоступна, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение, Объект.Ссылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ПриДополненииФормыДокументаОтпускПоУходуЗаРебенком(ЭтаФорма, ДополнительныеПараметры);
КонецЕсли;
ОтпускаПоУходуЗаРебенком.ОбновитьПоляВводаПоказателейПособияДоТрехЛет(
ЭтаФорма, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
РасчетЗарплатыРасширенныйФормы.ПорядокВыплатыЗарплатыДополнитьФорму(
ЭтаФорма, , ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ЗарплатаКадрыРасширенный.ОформлениеНесколькихДокументовНаОднуДатуДополнитьФорму(
ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ИсправлениеДокументовЗарплатаКадры.ГруппаИсправлениеДополнитьФорму(
ЭтаФорма, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
ОтражениеЗарплатыВБухучетеРасширенный.ОбъектПриЧтенииНаСервереПроцентЕНВД(
ЭтаФорма, Объект.Организация, Объект.ПериодРегистрации, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.ДополнитьФормуКадровогоДокумента(ЭтотОбъект, ОписаниеТаблицыЛьгот(), ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЦепочкиДокументов") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЦепочкиДокументовФормы");
Модуль.ДополнитьФормуДокументаЭлементамиЗамещения(ЭтаФорма, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
КадровыеРешенияФормы.ДополнитьФормуКадровогоДокумента(ЭтотОбъект, ДобавлятьЭлементыФормы, ДобавлятьРеквизитыФормы, ОтложенноеИзменение);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Функция ПараметрыРедактированияСреднегоЗаработка()
ПараметрыРедактирования = УчетПособийСоциальногоСтрахованияКлиентСервер.ПараметрыРедактированияСреднегоЗаработкаФССПоДокументу();
ПараметрыРедактирования.ДокументСсылка = Объект.Ссылка;
ПараметрыРедактирования.Сотрудник = Объект.ОсновнойСотрудник;
ПараметрыРедактирования.Организация = Объект.Организация;
ПараметрыРедактирования.ДатаНачалаСобытия = Объект.ДатаНачала;
ПараметрыРедактирования.НачалоПериодаРасчета = Объект.ПериодРасчетаСреднегоЗаработкаНачало;
ПараметрыРедактирования.ОкончаниеПериодаРасчета = Объект.ПериодРасчетаСреднегоЗаработкаОкончание;
ПараметрыРедактирования.ФиксПериодРасчета = Объект.ФиксПериодРасчетаСреднегоЗаработка;
ПараметрыРедактирования.ГодыПериодаРасчета = УчетПособийСоциальногоСтрахования.ГодыПериодаРасчетаСреднего(Объект);
ПараметрыРедактирования.ПорядокРасчета = ПорядокРасчетаСреднегоЗаработкаФСС();
ПараметрыРедактирования.ПараметрыРасчета = ПараметрыРасчетаСреднегоДневногоЗаработкаФСС();
ПараметрыРедактирования.ИспользоватьДниБолезниУходаЗаДетьми = ПараметрыРедактирования.ПараметрыРасчета.ИспользоватьДниБолезниУходаЗаДетьми;
ПараметрыРедактирования.УчитыватьЗаработокПредыдущихСтрахователей = Объект.УчитыватьЗаработокПредыдущихСтрахователей;
УчетПособийСоциальногоСтрахованияРасширенный.ЗаполнитьТаблицыДанныхСреднегоЗаработкаФССПоДокументу(Объект, ПараметрыРедактирования);
Возврат ПараметрыРедактирования;
КонецФункции
&НаСервере
Процедура УстановитьФункциональныеОпцииФормы()
УстановитьПривилегированныйРежим(Истина);
ПараметрыФО = Новый Структура("Организация, Период", Объект.Организация, Объект.ПериодРегистрации);
УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыФО);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДанныхДляФСС()
Элементы.ГруппаДанныеДляФСС.Видимость = ПрямыеВыплатыПособийСоциальногоСтрахования.ПособиеПлатитУчастникПилотногоПроекта(Объект.Организация, Объект.ДатаОкончанияПособияДоПолутораЛет);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьДоступностьЭлементовФормы(ЭтаФорма)
СотрудникЗаполнен = ЗначениеЗаполнено(ЭтаФорма.Объект.Сотрудник);
Если ЭтаФорма.ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений
Или ЭтаФорма.ОграниченияНаУровнеЗаписей.ПлановыеНачисленияИзменениеБезОграничений Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"НеНачислятьЗарплатуИНеВыплачиватьАвансВоВремяОтпуска",
"Доступность",
СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"ИзменитьНачисления",
"Доступность",
СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"Обновить",
"Доступность",
ЭтаФорма.Объект.ИзменитьНачисления И СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"Начисления",
"Доступность",
ЭтаФорма.Объект.ИзменитьНачисления И СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"ТарифнаяСтавкаГруппа",
"Доступность",
ЭтаФорма.Объект.ИзменитьНачисления И СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"ПоказателиГруппа",
"Доступность",
ЭтаФорма.Объект.ИзменитьНачисления И СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"ИзменитьЛьготы",
"Доступность",
Не ЭтаФорма.Объект.НеНачислятьЗарплатуИНеВыплачиватьАвансВоВремяОтпуска И СотрудникЗаполнен);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭтаФорма.Элементы,
"Льготы",
"Доступность",
ЭтаФорма.Объект.ИзменитьЛьготы И СотрудникЗаполнен);
КонецЕсли;
УстановитьДоступностьЭлементовЗависимыхОтВыплатыПособияДоПолутораЛет(ЭтаФорма);
УстановитьДоступностьЭлементовЗависимыхОтВыплатыПособияДоТрехЛет(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыРабочихМест(ОписаниеФормы)
ОписаниеТаблицыРабочихМест = Новый Структура;
ОписаниеТаблицыРабочихМест.Вставить("ИмяТаблицы", ОписаниеФормы.ИмяТаблицыРабочихМест);
ОписаниеТаблицыРабочихМест.Вставить("ИмяРеквизитаСотрудник", "РабочееМесто");
ОписаниеТаблицыРабочихМест.Вставить("ИмяРеквизитаПредставлениеРабочегоМеста", "ПредставлениеРабочегоМеста");
ОписаниеТаблицыРабочихМест.Вставить("ИмяРеквизитаПодразделение", "Подразделение");
ОписаниеТаблицыРабочихМест.Вставить("ПутьКДанным", "РабочиеМестаФизическогоЛица");
Возврат ОписаниеТаблицыРабочихМест
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыПересчетТарифныхСтавок(ОписаниеФормы)
ОписаниеТаблицыПересчетТарифныхСтавок = Новый Структура;
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяТаблицы", ОписаниеФормы.ИмяТаблицыПересчетТарифныхСтавок);
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаСотрудник", "РабочееМесто");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаПредставлениеРабочегоМеста", "ПредставлениеРабочегоМеста");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ПутьКДанным", "Объект.ПересчетТарифныхСтавок");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаПоказателя", "ПорядокРасчетаСтоимостиЕдиницыВремени");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаПоказателяТекущий", "ТекущийПорядокРасчетаСтоимостиЕдиницыВремени");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаСовокупнаяТарифнаяСтавка", "СовокупнаяТарифнаяСтавка");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаСовокупнаяТарифнаяСтавкаТекущий", "ТекущийСовокупнаяТарифнаяСтавка");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаВидТарифнойСтавки", "ВидТарифнойСтавки");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаВидТарифнойСтавкиТекущий", "ТекущийВидТарифнойСтавки");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяРеквизитаКомментарий", "Комментарий");
ОписаниеТаблицыПересчетТарифныхСтавок.Вставить("ИмяПоляДляВставкиПредставленияРабочегоМеста","ПересчетТарифныхСтавокПорядокРасчетаСтоимостиЕдиницыВремени");
Возврат ОписаниеТаблицыПересчетТарифныхСтавок;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыНачислений()
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Ложь, Истина);
ОписаниеТаблицыВидовРасчета.ИмяПоляДляВставкиПоказателей = "НачисленияДокументОснование";
ОписаниеТаблицыВидовРасчета.СодержитПолеСотрудник = Истина;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаСотрудник = "РабочееМесто";
ОписаниеТаблицыВидовРасчета.Вставить("ИмяРеквизитаПредставлениеРабочегоМеста", "ПредставлениеРабочегоМеста");
ОписаниеТаблицыВидовРасчета.Вставить("ИмяПоляДляВставкиПредставленияРабочегоМеста","НачисленияНачисление");
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "ДокументОснование";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыПоказателей()
ОписаниеТаблицы = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПоказателей();
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыЛьгот()
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Ложь, Истина);
ОписаниеТаблицыВидовРасчета.ИмяТаблицы = "Льготы";
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаВидРасчета = "Льгота";
ОписаниеТаблицыВидовРасчета.ПутьКДанным = "Объект.Льготы";
ОписаниеТаблицыВидовРасчета.ПутьКДаннымПоказателей = "Объект.Показатели";
ОписаниеТаблицыВидовРасчета.НомерТаблицы = 6;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаФиксРасчет = "ЛьготыФиксРасчет";
ОписаниеТаблицыВидовРасчета.ИмяПоляДляВставкиПоказателей = "ЛьготыДействие";
ОписаниеТаблицыВидовРасчета.СодержитПолеСотрудник = Истина;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаСотрудник = "РабочееМесто";
ОписаниеТаблицыВидовРасчета.Вставить("ИмяРеквизитаПредставлениеРабочегоМеста", "ПредставлениеРабочегоМеста");
ОписаниеТаблицыВидовРасчета.Вставить("ИмяПоляДляВставкиПредставленияРабочегоМеста","ЛьготыЛьгота");
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыОписанияДокумента(Форма)
ПараметрыОписания = Новый Структура;
ПараметрыОписания.Вставить("ИзменениеБезОграничений", Форма.ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений);
ПараметрыОписания.Вставить("РегистрацияНачисленийДоступна", Форма.РегистрацияНачисленийДоступна);
ПараметрыОписания.Вставить("ПорядокВыплаты", Форма.Объект.ПорядокВыплаты);
ПараметрыОписания.Вставить("РассчитатьЗарплату", Форма.Объект.РассчитатьЗарплату);
Возврат ПараметрыОписания;
КонецФункции
&НаСервереБезКонтекста
Функция ОписаниеДокумента(ПараметрыОписания)
Описание = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеРасчетногоДокумента();
Описание.МесяцНачисленияИмя = "ПериодРегистрации";
Описание.НачисленияИмя = "ОплатаТруда";
Описание.УдержанияИмя = "Удержания";
Описание.НДФЛИмя = "НДФЛ";
Описание.КорректировкиВыплатыИмя = "КорректировкиВыплаты";
Описание.ВзносыИмя = "Взносы";
Описание.ПримененныеВычетыИмя = "ПримененныеВычетыНаДетейИИмущественные";
Описание.ПогашениеЗаймовИмя = "ПогашениеЗаймов";
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
Модуль.ДополнитьОписаниеРасчетногоДокумента(Описание);
КонецЕсли;
Описание.РежимНачисления = ПредопределенноеЗначение("Перечисление.РежимНачисленияЗарплаты.ОкончательныйРасчет");
Описание.РегистрацияНачисленийДоступна = ПараметрыОписания.ИзменениеБезОграничений;
Описание.ОбязательныеПоля.Добавить(РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеОбязательногоПоляДокумента("Месяц", "МесяцНачисленияСтрокой"));
Описание.ОбязательныеПоля.Добавить(РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеОбязательногоПоляДокумента("Сотрудник", "Объект.Сотрудник"));
Описание.ОбязательныеПоля.Добавить(РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеОбязательногоПоляДокумента("Дата начала", "Объект.ДатаНачала"));
Описание.ДатаНачалаСобытияИмя = "ДатаНачала";
Описание.ОписанияТаблицДляРаспределенияРезультата = СтруктураОписанияТаблицДляРаспределенияРезультата(ПараметрыОписания.РегистрацияНачисленийДоступна);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудниковКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудниковКлиентСервер");
МодульЛьготыСотрудниковКлиентСервер.ДополнитьОписаниеДокументаНачислениеЗарплаты(Описание, "ОплатаЛьгот");
КонецЕсли;
Возврат Описание;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеПанелиВычеты()
ОписаниеПанелиВычеты = УчетНДФЛКлиентСервер.ОписаниеПанелиВычеты();
ОписаниеТабличнойЧастиНДФЛ = УчетНДФЛКлиентСервер.ОписаниеТабличнойЧастиНДФЛ();
ОписаниеТабличнойЧастиНДФЛ.ИспользуетсяФиксРасчет = Истина;
ОписаниеТабличнойЧастиНДФЛ.ИмяПоляПериод = "";
ОписаниеПанелиВычеты.ТабличнаяЧастьНДФЛ = ОписаниеТабличнойЧастиНДФЛ;
РасчетЗарплатыКлиентСервер.ДополнитьОписаниеПанелиВычеты(ОписаниеПанелиВычеты);
ОписаниеТабличнойЧастиКорректировкиВыплаты = РасчетЗарплатыКлиентСервер.ОписаниеТабличнойЧастиКорректировкиВыплаты();
ОписаниеТабличнойЧастиКорректировкиВыплаты.ИспользуетсяФиксРасчет = Истина;
ОписаниеПанелиВычеты.ТабличнаяЧастьКорректировкиВыплаты = ОписаниеТабличнойЧастиКорректировкиВыплаты;
НастраиваемыеПанели = Новый Соответствие;
НастраиваемыеПанели.Вставить("ВычетыЛичные", Истина);
НастраиваемыеПанели.Вставить("ВычетыНаДетейИИмущественные", "Объект.ПримененныеВычетыНаДетейИИмущественные");
НастраиваемыеПанели.Вставить("ВычетыКДоходам", "Объект.ОплатаТруда");
ОписаниеПанелиВычеты.НастраиваемыеПанели = НастраиваемыеПанели;
Возврат ОписаниеПанелиВычеты;
КонецФункции
&НаКлиенте
Функция ОписаниеПанелиВычетыНаКлиенте() Экспорт
Возврат ОписаниеПанелиВычеты();
КонецФункции
&НаСервере
Функция ОписаниеПанелиВычетыНаСервере() Экспорт
Возврат ОписаниеПанелиВычеты();
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыОплатаТруда(ПравоНаЧтениеДокументаБезОграничений)
ОписаниеТаблицы = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыРасчета();
ОписаниеТаблицы.ИмяТаблицы = "ОплатаТруда";
ОписаниеТаблицы.ПутьКДанным = "Объект.ОплатаТруда";
ОписаниеТаблицы.ИмяПоляДляВставкиПоказателей = "ДатыНачисления";
ОписаниеТаблицы.НомерТаблицы = 1;
ОписаниеТаблицы.СодержитПолеСотрудник = Истина;
ОписаниеТаблицы.СодержитПолеКодВычета = Истина;
ОписаниеТаблицы.ОтображатьПоляОписанияВремени = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.ОтображатьПоляНормыВремени = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.УправлятьОтображениемПолейОписанияВремени = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.ИмяПоляДляВставкиРаспределенияРезультатов = "ОплатаТрудаРезультат";
ОписаниеТаблицы.ВставлятьПослеПоля = Истина;
ОписаниеТаблицы.ОтображатьПоляРаспределенияРезультатов = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.РаспределениеРезультатовЗависимыеТаблицы = "ОплатаТруда,ПогашениеЗаймов,Удержания,НДФЛ,КорректировкиВыплаты";
ОписаниеТаблицы.ИмяРеквизитаПериод = "ПериодРегистрации";
ОписаниеТаблицы.ИмяРеквизитаДокументОснование = "ДокументОснование";
ОписаниеТаблицы.СодержитПолеМестоПолученияДохода = Истина;
ОписаниеТаблицы.Вставить("ИмяРеквизитаПредставлениеРабочегоМеста", "ПредставлениеРабочегоМеста");
ОписаниеТаблицы.Вставить("ИмяПоляДляВставкиПредставленияРабочегоМеста","ОплатаТрудаПодразделение");
ОписаниеТаблицы.Вставить("ИмяРеквизитаПодразделение", "Подразделение");
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыОплатаЛьгот(ПравоНаЧтениеДокументаБезОграничений)
ОписаниеТаблицы = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыРасчета();
ОписаниеТаблицы.ИмяТаблицы = "ОплатаЛьгот";
ОписаниеТаблицы.ПутьКДанным = "Объект.ОплатаЛьгот";
ОписаниеТаблицы.ИмяПоляДляВставкиПоказателей = "ДатыОплатаЛьгот";
ОписаниеТаблицы.НомерТаблицы = 7;
ОписаниеТаблицы.СодержитПолеСотрудник = Истина;
ОписаниеТаблицы.СодержитПолеКодВычета = Истина;
ОписаниеТаблицы.ОтображатьПоляОписанияВремени = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.ОтображатьПоляНормыВремени = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.УправлятьОтображениемПолейОписанияВремени = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.ИмяПоляДляВставкиРаспределенияРезультатов = "ОплатаЛьготРезультат";
ОписаниеТаблицы.ВставлятьПослеПоля = Истина;
ОписаниеТаблицы.ИмяРеквизитаПериод = "ПериодРегистрации";
ОписаниеТаблицы.ОтображатьПоляРаспределенияРезультатов = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.РаспределениеРезультатовЗависимыеТаблицы = "ПогашениеЗаймов,Удержания,НДФЛ,КорректировкиВыплаты";
ОписаниеТаблицы.СодержитПолеМестоПолученияДохода = Истина;
ОписаниеТаблицы.Вставить("ИмяРеквизитаПредставлениеРабочегоМеста", "ПредставлениеРабочегоМеста");
ОписаниеТаблицы.Вставить("ИмяПоляДляВставкиПредставленияРабочегоМеста","ОплатаЛьготПодразделение");
ОписаниеТаблицы.Вставить("ИмяРеквизитаПодразделение", "Подразделение");
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыУдержаний(ПравоНаЧтениеДокументаБезОграничений)
ОписаниеТаблицы = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыРасчета();
ОписаниеТаблицы.ИмяТаблицы = "Удержания";
ОписаниеТаблицы.ПутьКДанным = "Объект.Удержания";
ОписаниеТаблицы.ИмяРеквизитаВидРасчета = "Удержание";
ОписаниеТаблицы.ИмяПоляДляВставкиПоказателей = "УдержанияРезультат";
ОписаниеТаблицы.СодержитПолеСотрудник = Истина;
ОписаниеТаблицы.ИмяРеквизитаСотрудник = "ФизическоеЛицо";
ОписаниеТаблицы.НомерТаблицы = 2;
ОписаниеТаблицы.ПутьКДаннымРаспределениеРезультатов = "Объект.РаспределениеРезультатовУдержаний";
ОписаниеТаблицы.ИмяПоляДляВставкиРаспределенияРезультатов = "УдержанияРезультат";
ОписаниеТаблицы.ВставлятьПослеПоля = Истина;
ОписаниеТаблицы.ОтображатьПоляРаспределенияРезультатов = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.ИмяРеквизитаПериод = "ПериодРегистрации";
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыНДФЛ(ПравоНаЧтениеДокументаБезОграничений)
ОписаниеТаблицы = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыРасчета();
ОписаниеТаблицы.ИмяТаблицы = "НДФЛ";
ОписаниеТаблицы.ПутьКДанным = "Объект.НДФЛ";
ОписаниеТаблицы.ИмяПоляДляВставкиПоказателей = "Налог";
ОписаниеТаблицы.ИмяРеквизитаСотрудник = "ФизическоеЛицо";
ОписаниеТаблицы.ИмяПоляРезультат = "Налог";
ОписаниеТаблицы.ИмяРеквизитаПериод = "МесяцНалоговогоПериода";
ОписаниеТаблицы.НомерТаблицы = 3;
ОписаниеТаблицы.СодержитПолеВидРасчета = Ложь;
ОписаниеТаблицы.Вставить("ИмяРеквизитаПодразделение", "Подразделение");
ОписаниеТаблицы.ПутьКДаннымРаспределениеРезультатов = "Объект.РаспределениеРезультатовУдержаний";
ОписаниеТаблицы.ИмяРеквизитаИдентификаторСтроки = "ИдентификаторСтрокиНДФЛ";
ОписаниеТаблицы.ИмяПоляДляВставкиРаспределенияРезультатов = "НДФЛМесяцНалоговогоПериода";
ОписаниеТаблицы.ОтображатьПоляРаспределенияРезультатов = ПравоНаЧтениеДокументаБезОграничений;
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыКорректировкиВыплаты(ПравоНаЧтениеДокументаБезОграничений)
Описание = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыКорректировкиВыплаты();
Описание.ПроверяемыеРеквизиты = "ФизическоеЛицо";
Описание.ОтображатьПоляРаспределенияРезультатов = ПравоНаЧтениеДокументаБезОграничений;
Возврат Описание;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыПогашениеЗаймов(ПравоНаЧтениеДокументаБезОграничений)
ОписаниеТаблицы = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыРасчета();
ОписаниеТаблицы.ИмяТаблицы = "ПогашениеЗаймов";
ОписаниеТаблицы.ПутьКДанным = "Объект.ПогашениеЗаймов";
ОписаниеТаблицы.СодержитПолеВидРасчета = Ложь;
ОписаниеТаблицы.НомерТаблицы = 5;
ОписаниеТаблицы.ПутьКДаннымРаспределениеРезультатов = "Объект.РаспределениеРезультатовУдержаний";
ОписаниеТаблицы.ИмяРеквизитаСотрудник = "ФизическоеЛицо";
ОписаниеТаблицы.ИмяРеквизитаИдентификаторСтроки = "ИдентификаторСтроки";
ОписаниеТаблицы.ОтображатьПоляРаспределенияРезультатов = ПравоНаЧтениеДокументаБезОграничений;
ОписаниеТаблицы.УстанавливатьИдентификаторСтрокиРаспределенияРезультата = Истина;
ОписаниеТаблицы.ОтменятьВсеИсправления = Истина;
Возврат ОписаниеТаблицы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписанияТаблицДляРаспределенияРезультата(ПравоНаЧтениеДокументаБезОграничений)
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыОплатаТруда(ПравоНаЧтениеДокументаБезОграничений));
ОписанияТаблиц.Добавить(ОписаниеТаблицыУдержаний(ПравоНаЧтениеДокументаБезОграничений));
ОписанияТаблиц.Добавить(ОписаниеТаблицыНДФЛ(ПравоНаЧтениеДокументаБезОграничений));
ОписанияТаблиц.Добавить(ОписаниеТаблицыКорректировкиВыплаты(ПравоНаЧтениеДокументаБезОграничений));
ОписанияТаблиц.Добавить(ОписаниеТаблицыПогашениеЗаймов(ПравоНаЧтениеДокументаБезОграничений));
ОписанияТаблиц.Добавить(ОписаниеТаблицыОплатаЛьгот(ПравоНаЧтениеДокументаБезОграничений));
Возврат ОписанияТаблиц;
КонецФункции
&НаСервереБезКонтекста
Функция СтруктураОписанияТаблицДляРаспределенияРезультата(РегистрацияНачисленийДоступна)
ОписанияТаблиц = Новый Структура;
ОписанияТаблиц.Вставить("ОплатаТруда", ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
ОписанияТаблиц.Вставить("Удержания", ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
ОписанияТаблиц.Вставить("НДФЛ", ОписаниеТаблицыНДФЛ(РегистрацияНачисленийДоступна));
ОписанияТаблиц.Вставить("КорректировкиВыплаты", ОписаниеТаблицыКорректировкиВыплаты(РегистрацияНачисленийДоступна));
ОписанияТаблиц.Вставить("ПогашениеЗаймов", ОписаниеТаблицыПогашениеЗаймов(РегистрацияНачисленийДоступна));
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудниковКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудниковКлиентСервер");
МодульЛьготыСотрудниковКлиентСервер.ДополнитьСтруктуруОписанийТаблицФормыНачисленияЗарплаты(ОписанияТаблиц, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
КонецЕсли;
Возврат ОписанияТаблиц;
КонецФункции
&НаСервере
Функция СтруктураТаблицФормы(ЧтениеБезОграничений)
ОписаниеФормы = ОписаниеФормы();
СтруктураТаблицФормы = ЗарплатаКадрыРасширенный.НесколькоРабочихМестСтруктураТаблицФормы();
СтруктураТаблицФормы.ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы);
СтруктураТаблицФормы.ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
СтруктураТаблицФормы.ОписаниеТаблицыПересчетТарифныхСтавок = ОписаниеТаблицыПересчетТарифныхСтавок(ОписаниеФормы);
СтруктураТаблицФормы.ОписаниеТаблицыОплатаТруда = ОписаниеТаблицыОплатаТруда(ЧтениеБезОграничений);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.ДополнитьСтруктуруОписанийТаблицФормыОтпускаПоУходу(СтруктураТаблицФормы, ОписаниеТаблицыЛьгот(), ОписаниеТаблицыОплатаЛьгот(ЧтениеБезОграничений));
КонецЕсли;
Возврат СтруктураТаблицФормы;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеФормы()
ОписаниеФормы = Новый Структура;
ОписаниеФормы.Вставить("ЕстьАвансы", Ложь);
ОписаниеФормы.Вставить("ЕстьПрименениеПлановыхНачислений", Ложь);
ОписаниеФормы.Вставить("ЕстьПересчетТарифныхСтавок", Истина);
ОписаниеФормы.Вставить("ЕстьОплатаТруда", Истина);
ОписаниеФормы.Вставить("ФизическоеЛицоПутьКДанным", "Объект.Сотрудник");
ОписаниеФормы.Вставить("ДатаПутьКДанным", "ВремяРегистрации");
ОписаниеФормы.Вставить("ОрганизацияПутьКДанным", "Объект.Организация");
ОписаниеФормы.Вставить("ОбъектПутьКДанным", "Объект");
ОписаниеФормы.Вставить("ИмяРеквизитаПризнакаНесколькихРабочихМест", "РабочихМестФизическогоЛицаНесколько");
ОписаниеФормы.Вставить("ИмяТаблицыРабочихМест", "РабочиеМестаФизическогоЛица");
ОписаниеФормы.Вставить("ИмяТаблицыНачисления", "Начисления");
ОписаниеФормы.Вставить("ИмяТаблицыПересчетТарифныхСтавок", "ПересчетТарифныхСтавок");
ОписаниеФормы.Вставить("ИмяТаблицыОплатаТруда", "ОплатаТруда");
ОписаниеФормы.Вставить("ИмяТаблицыЛьготы", "Льготы");
ОписаниеФормы.Вставить("ИмяТаблицыОплатаЛьгот", "ОплатаЛьгот");
ОписаниеФормы.Вставить("ИмяГруппыОдиночногоЭлементаПересчетТарифныхСтавок", "ОдиночныйПересчетТарифныхСтавок");
ОписаниеФормы.Вставить("ИмяГруппыТаблицыПересчетТарифныхСтавок", "НесколькоПересчетТарифныхСтавок");
ОписаниеФормы.Вставить("ИмяРеквизитаПорядокПересчета", "ПорядокРасчетаСтоимостиЕдиницыВремени");
ОписаниеФормы.Вставить("ИмяРеквизитаПорядокПересчетаКомментарий", "ПорядокРасчетаСтоимостиЕдиницыВремениКомментарий");
ОписаниеФормы.Вставить("ИмяРеквизитаСовокупнаяТарифнаяСтавка", "СовокупнаяТарифнаяСтавка");
ОписаниеФормы.Вставить("ИмяРеквизитаСовокупнаяТарифнаяСтавкаКомментарий", "СовокупнаяТарифнаяСтавкаКомментарий");
ОписаниеФормы.Вставить("ИмяРеквизитаСовокупнаяТарифнаяСтавкаРазмерность", "СовокупнаяТарифнаяСтавкаРазмерность");
Возврат ОписаниеФормы;
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиНачислений()
ОписаниеКоманднойПанелиНачислений = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиНачислений();
Возврат ОписаниеКоманднойПанелиНачислений
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиПоказателей()
ОписаниеКоманднойПанелиПоказателей = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиПоказателей();
Возврат ОписаниеКоманднойПанелиПоказателей;
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиЛьгот()
ОписаниеКоманднойПанелиЛьгот = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиНачислений();
ОписаниеКоманднойПанелиЛьгот.СтраницыКоманднойПанелиНачислений = "ЛьготыСтраницыКоманднойПанели";
ОписаниеКоманднойПанелиЛьгот.СтраницаДобавитьОтменить = "ЛьготыСтраницаДобавитьОтменить";
ОписаниеКоманднойПанелиЛьгот.СтраницаДобавитьПродолжить = "ЛьготыСтраницаДобавитьПродолжить";
ОписаниеКоманднойПанелиЛьгот.СтраницаДобавитьУдалить = "ЛьготыСтраницаДобавитьУдалить";
Возврат ОписаниеКоманднойПанелиЛьгот;
КонецФункции
&НаСервере
Функция ТаблицаСотрудников(Форма)
МассивСотрудников = КадровыйУчетРасширенный.МассивСотрудников(Форма.Объект.Сотрудник, Форма.Объект.Организация, Форма.ВремяРегистрации);
ПрочитатьВремяРегистрации(МассивСотрудников);
ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
ТаблицаСотрудников.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
ПериодПолученияНачислений = Форма.ВремяРегистрации;
Для Каждого ЭлМассивСотрудников Из МассивСотрудников Цикл
НоваяСтрокаТаблицаСотрудников = ТаблицаСотрудников.Добавить();
НоваяСтрокаТаблицаСотрудников.Сотрудник = ЭлМассивСотрудников;
НоваяСтрокаТаблицаСотрудников.Организация = Форма.Объект.Организация;
НоваяСтрокаТаблицаСотрудников.Период = ПериодПолученияНачислений;
КонецЦикла;
Возврат ТаблицаСотрудников
КонецФункции
&НаСервере
Процедура ЗаполнитьСоставДействующихНачисленийСотрудника()
ТаблицаСотрудников = ТаблицаСотрудников(ЭтаФорма);
ПрочитатьДанныеСотрудников(ТаблицаСотрудников.ВыгрузитьКолонку("Сотрудник"), ВремяРегистрации);
Объект.Начисления.Очистить();
Объект.Показатели.Очистить();
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДействующиеНачисленияВРеквизит(Объект.Ссылка, ТаблицаСотрудников, ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, Объект.ДатаНачала);
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеНачисленийСотрудника()
ТаблицаСотрудников = ТаблицаСотрудников(ЭтаФорма);
ПрочитатьДанныеСотрудников(ТаблицаСотрудников.ВыгрузитьКолонку("Сотрудник"), ВремяРегистрации);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийПрочитатьТекущиеДанные(Объект.Ссылка, ТаблицаСотрудников, ЭтаФорма, ОписаниеТаблицыВидовРасчета, 1, , Объект.ДатаНачала);
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеПоСотруднику(СотрудникИзменился = Ложь)
УстановитьПривилегированныйРежим(Истина);
Если СотрудникИзменился Тогда
ЗаполнитьСоставДействующихНачисленийСотрудника();
Иначе
ОбновитьДанныеНачисленийСотрудника()
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиентСервер.РассчитатьИтогиФОТВФормеДокументаСНесколькимиРабочимиМестами(ЭтаФорма, ОписаниеТаблицыНачислений());
ЗаполнитьСоставДействующихЛьготСотрудника();
НесколькоРабочихМестОбработкаФормы(Истина);
Если Не ЗначениеЗаполнено(Объект.ОсновнойСотрудник) Тогда
Возврат;
КонецЕсли;
ИменаКадровыхДанных =
"Организация,
|Подразделение,
|Территория,
|ФизическоеЛицо,
|РайонныйКоэффициентРФ,
|ЛьготаПриНачисленииПособий,
|ДоляНеполногоРабочегоВремени";
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудника(
Истина,
Объект.ОсновнойСотрудник,
ИменаКадровыхДанных,
ВремяРегистрации);
ОбновитьПрименениеЛьготыПриНачисленииПособия(КадровыеДанные);
ОбновитьДолюНеполногоВремени(КадровыеДанные);
ОбновитьРайонныйКоэффициентРФНаНачалоСобытия(КадровыеДанные);
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, ОписаниеТаблицыПересчетТарифныхСтавок(ОписаниеФормы));
КонецПроцедуры
&НаСервере
Процедура УстановитьИспользованиеЗаработкаПредыдущихСтрахователей()
Объект.УчитыватьЗаработокПредыдущихСтрахователей = КадровыйУчетРасширенный.УчитыватьЗаработокПредыдущихСтрахователей(Объект.Сотрудник, Объект.Организация);
КонецПроцедуры
&НаСервере
Процедура ОбновитьДолюНеполногоВремени(КадровыеДанные)
Объект.ДоляНеполногоВремени = КадровыеДанные.ДоляНеполногоРабочегоВремени;
КонецПроцедуры
&НаСервере
Процедура ОбновитьРайонныйКоэффициентРФНаНачалоСобытия(КадровыеДанные)
Если ТипЗнч(КадровыеДанные.РайонныйКоэффициентРФ) = Тип("Число")
И КадровыеДанные.РайонныйКоэффициентРФ >= 1 Тогда
Объект.РайонныйКоэффициентРФНаНачалоСобытия = КадровыеДанные.РайонныйКоэффициентРФ;
Иначе
ОбъектРК = РасчетЗарплатыРасширенный.ИсточникРайонногоКоэффициентаРФ(КадровыеДанные);
Если Не ЗначениеЗаполнено(ОбъектРК) Тогда
ОбъектРК = Объект.Организация;
КонецЕсли;
Объект.РайонныйКоэффициентРФНаНачалоСобытия = РасчетЗарплатыРасширенный.РайонныйКоэффициентРФ(ОбъектРК);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьПрименениеЛьготыПриНачисленииПособия(КадровыеДанные);
Объект.ПрименятьЛьготыПриНачисленииПособия = ЗначениеЗаполнено(КадровыеДанные.ЛьготаПриНачисленииПособий)
И КадровыеДанные.ЛьготаПриНачисленииПособий <> Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.Семипалатинск
И ?(ЗначениеЗаполнено(Объект.ДатаНачала), Объект.ДатаНачала, Объект.Дата) < УчетПособийСоциальногоСтрахованияКлиентСервер.ДатаОтменыЛьготФинансируемыхИзБюджета();
Объект.ФинансированиеФедеральнымБюджетом = ?(КадровыеДанные.ЛьготаПриНачисленииПособий = Перечисления.ОснованияФинансированияПособияФедеральнымБюджетом.Семипалатинск
Или ?(ЗначениеЗаполнено(Объект.ДатаНачала), Объект.ДатаНачала, Объект.Дата) >= УчетПособийСоциальногоСтрахованияКлиентСервер.ДатаОтменыЛьготФинансируемыхИзБюджета(),
Неопределено,
КадровыеДанные.ЛьготаПриНачисленииПособий);
КонецПроцедуры
&НаСервере
Процедура ДанныеНачисленийВРеквизит(ТекущийОбъект)
УстановитьПривилегированныйРежим(Истина);
МассивСотрудников = КадровыйУчетРасширенный.МассивСотрудников(Объект.Сотрудник, Объект.Организация, ВремяРегистрации);
ПрочитатьДанныеСотрудников(МассивСотрудников, ВремяРегистрации);
ТаблицаСотрудников = Новый ТаблицаЗначений;
ТаблицаСотрудников.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники"));
ТаблицаСотрудников.Колонки.Добавить("Период", Новый ОписаниеТипов("Дата"));
ПериодПолученияНачислений = ВремяРегистрации;
Для Каждого ЭлМассивСотрудников Из МассивСотрудников Цикл
НоваяСтрокаТаблицаСотрудников = ТаблицаСотрудников.Добавить();
НоваяСтрокаТаблицаСотрудников.Сотрудник = ЭлМассивСотрудников;
НоваяСтрокаТаблицаСотрудников.Период = ПериодПолученияНачислений;
КонецЦикла;
Если ТаблицаСотрудников.Количество() > 0 Тогда
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыВидовРасчета);
ОписанияТаблиц.Добавить(ОписаниеТаблицыЛьгот());
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДанныеВРеквизит(ТекущийОбъект.Ссылка, ТаблицаСотрудников, ЭтаФорма, ОписанияТаблиц, 1, , Объект.ДатаНачала);
ЗарплатаКадрыРасширенный.РедактированиеСоставаДополнительныхПоказателейДанныеВРеквизит(ТекущийОбъект.Ссылка, ТаблицаСотрудников, ЭтаФорма, ОписаниеТаблицыВидовРасчета, Истина);
КонецЕсли;
Если ИспользуетсяРасчетЗарплаты Тогда
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
ОписанияТаблиц.Добавить(ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
ЗарплатаКадрыРасширенный.ВводНачисленийДанныеВРеквизит(ЭтаФорма, ОписанияТаблиц, 2);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.ДокументыВыполненияНачисленийДанныеВРеквизит(ЭтаФорма, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна), 2);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ПриПолученииДанныхДокументаОплатыТруда(ЭтаФорма);
КонецЕсли;
МассивОписанийТаблицФормы = МассивОписанийТаблицФормы(РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенный.ПериодНачисленияЗаполнитьИспользованиеПериода(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ЗаполнитьДоступностьМестаПолученияДохода(ЭтаФорма, МассивОписанийТаблицФормы);
Если РегистрацияНачисленийДоступна Тогда
УчетНДФЛФормы.ЗаполнитьВторичныеДанныеТабличныхЧастей(ЭтаФорма);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.Взносы, "ДатаПолученияДохода", "ДатаПолученияДоходаСтрокой");
КонецЕсли;
ЗарплатаКадрыРасширенный.ВводРаспределенияРезультатовРасчетаДанныеВРеквизит(ЭтаФорма, ОписанияТаблицДляРаспределенияРезультата(РегистрацияНачисленийДоступна));
ОтражениеЗарплатыВБухучетеРасширенный.ОбъектПриЧтенииНаСервереПредставлениеРаспределения(ЭтаФорма, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)));
РасчетЗарплатыРасширенныйФормы.РаспределениеПоТерриториямУсловиямТрудаДанныеВРеквизит(ЭтаФорма, Объект.Организация, ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда());
КонецЕсли;
ИсправлениеДокументовЗарплатаКадры.ПрочитатьРеквизитыИсправления(ЭтаФорма);
УстановитьПоляИсправления(ЭтаФорма);
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьОтображениеРеквизитовПервичногоДокумента(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура РеквизитыВДанные(ТекущийОбъект)
УстановитьПривилегированныйРежим(Истина);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписаниеТаблицыВидовРасчета, 1);
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписаниеТаблицыЛьгот(), 1, Ложь);
ОтпускаПоУходуЗаРебенком.ЗаписатьЗначенияПоказателейПособияДоТрехЛет(ЭтаФорма, ТекущийОбъект);
Если ИспользуетсяРасчетЗарплаты Тогда
ОписанияТаблиц = Новый Массив;
ОписанияТаблиц.Добавить(ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
ОписанияТаблиц.Добавить(ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудниковКлиентСервер");
Модуль.ДополнитьМассивОписанийТаблицФормыНачисленияЗарплаты(ОписанияТаблиц, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
Модуль.ПриЗаполненииМассиваОписанийТаблицНачисленияЗарплаты(ОписанияТаблиц);
КонецЕсли;
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписанияТаблиц, 2, Ложь);
ЗарплатаКадрыРасширенный.ВводРаспределенияРезультатовРасчетаРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписанияТаблицДляРаспределенияРезультата(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйФормы.РаспределениеПоТерриториямУсловиямТрудаРеквизитВДанные(ЭтаФорма, ТекущийОбъект, ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда());
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьРасчетаПоПравилам2010Года(Сообщать = Ложь)
РасчетПоПравилам2010ГодаДоступен = Объект.ВыплачиватьПособиеДоПолутораЛет И УчетПособийСоциальногоСтрахованияКлиентСервер.ДатаОтдельногоРасчетаПособийПоМатеринству() > Объект.ДатаНачала;
Если НЕ РасчетПоПравилам2010ГодаДоступен Тогда
Если Объект.РасчетПоПравилам2010Года И Сообщать Тогда
ТекстСообщения = НСтр("ru = 'Порядок расчета по правилам 2010 года не может быть применен'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.РасчетПоПравилам2010Года");
КонецЕсли;
Объект.РасчетПоПравилам2010Года = РасчетПоПравилам2010ГодаДоступен;
КонецЕсли;
Элементы.РасчетПоПравилам2010Года.Доступность = РасчетПоПравилам2010ГодаДоступен;
Элементы.РасчетПоПравилам2010Года.Видимость = РасчетПоПравилам2010ГодаДоступен;
Элементы.ВыполнятьРасчетПоПравилам2010Года.Пометка = Объект.РасчетПоПравилам2010Года;
КонецПроцедуры
&НаСервере
Процедура НесколькоРабочихМестОбработкаФормы(ОчищатьТаблицы)
ОписаниеФормы = ОписаниеФормы();
СтруктураТаблицФормы = СтруктураТаблицФормы(ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
ЗарплатаКадрыРасширенный.НесколькоРабочихМестОбработкаФормы(ЭтаФорма, ОписаниеФормы, СтруктураТаблицФормы, ОчищатьТаблицы, ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РеквизитыПроверяемыеНаСоответствие() Экспорт
РеквизитыПроверяемыеНаСоответствие = Новый Структура("РеквизитыШапки,ТабличныеЧасти", Новый Соответствие, Новый Соответствие);
Возврат РеквизитыПроверяемыеНаСоответствие;
КонецФункции
&НаКлиенте
Функция РеквизитыПроверяемыеНаСоответствиеНаКлиенте() Экспорт
Возврат РеквизитыПроверяемыеНаСоответствие();
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция КомментарийКДокументу(Объект)
Если Объект.КоличествоДетей = 0 Тогда
Текст = "";
ИначеЕсли Объект.ВыплачиватьПособиеДоПолутораЛет Тогда
ПроцентОплаты = Мин(40 * Объект.КоличествоДетей * ?(Объект.ПрименятьЛьготыПриНачисленииПособия, 2, 1),100);
Текст = НСтр(
"ru = 'Ежемесячное пособие по уходу за ребенком до достижения ребенком полутора лет начисляется в размере %1% среднего заработка.
|Минимальный размер пособия определяется для %2.'");
Если Объект.КоличествоПервыхДетей = 0 Тогда
Если Объект.КоличествоДетей = 1 Тогда
ПредставлениеДетей = НСтр("ru='одного ребенка, рожденного (усыновленного) вторым или последующим'");
Иначе
ПредставлениеДетей = НСтр("ru='%1 детей, среди которых нет первого ребенка'");
ПредставлениеДетей = СтрШаблон(ПредставлениеДетей, Объект.КоличествоДетей);
КонецЕсли;
ИначеЕсли Объект.КоличествоПервыхДетей = 1 Тогда
Если Объект.КоличествоДетей = 1 Тогда
ПредставлениеДетей = НСтр("ru='одного ребенка, рожденного (усыновленного) первым'");
Иначе
ПредставлениеДетей = НСтр("ru='%1 детей, среди которых есть ребенок, рожденный (усыновленный) первым'");
ПредставлениеДетей = СтрШаблон(ПредставлениеДетей, Объект.КоличествоДетей);
КонецЕсли;
КонецЕсли;
Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Текст, ПроцентОплаты, ПредставлениеДетей);
Иначе
Текст = НСтр("ru='Ежемесячное пособие по уходу за ребенком до достижения ребенком полутора лет не начисляется.'");
КонецЕсли;
Возврат Текст;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьКомментарийКДокументу(Форма);
ТекстПодсказки = КомментарийКДокументу(Форма.Объект);
ЗарплатаКадрыКлиентСервер.УстановитьРасширеннуюПодсказкуЭлементуФормы(Форма, "КоличествоДетей", ТекстПодсказки);
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокСредиДетейЕстьПервый()
ЗаголовокЭлемента = ?(
Объект.КоличествоДетей = 1,
НСтр("ru = 'Это первый ребенок'"),
НСтр("ru = 'Среди детей есть первый ребенок'"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КоличествоПервыхДетей",
"Заголовок",
ЗаголовокЭлемента);
КонецПроцедуры
&НаСервере
Процедура ПеренестиДанныеУчетаСреднегоЗаработкаВДокумент(РезультатРедактирования)
Объект.СреднийЗаработокФСС.Очистить();
Объект.ОтработанноеВремяДляСреднегоФСС.Очистить();
Объект.СреднийЗаработокДанныеСтрахователей.Очистить();
Объект.ПериодыБолезниУходаЗаДетьми.Очистить();
УчетПособийСоциальногоСтрахованияРасширенный.ЗаполнитьДанныеУчетаСреднегоЗаработкаФСС(Объект, РезультатРедактирования, ЭтаФорма);
Объект.ФиксПериодРасчетаСреднегоЗаработка = РезультатРедактирования.ФиксПериодРасчета;
Объект.ПериодРасчетаСреднегоЗаработкаНачало = РезультатРедактирования.НачалоПериодаРасчета;
Объект.ПериодРасчетаСреднегоЗаработкаОкончание = РезультатРедактирования.ОкончаниеПериодаРасчета;
Объект.ПериодРасчетаСреднегоЗаработкаПервыйГод = РезультатРедактирования.ГодыПериодаРасчета[0];
Объект.ПериодРасчетаСреднегоЗаработкаВторойГод = РезультатРедактирования.ГодыПериодаРасчета[1];
Объект.СреднийДневнойЗаработок = РезультатРедактирования.СреднийЗаработок;
УстановитьИнфонадписьРасчетаСреднегоЗаработка();
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаСервере
Процедура РассчитатьСреднийЗаработок()
ПараметрыРасчета = ПараметрыРасчетаСреднегоДневногоЗаработкаФСС();
Объект.СреднийДневнойЗаработок = УчетПособийСоциальногоСтрахования.СреднийДневнойЗаработокФСС(ПараметрыРасчета);
Объект.МинимальныйСреднедневнойЗаработок = УчетПособийСоциальногоСтрахования.МинимальныйСреднедневнойЗаработокФСС(ПараметрыРасчета);
ЗаполнениеВыполнено = Истина;
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеДляРасчетаСреднего(ВыводитьСообщения = Ложь)
Документ = РеквизитФормыВЗначение("Объект");
Если Не Документ.ДокументГотовКРасчету(ВыводитьСообщения) Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ПараметрыПолучения = УчетПособийСоциальногоСтрахованияРасширенный.СтруктураПараметровПолученияСреднегоЗаработка();
ПараметрыПолучения.ФизическоеЛицо = Объект.Сотрудник;
ПараметрыПолучения.Сотрудник = Объект.ОсновнойСотрудник;
ПараметрыПолучения.НачалоПериода = Объект.ПериодРасчетаСреднегоЗаработкаНачало;
ПараметрыПолучения.ОкончаниеПериода = Объект.ПериодРасчетаСреднегоЗаработкаОкончание;
ПараметрыПолучения.ПорядокРасчета = ПорядокРасчетаСреднегоЗаработкаФСС();
Результат = УчетПособийСоциальногоСтрахованияРасширенный.СтруктураРезультатаПолученияСреднегоЗаработка();
Результат.ДанныеОНачислениях = Объект.СреднийЗаработокФСС;
Результат.ДанныеОВремени = Объект.ОтработанноеВремяДляСреднегоФСС;
Результат.ДанныеСтрахователей = Объект.СреднийЗаработокДанныеСтрахователей;
Результат.ПериодыОтсутствий = Объект.ПериодыБолезниУходаЗаДетьми;
УчетПособийСоциальногоСтрахованияРасширенный.ПолучитьСреднийЗаработокСотрудника(ПараметрыПолучения, Результат);
РассчитатьСреднийЗаработок();
УстановитьИнфонадписьРасчетаСреднегоЗаработка();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеДляРасчетаСреднего(ВыводитьСообщения = Ложь)
Объект.СреднийЗаработокФСС.Очистить();
Объект.ОтработанноеВремяДляСреднегоФСС.Очистить();
Объект.СреднийЗаработокДанныеСтрахователей.Очистить();
Объект.ПериодыБолезниУходаЗаДетьми.Очистить();
Объект.СреднийДневнойЗаработок = 0;
Если Не ЗначениеЗаполнено(Объект.Сотрудник)
Или Не ЗначениеЗаполнено(Объект.ДатаНачала) Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ДополнительныеПараметры = УчетПособийСоциальногоСтрахованияРасширенный.ДополнительныеПараметрыДанныхДляРасчетаСреднегоЗаработкаФСС();
ДополнительныеПараметры.НачалоПериода = Объект.ПериодРасчетаСреднегоЗаработкаНачало;
ДополнительныеПараметры.ОкончаниеПериода = Объект.ПериодРасчетаСреднегоЗаработкаОкончание;
ДополнительныеПараметры.ПорядокРасчета = ПорядокРасчетаСреднегоЗаработкаФСС();
ДополнительныеПараметры.ДокументСсылка = Объект.Ссылка;
ДанныеДляРасчета = УчетПособийСоциальногоСтрахованияРасширенный.ДанныеДляРасчетаСреднегоЗаработкаФСССотрудникаСлужебный(Объект.ОсновнойСотрудник, ДополнительныеПараметры);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ДанныеДляРасчета.ДанныеОНачислениях, Объект.СреднийЗаработокФСС);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ДанныеДляРасчета.ДанныеОВремени, Объект.ОтработанноеВремяДляСреднегоФСС);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ДанныеДляРасчета.ДанныеСтрахователей, Объект.СреднийЗаработокДанныеСтрахователей);
ОбщегоНазначенияКлиентСервер.ДополнитьТаблицу(ДанныеДляРасчета.ПериодыОтсутствий, Объект.ПериодыБолезниУходаЗаДетьми);
РассчитатьСреднийЗаработок();
УстановитьИнфонадписьРасчетаСреднегоЗаработка();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПериодРасчетаСреднегоЗаработка()
Если Объект.ФиксПериодРасчетаСреднегоЗаработка Тогда
Возврат;
КонецЕсли;
ПериодРасчетаСреднего = УчетПособийСоциальногоСтрахованияКлиентСервер.ПериодРасчетаСреднегоЗаработкаФСС(Объект.ДатаНачала, ПорядокРасчетаСреднегоЗаработкаФСС());
Если НачалоМесяца(Объект.ПериодРасчетаСреднегоЗаработкаНачало) <> НачалоМесяца(ПериодРасчетаСреднего.ДатаНачала)
Или НачалоМесяца(Объект.ПериодРасчетаСреднегоЗаработкаОкончание) <> НачалоМесяца(ПериодРасчетаСреднего.ДатаОкончания) Тогда
Объект.ПериодРасчетаСреднегоЗаработкаНачало = ПериодРасчетаСреднего.ДатаНачала;
Объект.ПериодРасчетаСреднегоЗаработкаОкончание = ПериодРасчетаСреднего.ДатаОкончания;
Объект.ПериодРасчетаСреднегоЗаработкаПервыйГод = Год(ПериодРасчетаСреднего.ДатаНачала);
Объект.ПериодРасчетаСреднегоЗаработкаВторойГод = Год(ПериодРасчетаСреднего.ДатаОкончания);
ОбновитьДанныеДляРасчетаСреднего();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьИнфонадписьРасчетаСреднегоЗаработка()
Если НЕ ИспользуетсяРасчетЗарплаты Тогда
Возврат;
КонецЕсли;
ИнформацияОЗаполненностиДанных = УчетПособийСоциальногоСтрахованияРасширенный.ИнформацияОЗаполненностиДанныхСреднегоЗаработка(
Объект.Ссылка,
ЗаполнениеВыполнено,
ПараметрыРасчетаСреднегоДневногоЗаработкаФСС(),
Объект.СреднийДневнойЗаработок,
Объект.МинимальныйСреднедневнойЗаработок
);
ЗаполненностьДанныхИнформационныйТекст = ИнформацияОЗаполненностиДанных.Текст;
ЗаполненностьДанныхКартинка = ИнформацияОЗаполненностиДанных.Картинка;
КонецПроцедуры
&НаСервере
Процедура СотрудникПриИзмененииНаСервере()
ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей();
УстановитьПривилегированныйРежим(Истина);
УстановитьОсновногоСотрудника();
УстановитьИспользованиеЗаработкаПредыдущихСтрахователей();
ОбновитьДанныеПоСотруднику(Истина);
ОбновитьДоступностьЭлементовФормы(ЭтаФорма);
ЗаполнитьДанныеДляРасчетаСреднего();
УстановитьОтображениеНадписей();
КонецПроцедуры
&НаСервере
Процедура ДатаНачалаПриИзмененииНаСервере()
УстановитьПривилегированныйРежим(Истина);
ПрочитатьВремяРегистрации();
УстановитьОсновногоСотрудника();
ОбновитьДанныеПоСотруднику();
ОбновитьДоступностьЭлементовФормы(ЭтаФорма);
УстановитьДоступностьРасчетаПоПравилам2010Года();
Объект.ФиксПериодРасчетаСреднегоЗаработка = Ложь;
ЗаполнитьПериодРасчетаСреднегоЗаработка();
ЗаполнитьДанныеДляРасчетаСреднего();
УстановитьСвойствоРассчитатьЗарплату(ЭтаФорма);
УстановитьВидимостьДанныхДляФСС();
УстановитьОтображениеНадписей();
КонецПроцедуры
&НаСервере
Процедура ВыплачиватьПособиеДоПолутораЛетПриИзмененииНаСервере()
ОбновитьКомментарийКДокументу(ЭтаФорма);
Если Объект.ВыплачиватьПособиеДоПолутораЛет
И Не ЗначениеЗаполнено(Объект.ПособиеДоПолутораЛет) Тогда
ОтпускаПоУходуЗаРебенком.ЗаполнитьВидПособияДоПолутораЛет(ЭтотОбъект);
КонецЕсли;
УстановитьДоступностьЭлементовЗависимыхОтВыплатыПособияДоПолутораЛет(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаСервере
Процедура КоличествоДетейПриИзмененииНаСервере()
ОбновитьКомментарийКДокументу(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
УстановитьЗаголовокСредиДетейЕстьПервый();
КонецПроцедуры
&НаСервере
Процедура КоличествоПервыхДетейПриИзмененииНаСервере()
ОбновитьКомментарийКДокументу(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаСервере
Процедура ПрименятьЛьготыПриНачисленииПособияПриИзмененииНаСервере()
ОбновитьКомментарийКДокументу(ЭтаФорма);
УстановитьДоступностьФинансированиеФедеральнымБюджетом(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ДатаОкончанияПособияДоПолутораЛетПриИзмененииНаСервере()
ОбновитьКомментарийКДокументу(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
УстановитьВидимостьДанныхДляФСС();
КонецПроцедуры
&НаСервере
Процедура ВыплачиватьПособиеДоТрехЛетПриИзмененииНаСервере()
Если Объект.ВыплачиватьПособиеДоТрехЛет
И Не ЗначениеЗаполнено(Объект.ПособиеДоТрехЛет) Тогда
ОтпускаПоУходуЗаРебенком.ЗаполнитьВидПособияДоТрехЛет(ЭтотОбъект);
КонецЕсли;
ОбновитьКомментарийКДокументу(ЭтаФорма);
УстановитьДоступностьЭлементовЗависимыхОтВыплатыПособияДоТрехЛет(ЭтаФорма);
УстановитьСвойствоНачисленияУтверждены();
КонецПроцедуры
&НаСервере
Процедура УстановитьОсновногоСотрудника(ВыводитьСообщения = Истина)
Объект.ОсновнойСотрудник = КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица(Объект.Сотрудник, Объект.Организация, ВремяРегистрации, ВыводитьСообщения);
КонецПроцедуры
&НаКлиенте
Процедура ОбработчикОжиданияМесяцНачисленияПриИзменении()
ПриИзмененииМесяцаНачисления();
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииМесяцаНачисления()
ОбработатьИзменениеМесяцНачисленияНаСервере();
ВыполнитьРасчетНачислений();
КонецПроцедуры
&НаСервере
Процедура ОбработатьИзменениеМесяцНачисленияНаСервере()
УстановитьФункциональныеОпцииФормы();
УстановитьЗаголовокФлажкаРассчитатьЗарплату();
УстановитьСвойствоРассчитатьЗарплату(ЭтаФорма);
УстановитьПривилегированныйРежим(Истина);
ОтражениеЗарплатыВБухучетеРасширенный.ОбработатьИзменениеМесяцНачисленияПроцентЕНВД(ЭтаФорма, Объект.Организация, Объект.ПериодРегистрации);
УчетСтраховыхВзносов.УстановитьВидимостьКолонокТаблицыСтраховыхВзносов(ЭтаФорма, Объект.ПериодРегистрации);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура ОрганизацияПриИзмененииНаСервере()
ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей();
ОбновитьДоступностьЭлементовФормы(ЭтаФорма);
УстановитьФункциональныеОпцииФормы();
УстановитьВидимостьДанныхДляФСС();
ЗаполнитьПодписиПоОрганизацииНаСервере();
РасчетЗарплатыРасширенныйФормы.ДополнитьДанныеФормыРаспределенияПоТерриториямУсловиямТруда(
ЭтаФорма, Объект.Организация, ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда(), Истина, Истина);
УстановитьПривилегированныйРежим(Истина);
ОтражениеЗарплатыВБухучетеРасширенный.ОбработатьИзменениеОрганизацииПроцентЕНВД(ЭтаФорма, Объект.Организация, Объект.ПериодРегистрации);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура РасчетПоПравилам2010ГодаПриИзмененииНаСервере()
УстановитьДоступностьРасчетаПоПравилам2010Года(Истина);
Объект.ФиксПериодРасчетаСреднегоЗаработка = Ложь;
ЗаполнитьПериодРасчетаСреднегоЗаработка();
КонецПроцедуры
&НаСервере
Процедура УчитыватьЗаработокПредыдущихСтрахователейПриИзмененииНаСервере()
ОбновитьДанныеДляРасчетаСреднего();
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойствоНачисленияУтверждены(НачисленияУтверждены = Истина)
Если ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений Тогда
Объект.НачисленияУтверждены = НачисленияУтверждены;
ЗарплатаКадрыРасширенный.УстановитьПредупреждающуюНадписьВМногофункциональныхДокументах(ЭтаФорма, "НачисленияУтверждены");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииВидаПособияДоТрехЛет()
УстановитьСвойствоНачисленияУтверждены();
ОтпускаПоУходуЗаРебенком.ОбновитьПоляВводаПоказателейПособияДоТрехЛет(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьРасчетныхПолей()
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы,
"ГруппаНачисления", "Видимость", ОграниченияНаУровнеЗаписей.ПлановыеНачисленияЧтениеБезОграничений);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы,
"ГруппаНачисления", "ТолькоПросмотр", Не ОграниченияНаУровнеЗаписей.ПлановыеНачисленияИзменениеБезОграничений);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы,
"ГруппаЛьготы", "Видимость", ОграниченияНаУровнеЗаписей.ПлановыеНачисленияЧтениеБезОграничений);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы,
"ГруппаЛьготы", "ТолькоПросмотр", Не ОграниченияНаУровнеЗаписей.ПлановыеНачисленияИзменениеБезОграничений);
КонецЕсли;
Если ОграниченияНаУровнеЗаписей.ПлановыеНачисленияЧтениеБезОграничений Тогда
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоТарифныхСтавок") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиГруппа", "Видимость", Ложь);
КонецЕсли;
НесколькоРабочихМестОбработкаФормы(Ложь);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.УстановитьВидимостьГруппыЛьготы(Элементы, "ГруппаЛьготы");
КонецЕсли;
КонецЕсли;
ИменаЭлементов = Новый Массив;
ИменаЭлементов.Добавить("ПособиеДоПолутораЛет");
ИменаЭлементов.Добавить("УчитыватьЗаработокПредыдущихСтрахователей");
ИменаЭлементов.Добавить("ГруппаПрименятьЛьготыПриИсчисленииПособия");
ИменаЭлементов.Добавить("ПособиеДоТрехЛет");
ИменаЭлементов.Добавить("ОграниченияИнфо");
ИменаЭлементов.Добавить("ГруппаПоказателиРасчетаПособия");
ИменаЭлементов.Добавить("ГруппаРасчетПоПравилам2010Года");
ИменаЭлементов.Добавить("РассчитатьЗарплатуГруппа");
Если Объект.РассчитатьЗарплату Тогда
ИменаЭлементов.Добавить("ГруппаОплатаТруда");
ИменаЭлементов.Добавить("ГруппаУдержания");
ИменаЭлементов.Добавить("ГруппаНДФЛ");
ИменаЭлементов.Добавить("ГруппаКорректировкиВыплаты");
ИменаЭлементов.Добавить("ГруппаПогашениеЗаймов");
ИменаЭлементов.Добавить("ГруппаВзносы");
ИменаЭлементов.Добавить("Подвал");
ИменаЭлементов.Добавить("Сторнировать");
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
ИменаЭлементов.Добавить("ГруппаОплатаЛьгот");
КонецЕсли;
Иначе
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаОплатаТруда", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаУдержания", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаНДФЛ", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаКорректировкиВыплаты", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаПогашениеЗаймов", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаВзносы", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "Подвал", "Видимость", Ложь);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаОплатаЛьгот", "Видимость", Ложь);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ПриУстановкеВидимостиРасчетныхПолейДокументаОплатыТруда(ЭтаФорма);
КонецЕсли;
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейМногофункциональныхДокументов(ЭтаФорма, ИменаЭлементов);
Если ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоТарифныхСтавок") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиГруппа", "Видимость", Ложь);
КонецЕсли;
РасчетЗарплатыРасширенныйКлиентСервер.ДокументыВыполненияНачисленийУстановитьРежимОтображенияПодробно(ЭтаФорма, Не Элементы.ОплатаТрудаПодробно.Пометка, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйКлиентСервер.ДокументыВыполненияНачисленийУстановитьРежимОтображенияПодробно(ЭтаФорма, Не Элементы.УдержанияПодробно.Пометка, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
УстановитьВидимостьДанныхДляФСС();
УчетСтраховыхВзносов.УстановитьВидимостьКолонокТаблицыСтраховыхВзносов(ЭтаФорма, Объект.ПериодРегистрации);
УстановитьДоступностьРасчетаПоПравилам2010Года();
Если Элементы.ГруппаЕНВД.ПодчиненныеЭлементы.Количество() > 0 Тогда
Элементы.ГруппаЕНВД.Видимость = ЭтаФорма.ОрганизацияПлательщикЕНВДЗарплатаКадры;
КонецЕсли;
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, ОписаниеТаблицыПересчетТарифныхСтавок(ОписаниеФормы()));
УстановитьПоляИсправления(ЭтаФорма);
УстановитьВидимостьГруппыВыплата();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.УстановитьВидимостьГруппыЛьготы(Элементы, "ГруппаОплатаЛьгот");
Модуль.ДокументыВыполненияНачисленийУстановитьРежимОтображенияПодробно(ЭтотОбъект, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ФОТ",
"ТолькоПросмотр",
Истина);
Если Не ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаЛьготы", "Видимость", Ложь);
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ГруппаОплатаЛьгот", "Видимость", Ложь);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьДатыДвиженийПФР()
Если ЗначениеЗаполнено(Объект.ДатаНачалаПФР) Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачалоДвиженийПФРКартинкаРасширеннаяПодсказка",
"Заголовок",
СтрШаблон("Дата начала движений ПФР - %1", ЗарплатаКадрыКлиентСервер.ПолучитьПредставлениеМесяца(Объект.ДатаНачалаПФР)));
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НачалоДвиженийПФРГруппа",
"Видимость",
ЗначениеЗаполнено(Объект.ДатаНачалаПФР));
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьГруппыВыплата()
ЗарплатаКадрыРасширенный.УстановитьОтображениеГруппыФормы(Элементы, "ВыплатаГруппа", "Видимость", Объект.РассчитатьЗарплату);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьПоляПорядокРасчета()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПорядокВыплаты", "Доступность", Ложь);
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьРегистрацииНачислений()
ПраваНаДокумент = ЗарплатаКадрыРасширенный.ПраваНаМногофункциональныйДокумент(Объект);
УстановитьПраваПлановыхНачислений(ПраваНаДокумент);
РегистрацияНачисленийДоступна = ПраваНаДокумент.ПолныеПраваПоРолям;
ОграниченияНаУровнеЗаписей = Новый ФиксированнаяСтруктура(ПраваНаДокумент.ОграниченияНаУровнеЗаписей);
КонецПроцедуры
&НаСервере
Процедура ПриИзмененииРеквизитовОпределяющихОграниченияНаУровнеЗаписей()
БылиОграничения = ОграниченияНаУровнеЗаписей;
УстановитьДоступностьРегистрацииНачислений();
Если БылиОграничения.ЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений
Или БылиОграничения.ИзменениеБезОграничений <> ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений
Или БылиОграничения.ИзменениеКадровыхДанных <> ОграниченияНаУровнеЗаписей.ИзменениеКадровыхДанных
Или БылиОграничения.ПлановыеНачисленияЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ПлановыеНачисленияЧтениеБезОграничений
Или БылиОграничения.ПлановыеНачисленияИзменениеБезОграничений <> ОграниченияНаУровнеЗаписей.ПлановыеНачисленияИзменениеБезОграничений Тогда
Объект.НачисленияУтверждены = ОграниченияНаУровнеЗаписей.ИзменениеБезОграничений;
УстановитьВидимостьРасчетныхПолей();
Если БылиОграничения.ЧтениеБезОграничений <> ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
ЗарплатаКадрыРасширенный.УстановитьВидимостьКомандПечатиМногофункциональногоДокумента(ЭтаФорма);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьПраваПлановыхНачислений(ПраваНаДокумент)
ВсеВидыПрав = МногофункциональныеДокументыБЗККлиентСервер.ВидыПравНаРазделыДанных();
РазделПлановыеНачисления = МногофункциональныеДокументыБЗККлиентСервер.РазделыДанных().ПлановыеНачисления;
ЧтениеБезОграничений = Ложь;
ИзменениеБезОграничений = Ложь;
ИзменениеБезОграничений = МногофункциональныеДокументыБЗК.ЕстьПравоНаДокумент(
ЭтотОбъект.Объект,
ВсеВидыПрав.Редактирование,
РазделПлановыеНачисления);
Если ИзменениеБезОграничений Тогда
ПраваНаДокумент.ПолныеПраваПоРолям = Истина;
ЧтениеБезОграничений = Истина;
Иначе
ЧтениеБезОграничений = МногофункциональныеДокументыБЗК.ЕстьПравоНаДокумент(
ЭтотОбъект.Объект,
ВсеВидыПрав.Просмотр,
РазделПлановыеНачисления);
Если ЧтениеБезОграничений Тогда
ПраваНаДокумент.ПолныеПраваПоРолям = Истина;
КонецЕсли;
КонецЕсли;
ПраваНаДокумент.ОграниченияНаУровнеЗаписей.Вставить("ПлановыеНачисленияИзменениеБезОграничений", ИзменениеБезОграничений);
ПраваНаДокумент.ОграниченияНаУровнеЗаписей.Вставить("ПлановыеНачисленияЧтениеБезОграничений", ЧтениеБезОграничений);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьРасчетФОТ()
РассчитатьФОТ = Истина;
ПодключитьОбработчикОжиданияАвтоматическогоРасчета("РассчитатьНачисленияИФОТНаКлиенте", "РассчитатьФОТ");
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьНачисленияИФОТНаКлиенте()
РассчитатьНачисленияИФОТНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьНачисленияИФОТНаСервере()
Если РассчитатьФОТ Тогда
РассчитатьФОТНаСервере();
КонецЕсли;
Если РассчитатьНачисления Тогда
РассчитатьНачисленияНаСервере();
КонецЕсли;
РассчитатьНачисления = Ложь;
РассчитатьФОТ = Ложь;
ЗарплатаКадрыРасширенныйКлиентСервер.СброситьФлагНеобходимостиВыполненияРасчета(ЭтаФорма);
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьСостояниеКнопкиФормыРассчитать(ЭтаФорма, РасчетНеобходимоВыполнить, "РассчитатьФОТ");
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьФОТНаКлиенте()
РассчитатьФОТНаСервере();
ЗарплатаКадрыРасширенныйКлиентСервер.СброситьФлагНеобходимостиВыполненияРасчета(ЭтаФорма, "РассчитатьФОТ");
РасчетНеобходимоВыполнить = РассчитатьНачисления;
КонецПроцедуры
&НаСервере
Процедура РассчитатьФОТНаСервере()
УстановитьПривилегированныйРежим(Истина);
ОписаниеТаблицыНачислений = ОписаниеТаблицыНачислений();
ТаблицаНачислений = ПлановыеНачисленияСотрудников.ТаблицаНачисленийДляРасчетаВторичныхДанных();
ТаблицаПоказателей = ПлановыеНачисленияСотрудников.ТаблицаИзвестныеПоказатели();
ГоловнаяОрганизация = ЗарплатаКадры.ГоловнаяОрганизация(Объект.Организация);
ПлановыеНачисленияСотрудниковФормы.ЗаполнитьДанныеПлановыхНачисленийПоСотрудникам(
ТаблицаНачислений,
ТаблицаПоказателей,
ЭтотОбъект,
СотрудникиДокумента,
ГоловнаяОрганизация,
ВремяРегистрации,
ОписаниеТаблицыНачислений);
РассчитанныеВторичныеДанные = ПлановыеНачисленияСотрудников.РассчитатьВторичныеДанныеПлановыхНачислений(ТаблицаНачислений, ТаблицаПоказателей);
ОписаниеТаблицыТарифныхСтавок = ПлановыеНачисленияСотрудниковФормы.ОписаниеТаблицыТарифныхСтавок(
"Объект.ПересчетТарифныхСтавок",
"РабочееМесто",
"ВидТарифнойСтавки",
"СовокупнаяТарифнаяСтавка");
ПлановыеНачисленияСотрудниковФормы.РезультатРасчетаВторичныхДанныхПоСотрудникамВДанныеФормы(
ЭтаФорма,
РассчитанныеВторичныеДанные,
ГоловнаяОрганизация,
ОписаниеТаблицыНачислений,
ОписаниеТаблицыТарифныхСтавок);
УстановитьПривилегированныйРежим(Ложь);
ЗарплатаКадрыРасширенныйКлиентСервер.РассчитатьИтогиФОТВФормеДокументаСНесколькимиРабочимиМестами(ЭтаФорма, ОписаниеТаблицыНачислений());
ОписаниеФормы = ОписаниеФормы();
ЗарплатаКадрыРасширенный.УстановитьОтображениеПолейПересчетаТарифнойСтавки(ЭтаФорма, ОписаниеТаблицыНачислений(), ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, ОписаниеТаблицыПересчетТарифныхСтавок(ОписаниеФормы));
КонецПроцедуры
&НаСервере
Процедура УстановитьПредставленияКомандВводаСтажей()
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений();
ЗарплатаКадрыРасширенный.УстановитьПредставленияКомандВводаСтажей(ЭтаФорма, ТаблицаСотрудников(ЭтаФорма), ОписаниеТаблицыВидовРасчета, 1);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКомандуРедактированияРезультатовРаспределенияНачисленийИУдержаний(ОписаниеТаблицы, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка = Истина)
Если СтрНайти(Поле.Имя, "КомандаРедактированияРаспределения") = 0 Тогда
Возврат;
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.ОткрытьФормуРедактированияРезультатовРаспределенияПоИсточникамФинансирования(ЭтаФорма, ОписаниеТаблицы, ВыбраннаяСтрока, Объект.ПериодРегистрации);
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьСотрудника(Сотрудник, ОписаниеТаблицы) Экспорт
РассчитатьСотрудникаНаСервере(Сотрудник, ОписаниеТаблицы);
КонецПроцедуры
&НаСервере
Процедура РассчитатьСотрудникаНаСервере(Сотрудник, ОписаниеТаблицы = Неопределено)
УстановитьПривилегированныйРежим(Истина);
ПериодРасчетаЗарплаты = ПериодРасчетаЗарплатыДоНачалаОтсутствия();
МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(Объект.ПериодРегистрации, Объект.Организация);
ЗаполнитьНастройкиМенеджераРасчета(МенеджерРасчета, ПериодРасчетаЗарплаты);
РасчетЗарплатыРасширенныйФормы.ЗаполнитьИсточникиИзмененийМенеджераРасчета(МенеджерРасчета, ИзмененныеДанные);
ДанныеФормыВДанныеМенеджераРасчета(МенеджерРасчета);
МенеджерРасчета.РассчитатьЗарплату();
РасчетЗарплатыВДанныеФормы(МенеджерРасчета.Зарплата);
МассивОписанийТаблицФормы = МассивОписанийТаблицФормы(РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенный.ПериодНачисленияЗаполнитьИспользованиеПериода(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ЗаполнитьДоступностьМестаПолученияДохода(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ВводНачисленийЗаполнитьВторичныеДанныеПоказателей(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.НДФЛ, "МесяцНалоговогоПериода", "МесяцНалоговогоПериодаСтрокой");
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.Взносы, "ДатаПолученияДохода", "ДатаПолученияДоходаСтрокой");
РасчетЗарплатыРасширенныйФормы.ЗаполнитьПредставлениеРаспределенияПоТерриториямУсловиямТруда(ЭтаФорма, Объект.Организация, ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда());
НесколькоРабочихМестОбработкаФормы(Ложь);
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
КонецПроцедуры
&НаСервере
Функция МассивОписанийТаблицФормы(ПравоНаЧтениеДокументаБезОграничений)
МассивОписанийТаблицФормы = Новый Структура;
МассивОписанийТаблицФормы.Вставить("Начисления", ОписаниеТаблицыОплатаТруда(ПравоНаЧтениеДокументаБезОграничений));
МассивОписанийТаблицФормы.Вставить("Удержания", ОписаниеТаблицыУдержаний(ПравоНаЧтениеДокументаБезОграничений));
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудниковКлиентСервер = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудниковКлиентСервер");
МодульЛьготыСотрудниковКлиентСервер.ДополнитьСтруктуруОписанийТаблицФормыНачисленияЗарплаты(МассивОписанийТаблицФормы, ОписаниеТаблицыОплатаЛьгот(ПравоНаЧтениеДокументаБезОграничений));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
Модуль.ПриЗаполненииСтруктурыОписанийТаблицНачисленияЗарплаты(МассивОписанийТаблицФормы);
КонецЕсли;
Возврат МассивОписанийТаблицФормы;
КонецФункции
&НаСервере
Функция НДФЛПодробнееНаСервере(ФизическоеЛицо)
ДокументОбъект = РеквизитФормыВЗначение("Объект");
РеквизитыВДанные(ДокументОбъект);
Возврат УчетНДФЛФормы.РегистрНалоговогоУчетаПоНДФЛ(ДокументОбъект, Модифицированность, ФизическоеЛицо, Объект.ПериодРегистрации);
КонецФункции
&НаКлиенте
Процедура ВычетыПриОкончанииРедактирования(ТекущиеДанные, ОтменаРедактирования, КлючиПоиска)
Если НЕ Элементы[ОписаниеПанелиВычеты().ТабличнаяЧастьНДФЛ.ИмяТаблицыФормы].ТекущиеДанные.ФиксРасчет Тогда
Если УчетНДФЛКлиентРасширенный.ВычетыИзменены(ЭтаФорма, ТекущиеДанные, ОтменаРедактирования) Тогда
СтруктураПоиска = Новый Структура(КлючиПоиска);
ЗаполнитьЗначенияСвойств(СтруктураПоиска, ТекущиеДанные);
УстановитьФиксРасчетСтрокНДФЛ(СтруктураПоиска);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьПредставлениеВычетовНаДетейИИмущественныхСтрокиНДФЛ()
УчетНДФЛФормы.ОбновитьПредставлениеВычетовНаДетейИИмущественныхСтрокиНДФЛ(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ОбновитьПредставлениеВычетовКДоходамСтрокиНДФЛ()
УчетНДФЛФормы.ОбновитьПредставлениеВычетовКДоходамСтрокиНДФЛ(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура УстановитьФиксРасчетСтрокНДФЛ(СтруктураПоиска)
УчетНДФЛФормы.УстановитьФиксРасчетСтрокНДФЛ(ЭтаФорма, СтруктураПоиска);
КонецПроцедуры
&НаКлиенте
Процедура ПерезаполнитьНачисленияСотрудника(Сотрудники, СохранятьИсправления = Истина) Экспорт
РассчитатьНачисленияНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьЗарплатуПриИзмененииНаСервере()
УстановитьВидимостьРасчетныхПолей();
УстановитьВидимостьГруппыВыплата();
УстановитьПорядокВыплаты();
КонецПроцедуры
&НаСервере
Процедура УстановитьЗаголовокФлажкаРассчитатьЗарплату()
Элементы.РассчитатьЗарплату.Заголовок = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Рассчитать зарплату за %1'"), ЗарплатаКадрыКлиентСервер.ПолучитьПредставлениеМесяца(Объект.ПериодРегистрации));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьСвойствоРассчитатьЗарплату(Форма)
ДоступенРасчетЗарплаты = Форма.Объект.ДатаНачала > Форма.Объект.ПериодРегистрации;
Если Не ДоступенРасчетЗарплаты Тогда
Форма.Объект.РассчитатьЗарплату = Ложь;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "РассчитатьЗарплатуГруппа", "Доступность", ДоступенРасчетЗарплаты);
КонецПроцедуры
&НаСервере
Функция ЕстьКонфликтыПоРегиструПрименениеПлановыхНачислений()
Отказ = Ложь;
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы());
Сотрудники = ОбщегоНазначения.ВыгрузитьКолонку(ЭтаФорма[ОписаниеТаблицыРабочихМест.ИмяТаблицы], ОписаниеТаблицыРабочихМест.ИмяРеквизитаСотрудник, Истина);
ИсключаемыеРегистраторы = Новый Массив;
ИсключаемыеРегистраторы.Добавить(Объект.Ссылка);
ПараметрыИсправленного = Неопределено;
Если ИсправлениеДокументовЗарплатаКадрыКлиентСервер.ЭтоИсправление(ЭтаФорма, ПараметрыИсправленного) Тогда
ИсключаемыеРегистраторы.Добавить(ПараметрыИсправленного.Ссылка);
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ
| ПрименениеПлановыхНачислений.Сотрудник КАК Сотрудник,
| ПрименениеПлановыхНачислений.Регистратор КАК Регистратор
|ИЗ
| РегистрСведений.ПрименениеПлановыхНачислений КАК ПрименениеПлановыхНачислений
|ГДЕ
| ПрименениеПлановыхНачислений.Период = &Период
| И ПрименениеПлановыхНачислений.Сотрудник В(&Сотрудники)
| И НЕ ПрименениеПлановыхНачислений.Регистратор В (&ИсключаемыеРегистраторы)");
Запрос.УстановитьПараметр("Период", Объект.ДатаНачала);
Запрос.УстановитьПараметр("Сотрудники", Сотрудники);
Запрос.УстановитьПараметр("ИсключаемыеРегистраторы", ИсключаемыеРегистраторы);
Выборка = Запрос.Выполнить().Выбрать();
ШаблонСообщения = НСтр("ru = 'Данные о применении плановых начислений на дату %1 уже введены документом %2'");
Пока Выборка.Следующий() Цикл
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонСообщения, Формат(Объект.ДатаНачала, "ДЛФ=Д"), Выборка.Регистратор);
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Объект.ДатаНачала", , Отказ);
КонецЦикла;
Возврат Отказ;
КонецФункции
&НаКлиенте
Процедура ВыполнитьРасчетНачислений()
Если НЕ ИспользуетсяРасчетЗарплаты Тогда
Возврат;
КонецЕсли;
Если РасчетЗарплатыРасширенныйКлиентСервер.ФормаДокументаГотоваДляРасчетаЗарплаты(ЭтаФорма, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)), Ложь) Тогда
РассчитатьНачисления = Истина;
ПодключитьОбработчикОжиданияАвтоматическогоРасчета("РассчитатьНачисленияИФОТНаКлиенте");
Иначе
ОчиститьРассчитанныеДанные();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодключитьОбработчикОжиданияАвтоматическогоРасчета(ИмяОбработчика, ИмяКнопкиРассчитать = "Рассчитать")
ЗарплатаКадрыРасширенныйКлиент.ПодключитьОбработчикОжиданияАвтоматическогоРасчета(ЭтотОбъект, РегистрацияНачисленийДоступна, ИмяОбработчика, ИмяКнопкиРассчитать, "ОчиститьРассчитанныеДанныеНаКлиенте");
КонецПроцедуры
&НаСервере
Процедура РассчитатьНачисленияНаСервере(ВыводитьСообщения = Ложь)
Если Не ИспользуетсяРасчетЗарплаты Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
ОчиститьРассчитанныеДанные();
Если Объект.РассчитатьЗарплату Тогда
Документ = РеквизитФормыВЗначение("Объект");
Если Не Документ.ДокументГотовКРасчету(ВыводитьСообщения) Тогда
Возврат;
КонецЕсли;
Если ЕстьКонфликтыПоРегиструПрименениеПлановыхНачислений() Тогда
Возврат;
КонецЕсли;
ЗаполнитьНаСервере();
МассивОписанийТаблицФормы = МассивОписанийТаблицФормы(РегистрацияНачисленийДоступна);
ЗарплатаКадрыРасширенный.ПериодНачисленияЗаполнитьИспользованиеПериода(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ЗаполнитьДоступностьМестаПолученияДохода(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыРасширенный.ВводНачисленийЗаполнитьВторичныеДанныеПоказателей(ЭтаФорма, МассивОписанийТаблицФормы);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.НДФЛ, "МесяцНалоговогоПериода", "МесяцНалоговогоПериодаСтрокой");
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.Взносы, "ДатаПолученияДохода", "ДатаПолученияДоходаСтрокой");
РасчетЗарплатыРасширенныйФормы.ЗаполнитьПредставлениеРаспределенияПоТерриториямУсловиямТруда(ЭтаФорма, Объект.Организация, ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда());
НесколькоРабочихМестОбработкаФормы(Ложь);
КонецЕсли;
КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(ЭтаФорма);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНаСервере() Экспорт
ОписаниеТаблицыРабочихМест = ОписаниеТаблицыРабочихМест(ОписаниеФормы());
Сотрудники = ОбщегоНазначения.ВыгрузитьКолонку(ЭтаФорма[ОписаниеТаблицыРабочихМест.ИмяТаблицы], ОписаниеТаблицыРабочихМест.ИмяРеквизитаСотрудник, Истина);
Организация = Объект.Организация;
МесяцНачисления = Объект.ПериодРегистрации;
ПериодРасчетаЗарплаты = ПериодРасчетаЗарплатыДоНачалаОтсутствия();
Если ПериодРасчетаЗарплаты = Неопределено Тогда
Возврат;
КонецЕсли;
МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(МесяцНачисления, Организация);
ЗаполнитьНастройкиМенеджераРасчета(МенеджерРасчета, ПериодРасчетаЗарплаты);
МенеджерРасчета.ДобавитьДатуЗавершенияРаботы(Объект.Сотрудник, ПериодРасчетаЗарплаты.ДатаОкончания);
ТаблицаСотрудников = МенеджерРасчета.ТаблицаСотрудников();
Для каждого Сотрудник Из Сотрудники Цикл
НоваяСтрока = ТаблицаСотрудников.Добавить();
НоваяСтрока.Сотрудник = Сотрудник;
НоваяСтрока.ДатаНачала = ПериодРасчетаЗарплаты.ДатаНачала;
НоваяСтрока.ДатаОкончания = ПериодРасчетаЗарплаты.ДатаОкончания;
КонецЦикла;
МенеджерРасчета.ЗаполнитьНачислениеЗарплаты(ТаблицаСотрудников);
МенеджерРасчета.РассчитатьЗарплату();
РасчетЗарплатыВДанныеФормы(МенеджерРасчета.Зарплата);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНастройкиМенеджераРасчета(МенеджерРасчета, ПериодРасчетаЗарплаты)
ИсправлениеДокументовРасчетЗарплаты.НастроитьМенеджерРасчета(
МенеджерРасчета, ЭтаФорма, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)));
МенеджерРасчета.ИсключаемыйРегистратор = Объект.Ссылка;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНачисления = Объект.РассчитатьЗарплату;
МенеджерРасчета.НастройкиРасчета.РассчитыватьУдержания = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьНДФЛ = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьВзносы = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьЗаймы = Истина;
МенеджерРасчета.НастройкиРасчета.РассчитыватьКорректировкиВыплаты = Истина;
МенеджерРасчета.НастройкиРасчета.СохранятьИсправления = Истина;
МенеджерРасчета.НастройкиНДФЛ.Сотрудники = Объект.ОсновнойСотрудник;
МенеджерРасчета.НастройкиНДФЛ.ДатаВыплаты = Объект.ПланируемаяДатаВыплаты;
МенеджерРасчета.НастройкиНДФЛ.ОкончательныйРасчет = ОкончательныйРасчетНДФЛ;
ЗасчитыватьДанныеАвансов = Объект.РассчитатьЗарплату;
Если ЗасчитыватьДанныеАвансов
И МенеджерРасчета.ЭтоИсправлениеТекущимПериодом
И ОбщегоНазначения.ЗначениеРеквизитаОбъекта(МенеджерРасчета.ИсправленныйДокумент, "РассчитатьЗарплату") Тогда
ЗасчитыватьДанныеАвансов = Ложь
КонецЕсли;
МенеджерРасчета.НастройкиНДФЛ.ЗасчитыватьДанныеАвансов = ЗасчитыватьДанныеАвансов;
МенеджерРасчета.НастройкиЗаймов.Сотрудники = Объект.ОсновнойСотрудник;
МенеджерРасчета.НастройкиЗаймов.ДатаПогашения = ПериодРасчетаЗарплаты.ДатаОкончания;
КонецПроцедуры
&НаСервере
Процедура РасчетЗарплатыВДанныеФормы(ДанныеМенеджераРасчета)
ТаблицыНачислений = РасчетЗарплатыРасширенныйФормы.ТаблицыНачисленийФормы();
ТаблицыНачислений.Начисления = Объект.ОплатаТруда;
ТаблицыНачислений.Льготы = Объект.ОплатаЛьгот;
ТаблицыНачислений.УправленческиеНачисления = Объект.УправленческиеНачисления;
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыНачисленияВДанныеФормы(ТаблицыНачислений, ДанныеМенеджераРасчета.Начисления, Объект.Организация, Объект.ПериодРегистрации);
ТаблицыУдержаний = РасчетЗарплатыРасширенныйФормы.ТаблицыУдержанийФормы();
ТаблицыУдержаний.Удержания = Объект.Удержания;
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыУдержанияВДанныеФормы(ТаблицыУдержаний, ДанныеМенеджераРасчета.Удержания);
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыПогашениеЗаймовВДанныеФормы(Объект.ПогашениеЗаймов, ДанныеМенеджераРасчета.ПогашениеЗаймов);
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыНДФЛВДанныеФормы(Объект.НДФЛ, Объект.ПримененныеВычетыНаДетейИИмущественные, ДанныеМенеджераРасчета.НДФЛ);
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыКорректировкиВыплатыВДанныеФормы(Объект.КорректировкиВыплаты, ДанныеМенеджераРасчета.КорректировкиВыплаты);
РасчетЗарплатыРасширенныйФормы.РасчетЗарплатыВзносыВДанныеФормы(Объект.Взносы, ДанныеМенеджераРасчета.Взносы);
КонецПроцедуры
&НаСервере
Процедура ДанныеФормыВДанныеМенеджераРасчета(МенеджерРасчета)
РасчетЗарплатыРасширенныйФормы.НачисленияВДанныеМенеджераРасчета(Объект.ОплатаТруда, МенеджерРасчета, Объект.Организация);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
РасчетЗарплатыРасширенныйФормы.ЛьготыВДанныеМенеджераРасчета(Объект.ОплатаЛьгот, МенеджерРасчета, Объект.Организация);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.УправленческиеНачисленияВДанныеМенеджераРасчета(Объект.УправленческиеНачисления, МенеджерРасчета);
КонецЕсли;
РасчетЗарплатыРасширенныйФормы.УдержанияВДанныеМенеджераРасчета(Объект.Удержания, МенеджерРасчета);
РасчетЗарплатыРасширенныйФормы.КорректировкиВыплатыВДанныеМенеджераРасчета(Объект.КорректировкиВыплаты, МенеджерРасчета);
РасчетЗарплатыРасширенныйФормы.ПогашениеЗаймовВДанныеМенеджераРасчета(Объект.ПогашениеЗаймов, МенеджерРасчета);
РасчетЗарплатыРасширенныйФормы.НДФЛВДанныеМенеджераРасчета(Объект.НДФЛ, Объект.ПримененныеВычетыНаДетейИИмущественные, МенеджерРасчета);
РасчетЗарплатыРасширенныйФормы.ВзносыВДанныеМенеджераРасчета(Объект.Взносы, МенеджерРасчета);
КонецПроцедуры
&НаСервере
Функция ПериодРасчетаЗарплатыДоНачалаОтсутствия()
НачалоПериода = Объект.ПериодРегистрации;
ОкончаниеПериода = КонецМесяца(Объект.ПериодРегистрации);
Если Объект.ДатаНачала <= НачалоПериода Тогда
Возврат Неопределено;
КонецЕсли;
Если ОкончаниеПериода > НачалоДня(Объект.ДатаНачала) - 1 Тогда
ОкончаниеПериода = НачалоДня(Объект.ДатаНачала) - 1;
КонецЕсли;
ПериодРасчетаЗарплаты = Новый СтандартныйПериод;
ПериодРасчетаЗарплаты.ДатаНачала = НачалоПериода;
ПериодРасчетаЗарплаты.ДатаОкончания = ОкончаниеПериода;
Возврат ПериодРасчетаЗарплаты;
КонецФункции
&НаКлиенте
Процедура ОчиститьРассчитанныеДанныеНаКлиенте()
ОчиститьРассчитанныеДанные();
КонецПроцедуры
&НаСервере
Процедура ОчиститьРассчитанныеДанные()
Если Не ИспользуетсяРасчетЗарплаты Тогда
Возврат;
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Объект.ОплатаТруда.Очистить();
Объект.ОплатаЛьгот.Очистить();
Объект.Удержания.Очистить();
Объект.ПогашениеЗаймов.Очистить();
Объект.Взносы.Очистить();
Объект.НДФЛ.Очистить();
Объект.КорректировкиВыплаты.Очистить();
Объект.ПримененныеВычетыНаДетейИИмущественные.Очистить();
Объект.УправленческиеНачисления.Очистить();
УдаляемыеСтроки = Новый Массив;
Для Каждого СтрокаПоказателей Из Объект.Показатели Цикл
Если СтрокаПоказателей.ИдентификаторСтрокиВидаРасчета >= 10000000 Тогда
УдаляемыеСтроки.Добавить(СтрокаПоказателей);
КонецЕсли;
КонецЦикла;
Для Каждого УдаляемаяСтрока Из УдаляемыеСтроки Цикл
Объект.Показатели.Удалить(УдаляемаяСтрока);
КонецЦикла;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Функция ПолучитьКонтролируемыеПоля() Экспорт
КонтролируемыеПоля = Новый Структура;
ОплатаТрудаФиксРасчет = Новый Массив;
ОплатаТрудаФиксРасчет.Добавить("Результат");
ОплатаТрудаФиксРасчетВремени = Новый Массив;
ОплатаТрудаФиксРасчетВремени.Добавить("ОтработаноДней");
ОплатаТрудаФиксРасчетВремени.Добавить("ОтработаноЧасов");
ОплатаТрудаФиксРасчетВремени.Добавить("НормаДней");
ОплатаТрудаФиксРасчетВремени.Добавить("НормаЧасов");
ОплатаТрудаФиксСтрока = Новый Массив;
ОплатаТрудаФиксСтрока.Добавить("Сотрудник");
ОплатаТрудаФиксСтрока.Добавить("ПредставлениеРабочегоМеста");
ОплатаТрудаФиксСтрока.Добавить("Подразделение");
ОплатаТрудаФиксСтрока.Добавить("Начисление");
ОплатаТрудаФиксСтрока.Добавить("ДатаНачала");
ОплатаТрудаФиксСтрока.Добавить("ДатаОкончания");
ОплатаТрудаФиксЗаполнение = Новый Массив;
ОплатаТрудаФиксЗаполнение.Добавить("МестоПолученияДохода");
ОплатаТрудаПоля = Новый Структура;
ОплатаТрудаПоля.Вставить("ФиксРасчет", ОплатаТрудаФиксРасчет);
ОплатаТрудаПоля.Вставить("ФиксЗаполнение", ОплатаТрудаФиксЗаполнение);
ОплатаТрудаПоля.Вставить("ФиксСтрока", ОплатаТрудаФиксСтрока);
ОплатаТрудаПоля.Вставить("ФиксРасчетВремени", ОплатаТрудаФиксРасчетВремени);
КонтролируемыеПоля.Вставить("ОплатаТруда", ОплатаТрудаПоля);
УдержанияФиксРасчет = Новый Массив;
УдержанияФиксРасчет.Добавить("Результат");
УдержанияФиксСтрока = Новый Массив;
УдержанияФиксСтрока.Добавить("ФизическоеЛицо");
УдержанияФиксСтрока.Добавить("Удержание");
УдержанияФиксСтрока.Добавить("ДатаНачала");
УдержанияФиксСтрока.Добавить("ДатаОкончания");
УдержанияПоля = Новый Структура;
УдержанияПоля.Вставить("ФиксРасчет", УдержанияФиксРасчет);
УдержанияПоля.Вставить("ФиксЗаполнение", Новый Массив);
УдержанияПоля.Вставить("ФиксСтрока", УдержанияФиксСтрока);
КонтролируемыеПоля.Вставить("Удержания", УдержанияПоля);
КонтролируемыеПоля.Вставить("НДФЛ", УчетНДФЛРасширенный.КонтролируемыеПоляДляФиксацииРезультатов());
КонтролируемыеПоля.Вставить("КорректировкиВыплаты", РасчетЗарплатыРасширенный.КонтролируемыеПоляКорректировкиВыплатыДляФиксацииРезультатов());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.ДополнитьСоставКонтролируемыхПолейНачисленияЗарплаты(КонтролируемыеПоля, "ОплатаЛьгот");
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ДополнитьСоставКонтролируемыхПолейНачисленияЗарплаты(КонтролируемыеПоля);
КонецЕсли;
Возврат КонтролируемыеПоля;
КонецФункции
&НаКлиенте
Функция ПолучитьСтарыеЗначенияКонтролируемыхПолей() Экспорт
Возврат СтарыеЗначенияКонтролируемыхПолей;
КонецФункции
&НаСервере
Процедура УстановитьПорядокВыплаты()
Если ЗначениеЗаполнено(Объект.ПорядокВыплаты) Тогда
Возврат;
КонецЕсли;
Объект.ПорядокВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Межрасчет;
КонецПроцедуры
#Область РедактированиеПроцентаЕНВДВФормеДокумента
&НаКлиенте
Процедура ЗарегистрироватьПроцентЕНВД() Экспорт
ЗарегистрироватьПроцентЕНВДНаСервере(Объект.Организация, Объект.ПериодРегистрации, ЭтаФорма.ПроцентЕНВД, ЭтаФорма.ПроцентЕНВДСтрока);
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗарегистрироватьПроцентЕНВДНаСервере(Организация, Месяц, ПроцентЕНВД, ПроцентЕНВДСтрока)
ОтражениеЗарплатыВБухучетеРасширенный.ЗарегистрироватьПроцентЕНВДПослеРедактированияВФорме(Организация, Месяц, ПроцентЕНВД, ПроцентЕНВДСтрока);
КонецПроцедуры
&НаСервере
Функция ТекстПредупрежденияПриРедактированииПроцентаЕНВД() Экспорт
ОрганизацияНаименование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Организация, "Наименование");
МесяцНачисленияСтрокой = ЗарплатаКадрыКлиентСервер.ПолучитьПредставлениеМесяца(Объект.ПериодРегистрации);
ТекстПредупреждения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При изменении введенного ранее процента деятельности ЕНВД необходимо
|перезаполнить все документы начисления зарплаты за %1 г по ""%2""'"),
МесяцНачисленияСтрокой,
ОрганизацияНаименование);
Возврат ТекстПредупреждения;
КонецФункции
&НаКлиенте
Процедура Подключаемый_ПроцентЕНВДСтрокаПриИзменении(Элемент)
ОтражениеЗарплатыВБухучетеКлиент.ПроцентЕНВДСтрокаПриИзменении(ЭтаФорма, Элемент, ЭтаФорма.ПроцентЕНВДСтрока);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПроцентЕНВДСтрокаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ОтражениеЗарплатыВБухучетеКлиент.ПроцентЕНВДСтрокаНачалоВыбора(ЭтаФорма, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ДополнитьСтроку(ИдентификаторСтроки, ОписаниеТаблицы, ЗаполнятьСведенияСотрудников, ЗаполнятьЗначенияПоказателей) Экспорт
ДополнитьСтрокуНаСервере(ИдентификаторСтроки, ОписаниеТаблицы, ЗаполнятьСведенияСотрудников, ЗаполнятьЗначенияПоказателей);
КонецПроцедуры
&НаСервере
Процедура ДополнитьСтрокуНаСервере(ИдентификаторСтроки, ОписаниеТаблицы, ЗаполнятьСведенияСотрудников, ЗаполнятьЗначенияПоказателей)
РасчетЗарплатыРасширенныйФормы.ДополнитьСтрокуРасчета(ЭтаФорма, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)), ИдентификаторСтроки, ОписаниеТаблицы, ЗаполнятьСведенияСотрудников, ЗаполнятьЗначенияПоказателей);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьВремяРегистрации(МассивСотрудников = Неопределено)
ВремяРегистрации = ЗарплатаКадрыРасширенный.ВремяРегистрацииДокумента(Объект.Ссылка, Объект.ДатаНачала);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтображениеНадписей()
УстановитьПривилегированныйРежим(Истина);
МассивСотрудников = ОбщегоНазначения.ВыгрузитьКолонку(Объект.Начисления, "РабочееМесто", Истина);
ЗарплатаКадрыРасширенный.УстановитьТекстНадписиОДокументахВведенныхНаДату(ЭтотОбъект, ВремяРегистрации,
МассивСотрудников, Объект.Ссылка, ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений, Объект.ИсправленныйДокумент);
КадровыеРешенияФормы.УстановитьОтображениеНадписейВКадровомДокументе(ЭтотОбъект);
КонецПроцедуры
#Область ПрямыеВыплатыФСС
&НаКлиенте
Процедура СоздатьИсходящееСообщениеОСтраховомСлучаеФСС(Команда)
Если Не Элементы.ДанныеОДетяхРебенок.Видимость Тогда
Элементы.ДанныеОДетяхРебенок.Видимость = Истина;
КонецЕсли;
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите строку'"));
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.СообщениеВФСС)
И Не ЗначениеЗаполнено(СтрокаТаблицы.Ребенок) Тогда
ПутьКРеквизиту = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("ДанныеОДетях", СтрокаТаблицы.НомерСтроки, "Ребенок");
СообщенияБЗККлиентСервер.СообщитьВФорме(НСтр("ru = 'Заполните ребенка'"), ПутьКРеквизиту, "Объект");
Возврат;
КонецЕсли;
ПараметрыЗаписи = Новый Структура("РежимЗаписи, ИмяПроцедурыПослеЗаписи, ИндексСтроки");
ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение;
ПараметрыЗаписи.ИмяПроцедурыПослеЗаписи = "СоздатьИсходящееСообщениеОСтраховомСлучаеФССПослеЗаписи";
ПараметрыЗаписи.ИндексСтроки = Объект.ДанныеОДетях.Индекс(СтрокаТаблицы);
Если Модифицированность Или Объект.Ссылка.Пустая() Тогда
Записать(ПараметрыЗаписи);
Иначе
СоздатьИсходящееСообщениеОСтраховомСлучаеФССПослеЗаписи(Истина, ПараметрыЗаписи);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СоздатьИсходящееСообщениеОСтраховомСлучаеФССПослеЗаписи(ОбъектЗаписан, ПараметрыЗаписи) Экспорт
СтрокаТаблицы = Объект.ДанныеОДетях[ПараметрыЗаписи.ИндексСтроки];
Если ЗначениеЗаполнено(СтрокаТаблицы.СообщениеВФСС) Тогда
ПараметрыФормы = Новый Структура("Ключ", СтрокаТаблицы.СообщениеВФСС);
Уникальность = Строка(СтрокаТаблицы.СообщениеВФСС.УникальныйИдентификатор());
ИначеЕсли ЗначениеЗаполнено(Объект.Ссылка) Тогда
Основание = Новый Структура;
Основание.Вставить("ДокументОснование", Объект.Ссылка);
Основание.Вставить("Ребенок", СтрокаТаблицы.Ребенок);
ПараметрыФормы = Новый Структура("Основание", Основание);
Уникальность = Строка(Объект.Ссылка.УникальныйИдентификатор()) + "/" + Строка(СтрокаТаблицы.ИдентификаторСтроки);
Иначе
Возврат;
КонецЕсли;
ОткрытьФорму("Документ.ИсходящееСообщениеОСтраховомСлучаеФСС.ФормаОбъекта", ПараметрыФормы, , Уникальность);
КонецПроцедуры
&НаКлиенте
Процедура СоздатьСведенияДляРеестраПрямыхВыплат(Команда)
СтрокаТаблицы = Элементы.ДанныеОДетях.ТекущиеДанные;
Если СтрокаТаблицы = Неопределено Тогда
ПоказатьПредупреждение(, НСтр("ru = 'Выберите строку'"));
Возврат;
КонецЕсли;
Если Модифицированность Или Объект.Ссылка.Пустая() Тогда
Если Не Записать(Новый Структура("РежимЗаписи", РежимЗаписиДокумента.Запись)) Тогда
Возврат;
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(СтрокаТаблицы.ИдентификаторСтроки) Тогда
СтрокаТаблицы.ИдентификаторСтроки = Новый УникальныйИдентификатор;
КонецЕсли;
ПрямыеВыплатыПособийСоциальногоСтрахованияКлиент.ОткрытьЗаявлениеСотрудникаПоОснованию(Объект.Ссылка, СтрокаТаблицы.ИдентификаторСтроки, СтрокаТаблицы.Заявление);
КонецПроцедуры
&НаСервере
Процедура ОбновитьДанныеОДетях()
ЕстьСсылкаРебенка = Ложь;
ЕстьФИОРебенка = Ложь;
ЕстьСообщения = Ложь;
ЕстьЗаявления = Ложь;
Если Объект.ДанныеОДетях.Количество() > 0 Тогда
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| МАКСИМУМ(ЗаявлениеСотрудникаНаВыплатуПособия.Ссылка) КАК Ссылка,
| ЗаявлениеСотрудникаНаВыплатуПособия.ИдентификаторСтрокиОснования КАК ИдентификаторСтрокиОснования
|ИЗ
| Документ.ЗаявлениеСотрудникаНаВыплатуПособия КАК ЗаявлениеСотрудникаНаВыплатуПособия
|ГДЕ
| ЗаявлениеСотрудникаНаВыплатуПособия.ДокументОснование = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ЗаявлениеСотрудникаНаВыплатуПособия.ИдентификаторСтрокиОснования
|;
|
|
|ВЫБРАТЬ
| МАКСИМУМ(СообщениеВФСС.Ссылка) КАК Ссылка,
| СообщениеВФСС.Ребенок КАК Ребенок,
| СообщениеВФСС.РебенокИмя КАК РебенокИмя,
| СообщениеВФСС.РебенокДатаРождения КАК РебенокДатаРождения
|ИЗ
| Документ.ИсходящееСообщениеОСтраховомСлучаеФСС КАК СообщениеВФСС
|ГДЕ
| СообщениеВФСС.ДокументОснование = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| СообщениеВФСС.Ребенок,
| СообщениеВФСС.РебенокИмя,
| СообщениеВФСС.РебенокДатаРождения";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
УстановитьПривилегированныйРежим(Истина);
Пакет = Запрос.ВыполнитьПакет();
Заявления = Пакет[0].Выгрузить();
Сообщения = Пакет[1].Выгрузить();
Для Каждого СтрокаТаблицы Из Объект.ДанныеОДетях Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.Ребенок) Тогда
ЕстьСсылкаРебенка = Истина;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.Фамилия)
Или ЗначениеЗаполнено(СтрокаТаблицы.Имя)
Или ЗначениеЗаполнено(СтрокаТаблицы.Отчество)
Или ЗначениеЗаполнено(СтрокаТаблицы.ДатаРожденияРебенка) Тогда
ЕстьФИОРебенка = Истина;
КонецЕсли;
СтрокаТаблицы.ПредставлениеОчередности = ПредставлениеОчередностиРебенка(СтрокаТаблицы.Очередность);
Заявление = Заявления.Найти(СтрокаТаблицы.ИдентификаторСтроки, "ИдентификаторСтрокиОснования");
Если Заявление <> Неопределено Тогда
ЕстьЗаявления = Истина;
СтрокаТаблицы.Заявление = Заявление.Ссылка;
Иначе
СтрокаТаблицы.Заявление = Неопределено;
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаТаблицы.Ребенок) Тогда
Сообщение = Сообщения.Найти(СтрокаТаблицы.Ребенок, "Ребенок");
ИначеЕсли ЗначениеЗаполнено(СтрокаТаблицы.Имя) Тогда
Сообщение = Сообщения.Найти(СтрокаТаблицы.Имя, "РебенокИмя");
Иначе
Сообщение = Неопределено;
КонецЕсли;
Если Сообщение <> Неопределено Тогда
ЕстьСообщения = Истина;
СтрокаТаблицы.СообщениеВФСС = Сообщение.Ссылка;
Сообщения.Удалить(Сообщение);
Иначе
СтрокаТаблицы.СообщениеВФСС = Неопределено;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Элементы.ДанныеОДетяхРебенок.Видимость = ЕстьСсылкаРебенка Или Не ЕстьФИОРебенка;
Элементы.ДанныеОДетяхФамилия.Видимость = ЕстьФИОРебенка;
Элементы.ДанныеОДетяхИмя.Видимость = ЕстьФИОРебенка;
Элементы.ДанныеОДетяхОтчество.Видимость = ЕстьФИОРебенка;
Элементы.ДанныеОДетяхДатаРожденияРебенка.Видимость = ЕстьФИОРебенка;
Элементы.ДанныеОДетяхСообщениеВФСС.Видимость = ЕстьСообщения;
Элементы.ДанныеОДетяхЗаявление.Видимость = ЕстьЗаявления;
КонецПроцедуры
&НаСервере
Процедура АннулироватьЗаявление(Знач ТекущаяСтрока)
ТекущаяСтрока = Объект.ДанныеОДетях.НайтиПоИдентификатору(ТекущаяСтрока);
ПрямыеВыплатыПособийСоциальногоСтрахованияРасширенный.ПометитьЗаявлениеНаУдаление(ТекущаяСтрока.Заявление);
КонецПроцедуры
#КонецОбласти
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьФинансированиеФедеральнымБюджетом(Форма)
Доступен = Форма.Объект.ПрименятьЛьготыПриНачисленииПособия;
Форма.Элементы.ФинансированиеФедеральнымБюджетом.Доступность = Доступен;
Если Не Доступен Тогда
Форма.Объект.ФинансированиеФедеральнымБюджетом = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьУчитыватьДанныеСтрахователей(Форма)
Доступен = Не Форма.Объект.РасчетПоПравилам2010Года;
Форма.Элементы.УчитыватьЗаработокПредыдущихСтрахователей.Доступность = Доступен;
Если Не Доступен Тогда
Форма.Объект.УчитыватьЗаработокПредыдущихСтрахователей = Неопределено;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовЗависимыхОтВыплатыПособияДоПолутораЛет(Форма)
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ДатаОкончанияПособияДоПолутораЛет");
МассивЭлементов.Добавить("ПособиеДоПолутораЛет");
МассивЭлементов.Добавить("КоличествоДетей");
МассивЭлементов.Добавить("КоличествоПервыхДетей");
МассивЭлементов.Добавить("РасчетПоПравилам2010Года");
МассивЭлементов.Добавить("УчитыватьЗаработокПредыдущихСтрахователей");
МассивЭлементов.Добавить("СреднедневнойЗаработок");
МассивЭлементов.Добавить("Рассчитать");
МассивЭлементов.Добавить("ОткрытьСреднийЗаработок");
УстановитьДоступностьМассиваЭлементов(Форма, МассивЭлементов, Форма.Объект.ВыплачиватьПособиеДоПолутораЛет);
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ПрименятьЛьготыПриНачисленииПособия");
УстановитьДоступностьМассиваЭлементов(Форма, МассивЭлементов, Форма.Объект.ВыплачиватьПособиеДоПолутораЛет
И ?(ЗначениеЗаполнено(Форма.Объект.ДатаНачала), Форма.Объект.ДатаНачала, Форма.Объект.Дата) < УчетПособийСоциальногоСтрахованияКлиентСервер.ДатаОтменыЛьготФинансируемыхИзБюджета());
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ФинансированиеФедеральнымБюджетом");
УстановитьДоступностьМассиваЭлементов(Форма, МассивЭлементов, Форма.Объект.ВыплачиватьПособиеДоПолутораЛет И Форма.Объект.ПрименятьЛьготыПриНачисленииПособия
И ?(ЗначениеЗаполнено(Форма.Объект.ДатаНачала), Форма.Объект.ДатаНачала, Форма.Объект.Дата) < УчетПособийСоциальногоСтрахованияКлиентСервер.ДатаОтменыЛьготФинансируемыхИзБюджета());
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("УчитыватьЗаработокПредыдущихСтрахователей");
УстановитьДоступностьМассиваЭлементов(Форма, МассивЭлементов, Форма.Объект.ВыплачиватьПособиеДоПолутораЛет И НЕ Форма.Объект.РасчетПоПравилам2010Года);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовЗависимыхОтВыплатыПособияДоТрехЛет(Форма)
МассивЭлементов = Новый Массив;
МассивЭлементов.Добавить("ДатаОкончанияПособияДоТрехЛет");
МассивЭлементов.Добавить("ПособиеДоТрехЛет");
МассивЭлементов.Добавить("ГруппаПоказателиПособияДоТрехЛет");
УстановитьДоступностьМассиваЭлементов(Форма, МассивЭлементов, Форма.Объект.ВыплачиватьПособиеДоТрехЛет);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьМассиваЭлементов(Форма, МассивЭлементов, Доступность)
Для каждого ЭлементМассива Из МассивЭлементов Цикл
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, ЭлементМассива, "Доступность", Доступность);
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПорядокРасчетаСреднегоЗаработкаФСС()
ПорядокРасчета = Неопределено;
Если Объект.РасчетПоПравилам2010Года Тогда
ПорядокРасчета = ПредопределенноеЗначение("Перечисление.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2010");
Иначе
ПорядокРасчета = УчетПособийСоциальногоСтрахованияКлиентСервер.ПорядокРасчетаСреднегоЗаработкаФСС(Объект.ДатаНачала);
КонецЕсли;
Возврат ПорядокРасчета;
КонецФункции
&НаСервере
Функция ПараметрыРасчетаСреднегоДневногоЗаработкаФСС()
ПараметрыРасчета = УчетПособийСоциальногоСтрахованияКлиентСервер.ПараметрыРасчетаСреднегоДневногоЗаработкаФСС();
ПараметрыРасчета.ДатаНачалаСобытия = Объект.ДатаНачала;
ПараметрыРасчета.ПериодРасчетаСреднегоЗаработкаНачало = Объект.ПериодРасчетаСреднегоЗаработкаНачало;
ПараметрыРасчета.ПериодРасчетаСреднегоЗаработкаОкончание = Объект.ПериодРасчетаСреднегоЗаработкаОкончание;
ПараметрыРасчета.РасчетныеГоды = УчетПособийСоциальногоСтрахования.ГодыПериодаРасчетаСреднего(Объект);
ПараметрыРасчета.ПрименяетсяФЗ_421_2014 = УчетПособийСоциальногоСтрахования.ПрименяетсяФЗ_421_2014(Объект.Сотрудник, Объект.ДатаНачала);
ПараметрыРасчета.ПрименяетсяФЗ_20_2023 = УчетПособийСоциальногоСтрахования.ПрименяетсяФЗ_20_2023(Объект.Сотрудник, Объект.ДатаНачала);
ПараметрыРасчета.ДанныеНачислений = Объект.СреднийЗаработокФСС;
ПараметрыРасчета.ДанныеСтрахователей = Объект.СреднийЗаработокДанныеСтрахователей;
ПараметрыРасчета.УчитыватьЗаработокПредыдущихСтрахователей = Объект.УчитыватьЗаработокПредыдущихСтрахователей;
ПараметрыРасчета.ДанныеВремени = Объект.ОтработанноеВремяДляСреднегоФСС;
ПараметрыРасчета.ИспользоватьДниБолезниУходаЗаДетьми = Истина;
ПараметрыРасчета.ПорядокРасчета = ПорядокРасчетаСреднегоЗаработкаФСС();
ПараметрыРасчета.РайонныйКоэффициентРФ = Объект.РайонныйКоэффициентРФНаНачалоСобытия;
ПараметрыРасчета.ДоляНеполногоВремени = Объект.ДоляНеполногоВремени;
ПараметрыРасчета.Сотрудник = Объект.ОсновнойСотрудник;
Если ПараметрыРасчета.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2010 Тогда
ПараметрыРасчета.ПрименятьПредельнуюВеличину = Ложь;
ИначеЕсли ПараметрыРасчета.ПорядокРасчета = Перечисления.ПорядокРасчетаСреднегоЗаработкаФСС.Постановление2011 Тогда
ПараметрыРасчета.ПрименятьПредельнуюВеличину = Истина;
КонецЕсли;
Возврат ПараметрыРасчета;
КонецФункции
&НаСервере
Функция КарточкаУчетаПоСтраховымВзносамНаСервере(ФизическоеЛицо)
ДокументОбъект = РеквизитФормыВЗначение("Объект");
Возврат УчетСтраховыхВзносов.КарточкаУчетаПоСтраховымВзносамПодробнее(ДокументОбъект, Модифицированность, ФизическоеЛицо, Объект.ПериодРегистрации);
КонецФункции
&НаСервере
Процедура ДатаПриИзмененииНаСервере()
ЗаполнитьПодписиПоОрганизацииНаСервере();
УстановитьОтображениеНомеровДокумента();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПодписиПоОрганизацииНаСервере()
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ПодписиДокументов.ЗаполнитьПодписиПоОрганизации(ЭтаФорма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьОтображениеНомеровДокумента()
ЭлектронныеТрудовыеКнижкиКлиентСервер.УстановитьОтображениеНомеровДокумента(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Функция СтруктураОписанияДанныхСотрудника()
Возврат Новый Структура("ТарифнаяСетка,РазрядКатегория,ТарифнаяСеткаНадбавки,РазрядКатегорияНадбавки",
Справочники.ТарифныеСетки.ПустаяСсылка(),
Справочники.РазрядыКатегорииДолжностей.ПустаяСсылка(),
Справочники.ТарифныеСетки.ПустаяСсылка(),
Справочники.РазрядыКатегорииДолжностей.ПустаяСсылка());
КонецФункции
&НаКлиенте
Функция ДанныеСотрудника(Сотрудник)
СтруктураДанныхСотрудника = СтруктураОписанияДанныхСотрудника();
Если ДанныеСотрудников <> Неопределено Тогда
СведенияСотрудника = ДанныеСотрудников.Получить(Сотрудник);
Если СведенияСотрудника <> Неопределено Тогда
СтруктураДанныхСотрудника = СведенияСотрудника;
КонецЕсли;
КонецЕсли;
Возврат СтруктураДанныхСотрудника;
КонецФункции
&НаСервере
Процедура ПрочитатьДанныеСотрудников(МассивСотрудников, ДатаСведений)
СотрудникиДокумента = Новый ФиксированныйМассив(МассивСотрудников);
СоответствиеДанныхСотрудников = Новый Соответствие;
Если МассивСотрудников.Количество() > 0 Тогда
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| Сотрудники.Сотрудник,
| ВЫРАЗИТЬ(Сотрудники.Должность КАК Справочник.Должности).ТарифнаяСетка КАК ТарифнаяСетка,
| ВЫРАЗИТЬ(Сотрудники.Должность КАК Справочник.Должности).РазрядКатегория КАК РазрядКатегория,
| ВЫРАЗИТЬ(Сотрудники.Должность КАК Справочник.Должности).ТарифнаяСеткаНадбавки КАК ТарифнаяСеткаНадбавки,
| Сотрудники.РазрядКатегория КАК РазрядКатегорияНадбавки
|ИЗ
| ВТКадровыеДанныеСотрудников КАК Сотрудники";
КадровыеДанные = "РазрядКатегория";
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьШтатноеРасписание") Тогда
КадровыеДанные = КадровыеДанные + ",ДолжностьПоШтатномуРасписанию";
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Сотрудники.Должность", "Сотрудники.ДолжностьПоШтатномуРасписанию");
Запрос.Текст = СтрЗаменить(Запрос.Текст, "Справочник.Должности", "Справочник.ШтатноеРасписание");
Иначе
КадровыеДанные = КадровыеДанные + ",Должность";
КонецЕсли;
КадровыйУчет.СоздатьНаДатуВТКадровыеДанныеСотрудников(
Запрос.МенеджерВременныхТаблиц,
Истина,
МассивСотрудников,
КадровыеДанные,
ДатаСведений
);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДанныеСотрудника = СтруктураОписанияДанныхСотрудника();
ЗаполнитьЗначенияСвойств(ДанныеСотрудника, Выборка);
СоответствиеДанныхСотрудников.Вставить(Выборка.Сотрудник, ДанныеСотрудника);
КонецЦикла;
КонецЕсли;
ДанныеСотрудников = Новый ФиксированноеСоответствие(СоответствиеДанныхСотрудников);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьРазмераЛьгот(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы,
"ЛьготыРазмер", "Видимость", Форма.Элементы.РедактироватьРазмерЛьгот.Пометка);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСоставДействующихЛьготСотрудника()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.ЗаполнитьСоставДействующихЛьготВОтпускеПоУходу(ЭтотОбъект, ТаблицаСотрудников(ЭтотОбъект), ОписаниеТаблицыЛьгот());
РассчитатьРазмерЛьготНаСервере();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьРазмерЛьготНаКлиенте()
РассчитатьРазмерЛьготНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьРазмерЛьготНаСервере()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.РассчитатьРазмерЛьготВФормеДокументаСНесколькимиПозициями(ЭтотОбъект, ВремяРегистрации, ОписаниеТаблицыЛьгот());
РассчитатьИтогиПоРазмеруЛьгот(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РассчитатьИтогиПоРазмеруЛьгот(Форма)
ЗарплатаКадрыРасширенныйКлиентСервер.РассчитатьИтогиФОТВФормеДокументаСНесколькимиРабочимиМестами(Форма, ОписаниеТаблицыЛьгот(), "РазмерЛьгот");
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьПересечениеПериодовОтсутствияНаКлиенте(Отказ, ПараметрыЗаписи, ЗакрытьПослеЗаписи)
Если ПараметрыЗаписи.РежимЗаписи <> РежимЗаписиДокумента.Проведение Тогда
Возврат;
КонецЕсли;
РезультатПроверки = ПроверитьПересечениеПериодовОтсутствияНаСервере();
Если РезультатПроверки.ДанныеСотрудников.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Если РезультатПроверки.Отказ Тогда
Для Каждого ДанныеСотрудника Из РезультатПроверки.ДанныеСотрудников Цикл
ТекстСообщения = НСтр("ru = 'На период %1 сотруднику уже зарегистрирован отпуск документом %2.'");
ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, ДанныеСотрудника.Значение.ПредставлениеПериода, ДанныеСотрудника.Значение.Регистратор);
ОбщегоНазначенияКлиент.СообщитьПользователю(ТекстСообщения, , , , Отказ);
КонецЦикла;
Возврат;
КонецЕсли;
Отказ = Истина;
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", ЗакрытьПослеЗаписи);
Оповещение = Новый ОписаниеОповещения("ПроверитьПересечениеПериодовОтсутствияНаКлиентеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПараметрыФормы = Новый Структура("РезультатПроверки", РезультатПроверки);
ОткрытьФорму("ОбщаяФорма.ПроверкаПересеченияПериодовОтсутствияСотрудников", ПараметрыФормы, ЭтотОбъект, , , , Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьПересечениеПериодовОтсутствияНаКлиентеЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> Истина Тогда
Возврат;
КонецЕсли;
ПараметрыЗаписи = ДополнительныеПараметры.ПараметрыЗаписи;
ПараметрыЗаписи.Вставить("ПроверкаПередЗаписьюВыполнена", Истина);
Если Записать(ПараметрыЗаписи) И ДополнительныеПараметры.ЗакрытьПослеЗаписи Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПроверитьПересечениеПериодовОтсутствияНаСервере()
ИсходныеДанные = СостоянияСотрудников.ПустаяТаблицаДанныхСостоянийСотрудника();
ПараметрыПолученияСотрудников = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоСпискуФизическихЛиц();
ПараметрыПолученияСотрудников.НачалоПериода = Объект.ДатаНачала;
ПараметрыПолученияСотрудников.ОкончаниеПериода = Объект.ДатаОкончания;
ПараметрыПолученияСотрудников.Организация = Объект.Организация;
ПараметрыПолученияСотрудников.ОтбиратьПоГоловнойОрганизации = Истина;
ПараметрыПолученияСотрудников.РаботникиПоТрудовымДоговорам = Истина;
ПараметрыПолученияСотрудников.СписокФизическихЛиц = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Сотрудник);
ТаблицаСотрудников = КадровыйУчет.СотрудникиОрганизации(Ложь, ПараметрыПолученияСотрудников);
СостояниеСотрудника = Перечисления.СостоянияСотрудника.ОтпускПоУходуЗаРебенком;
Если Не Объект.НеНачислятьЗарплатуИНеВыплачиватьАвансВоВремяОтпуска Тогда
СостояниеСотрудника = Перечисления.СостоянияСотрудника.РаботаВОтпускеПоУходуЗаРебенком;
КонецЕсли;
Для Каждого ДанныеСотрудника Из ТаблицаСотрудников Цикл
НоваяСтрока = ИсходныеДанные.Добавить();
НоваяСтрока.Сотрудник = ДанныеСотрудника.Сотрудник;
НоваяСтрока.Состояние = СостояниеСотрудника;
НоваяСтрока.Начало = Объект.ДатаНачала;
НоваяСтрока.Окончание = Объект.ДатаОкончания;
КонецЦикла;
Возврат СостоянияСотрудников.ПроверитьПересечениеПериодовОтсутствия(ИсходныеДанные, Объект.Ссылка, Объект.ИсправленныйДокумент);
КонецФункции
&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи, ПараметрыЗаписи)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", ЗакрытьПослеЗаписи);
ДополнительныеПараметры.Вставить("ПараметрыЗаписи", ПараметрыЗаписи);
РасчетЗарплатыРасширенныйКлиент.ВыполнитьРасчетСотрудникаПередЗаписьюДокумента(
ЭтаФорма, "ЗаписатьНаКлиентеЗавершение", ДополнительныеПараметры, РегистрацияНачисленийДоступна, ВыполнятьПредварительныйРасчетДокумента);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиентеЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат = КодВозвратаДиалога.Да Тогда
ПараметрыЗаписи = ДополнительныеПараметры.ПараметрыЗаписи;
ЗакрытьПослеЗаписи = ДополнительныеПараметры.ЗакрытьПослеЗаписи;
Отказ = Ложь;
ПроверитьПересечениеПериодовОтсутствияНаКлиенте(Отказ, ПараметрыЗаписи, ЗакрытьПослеЗаписи);
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрыЗаписи.Вставить("ПроверкаПередЗаписьюВыполнена", Истина);
Если Записать(ПараметрыЗаписи) И ЗакрытьПослеЗаписи Тогда
Закрыть();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#Область РаспределениеПоТерриториямУсловиямТруда
&НаКлиенте
Процедура ПриНажатииПолеРаспределениеПоТерриториямУсловиямТруда(ОписаниеТаблицы, Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ПараметрыДляВыбора = РасчетЗарплатыРасширенныйКлиент.ПараметрыДляВыбораПолеРаспределениеПоТерриториямУсловиямТруда();
ПараметрыДляВыбора.Форма = ЭтаФорма;
ПараметрыДляВыбора.ОписаниеДокумента = ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект));
ПараметрыДляВыбора.ОписаниеТаблицы = ОписаниеТаблицы;
РасчетЗарплатыРасширенныйКлиент.ПриНажатииПолеРаспределениеПоТерриториямУсловиямТруда(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка, ПараметрыДляВыбора);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПараметрыФормыРаспределениеПоТерриториямУсловиямТруда(ПараметрыФормы, ОписаниеТаблицы, ВыбраннаяСтрока) Экспорт
ЗаполнитьПараметрыФормыРаспределениеПоТерриториямУсловиямТрудаНаСервере(ПараметрыФормы, ОписаниеТаблицы, ВыбраннаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПараметрыФормыРаспределениеПоТерриториямУсловиямТрудаНаСервере(ПараметрыФормы, ОписаниеТаблицы, ВыбраннаяСтрока)
РасчетЗарплатыРасширенныйФормы.ЗаполнитьПараметрыФормыРаспределениеПоТерриториямУсловиямТруда(ЭтаФорма, ПараметрыФормы, ОписаниеТаблицы, ВыбраннаяСтрока);
КонецПроцедуры
&НаКлиенте
Процедура ПеренестиРезультатыРедактированияРаспределенияПоТерриториямУсловиямТруда(РезультатРедактирования, ОписаниеТаблицы, ВыбраннаяСтрока) Экспорт
ПеренестиРезультатыРедактированияРаспределенияПоТерриториямУсловиямТрудаНаСервере(РезультатРедактирования, ОписаниеТаблицы, ВыбраннаяСтрока);
КонецПроцедуры
&НаСервере
Процедура ПеренестиРезультатыРедактированияРаспределенияПоТерриториямУсловиямТрудаНаСервере(РезультатРедактирования, ОписаниеТаблицы, ВыбраннаяСтрока)
РасчетЗарплатыРасширенныйФормы.ПеренестиРезультатыРедактированияРаспределенияПоТерриториямУсловиямТруда(ЭтаФорма, РезультатРедактирования, ОписаниеТаблицы, ВыбраннаяСтрока);
КонецПроцедуры
&НаСервере
Функция ОписанияТаблицСРаспределениемПоТерриториямУсловиямТруда()
Описания = Новый Массив;
Описания.Добавить(ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
Возврат Описания;
КонецФункции
#КонецОбласти
#Область КлючевыеРеквизитыЗаполненияФормы
&НаСервере
Функция КлючевыеРеквизитыЗаполненияФормыТаблицыОчищаемыеПриИзменении() Экспорт
Возврат Новый Массив;
КонецФункции
&НаСервере
Функция КлючевыеРеквизитыЗаполненияФормыОписаниеКлючевыхРеквизитов() Экспорт
Массив = Новый Массив;
Если ИспользуетсяРасчетЗарплаты Тогда
Массив.Добавить(Новый Структура("ЭлементФормы", "ПериодРегистрации"));
Массив.Добавить(Новый Структура("ЭлементФормы", "Организация"));
Массив.Добавить(Новый Структура("ЭлементФормы", "Сотрудник"));
Массив.Добавить(Новый Структура("ЭлементФормы", "ДатаНачала"));
Массив.Добавить(Новый Структура("ЭлементФормы", "РассчитатьЗарплату"));
КонецЕсли;
Для каждого ОписаниеЭлемента Из Массив Цикл
ОписаниеЭлемента.Вставить("ПредупреждениеПриРедактировании", ЗарплатаКадры.КлючевыеРеквизитыЗаполненияФормыТекстПредупрежденияДокументовСАвтоматическимРасчетом());
КонецЦикла;
Возврат Массив
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(Форма)
ЗарплатаКадрыКлиентСервер.КлючевыеРеквизитыЗаполненияФормыУстановитьОтображениеПредупреждения(Форма, ?(ЕстьФиксированныеДанные(Форма), ОтображениеПредупрежденияПриРедактировании.Отображать, ОтображениеПредупрежденияПриРедактировании.Авто));
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЕстьФиксированныеДанные(Форма)
ИсправленныйДокументЗаполнен = ЗначениеЗаполнено(Форма.Объект.ИсправленныйДокумент);
Возврат РасчетЗарплатыРасширенныйКлиентСервер.ЕстьФиксированныеДанныеВТаблице(Форма, ОписаниеТаблицыОплатаТруда(Форма.РегистрацияНачисленийДоступна), ИсправленныйДокументЗаполнен)
Или РасчетЗарплатыРасширенныйКлиентСервер.ЕстьФиксированныеДанныеВТаблице(Форма, ОписаниеТаблицыНДФЛ(Форма.РегистрацияНачисленийДоступна), ИсправленныйДокументЗаполнен)
Или РасчетЗарплатыРасширенныйКлиентСервер.ЕстьФиксированныеДанныеВТаблице(Форма, ОписаниеТаблицыУдержаний(Форма.РегистрацияНачисленийДоступна), ИсправленныйДокументЗаполнен);
КонецФункции
&НаКлиенте
Процедура ОплатаТрудаПериодДействияПриИзменении(Элемент)
ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(Элементы.ОплатаТруда.ТекущиеДанные, "ПериодДействия", "ПериодДействияСтрокой", Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПериодДействияНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(ЭтаФорма, Элементы.ОплатаТруда.ТекущиеДанные, "ПериодДействия", "ПериодДействияСтрокой");
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПериодДействияРегулирование(Элемент, Направление, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(Элементы.ОплатаТруда.ТекущиеДанные, "ПериодДействия", "ПериодДействияСтрокой", Направление, Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПериодДействияАвтоПодбор(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ОплатаТрудаПериодДействияОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, ПараметрыПолученияДанных, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
#Область АдаптацияУвольнение
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиРешенияЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Не ЗначениеЗаполнено(Результат) Тогда
Возврат;
КонецЕсли;
ОбработкаНавигационнойСсылкиРешенияЗавершениеНаСервере(Результат, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура ОбработкаНавигационнойСсылкиРешенияЗавершениеНаСервере(Результат, ДополнительныеПараметры)
КадровыеРешенияФормы.ОбработкаНавигационнойСсылкиРешенияЗавершение(ЭтотОбъект, Результат, ДополнительныеПараметры);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ЗагрузитьНастройки()
Если Не РегистрацияНачисленийДоступна Тогда
Возврат;
КонецЕсли;
РасчетЗарплатыРасширенныйФормы.УстановитьРежимОтображенияПодробноИзНастройки(ЭтаФорма, ОписаниеТаблицыОплатаТруда(РегистрацияНачисленийДоступна));
РасчетЗарплатыРасширенныйФормы.УстановитьРежимОтображенияПодробноИзНастройки(ЭтаФорма, ОписаниеТаблицыУдержаний(РегистрацияНачисленийДоступна));
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
Модуль.УстановитьРежимОтображенияПодробноИзНастройки(ЭтаФорма, ОписаниеТаблицыОплатаЛьгот(РегистрацияНачисленийДоступна));
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплата");
Модуль.ПриЗавершенииИнициализацииФормыДокументаОплатыТруда(ЭтаФорма, ОписаниеДокумента(ПараметрыОписанияДокумента(ЭтотОбъект)), Объект.РассчитатьЗарплату);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьБухучетРезультатовРасчетаНаСервере(ИсходныеДанные)
МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(Объект.ПериодРегистрации, Объект.Организация);
ДанныеФормыВДанныеМенеджераРасчета(МенеджерРасчета);
ПериодРасчетаЗарплаты = ПериодРасчетаЗарплатыДоНачалаОтсутствия();
ЗаполнитьНастройкиМенеджераРасчета(МенеджерРасчета, ПериодРасчетаЗарплаты);
МенеджерРасчета.НастройкиБухучета.ПроверятьНеобходимостьПересчетаНДФЛ = МенеджерРасчета.НастройкиРасчета.РассчитыватьНДФЛ;
МенеджерРасчета.ЗаполнитьНастройкиОбновленияБухучета(ИсходныеДанные);
МенеджерРасчета.ОбновитьБухучетРезультатовРасчета();
РасчетЗарплатыВДанныеФормы(МенеджерРасчета.Зарплата);
РасчетЗарплатыРасширенныйФормы.УстановитьТекущуюСтрокуТаблицыФормы(ЭтаФорма, ИсходныеДанные.ИмяИсходнойТаблицы, ИсходныеДанные.НомерСтрокиИсходнойТаблицы);
КонецПроцедуры
&НаКлиенте
Процедура НомерПриИзменении(Элемент)
УстановитьОтображениеНомеровДокумента();
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьОтображениеРеквизитовПервичногоДокумента(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НомерПриказаПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиентСервер.УстановитьОтображениеРеквизитовПервичногоДокумента(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьВидимостьКолонокПрогрессивногоНалога(ДатаПолученияДохода)
ВидимостьКолонок = ДатаПолученияДохода >= УчетНДФЛ.ДатаЗакона176ФЗ();
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаКолонокНалогПоПрогрессивнымСтавкам",
"Видимость", ВидимостьКолонок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "НДФЛНалогСПревышения",
"Видимость", НЕ ВидимостьКолонок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаКолонокЗачтеноАвансовВСчетСуммПоПрогрессивнымСтавкам",
"Видимость", ВидимостьКолонок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "НДФЛЗачтеноАвансовыхПлатежейСПревышения",
"Видимость", НЕ ВидимостьКолонок);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьПодключаемыеКоманды(УправляемаяФорма)
ЭДОБЗККлиентСервер.ОбновитьКоманды(УправляемаяФорма, УправляемаяФорма.Объект, Истина);
КонецПроцедуры
#КонецОбласти
#Область Инициализация
СтарыеЗначенияКонтролируемыхПолей = Новый Соответствие;
#КонецОбласти