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