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