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