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