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