#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
РегистрацияНачисленийДоступна = Истина;
РасчетЗарплатыРасширенныйФормы.ИнициализироватьМеханизмПересчетаДокументаПриРедактировании(ЭтотОбъект);
КлассыУсловийТрудаДоступныДляИзменения = Истина;
ВнешниеДанные = Ложь;
СуществующаяПозиция = Ложь;
СозданиеНовой = Параметры.Ключ.Пустая();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.УправленческаяПозицияПриСозданииНаСервере(ЭтотОбъект, Параметры, СозданиеНовой);
КонецЕсли;
Если СозданиеНовой И НЕ Параметры.Свойство("АдресДанныхПозицииВХранилище") Тогда
СсылкаНаОбъект = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Объект.Ссылка).ПолучитьСсылку();
Если Не ЗначениеЗаполнено(Объект.Подразделение)
И Параметры.ЗначенияЗаполнения.Свойство("Родитель") И ЗначениеЗаполнено(Параметры.ЗначенияЗаполнения.Родитель) Тогда
Объект.Подразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Параметры.ЗначенияЗаполнения.Родитель, "Подразделение");
КонецЕсли;
ЗапомнитьЗначенияФункциональныхОпцийИНабораПрав();
ОрганизацияФормы = Объект.Владелец;
ДополнитьФорму();
ЗначенияДляЗаполнения = Новый Структура;
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.Владелец");
ЗначенияДляЗаполнения.Вставить("ГрафикРаботы", "Объект.ГрафикРаботыСотрудников");
ЗарплатаКадры.ЗаполнитьПервоначальныеЗначенияВФорме(ЭтотОбъект, ЗначенияДляЗаполнения);
Если Не ЗначениеЗаполнено(Объект.ДатаУтверждения) Тогда
УстановитьПодходящуюДатуУтверждения();
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.ЗначениеКопирования) Тогда
ТекущийОбъект = РеквизитФормыВЗначение("Объект");
ПоместитьДанныеОбъектаВФорму(ТекущийОбъект, Параметры.ЗначениеКопирования);
Иначе
ЗаполнитьПозициюЛьготамиПоУмолчанию(ЭтотОбъект);
КонецЕсли;
Иначе
Если Параметры.Свойство("АдресДанныхПозицииВХранилище") Тогда
АвтоНавигационнаяСсылка = Ложь;
ЗапомнитьЗначенияФункциональныхОпцийИНабораПрав();
ДанныеПозиции = ПолучитьИзВременногоХранилища(Параметры.АдресДанныхПозицииВХранилище);
ДанныеПозиции.Свойство("Действие", Действие);
ДанныеПозиции.Свойство("ТекущееКоличествоСтавок", ТекущееКоличествоСтавок);
ДанныеПозиции.Свойство("ТекущийФОТ", ТекущийФОТ);
ИменаИсключаемыхИзЗаполненияДанных = "Начисления,Показатели,ЕжегодныеОтпуска,Специальности";
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ДополнитьИменаИсключаемыхИзЗаполненияДанных(ИменаИсключаемыхИзЗаполненияДанных);
МодульУправленческаяЗарплатаФормы.ПриСозданииФормыВнешнихДанных(ЭтотОбъект, ДанныеПозиции);
КонецЕсли;
ЗаполнитьЗначенияСвойств(Объект, ДанныеПозиции, , ИменаИсключаемыхИзЗаполненияДанных);
Объект.Владелец = ДанныеПозиции.Организация;
ВнешниеДанные = Истина;
Если ИспользоватьИсторию Тогда
ДокументРегистратор = ДанныеПозиции.Регистратор;
КонецЕсли;
УстановитьПредставлениеОкладаИФОТ(ЭтотОбъект);
РедактируемаяПозиция = ДанныеПозиции.ПозицияШтатногоРасписания;
СуществующаяПозиция = ЗначениеЗаполнено(РедактируемаяПозиция);
Если Не СуществующаяПозиция Тогда
СсылкаНаОбъект = ОбщегоНазначения.МенеджерОбъектаПоСсылке(Объект.Ссылка).ПолучитьСсылку();
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Наименование",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Наименование",
"Подсказка",
НСтр("ru='Позиция еще не сохранена в базе данных, изменить наименование можно будет после проведения документа'"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Наименование",
"ОтображениеПодсказки",
ОтображениеПодсказки.Кнопка);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НаименованиеПолное",
"ТолькоПросмотр",
Истина);
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Склонения",
"Доступность",
Ложь);
Если ИспользоватьИсторию
И ДанныеПозиции.Свойство("ВыборПодчиненныхПодразделений")
И ЗначениеЗаполнено(ДанныеПозиции.ПодразделениеПозиций) Тогда
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Подразделение", ДанныеПозиции.ПодразделениеПозиций);
Запрос.УстановитьПараметр("ДатаУтверждения", ДанныеПозиции.ДатаУтверждения);
Запрос.УстановитьПараметр("Регистратор", ДанныеПозиции.Регистратор);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
| ПодразделенияОрганизаций.Ссылка
|ИЗ
| Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИсторияИспользованияШтатногоРасписания КАК ИсторияИспользованияШтатногоРасписания
| ПО ПодразделенияОрганизаций.Ссылка = ИсторияИспользованияШтатногоРасписания.ПозицияШтатногоРасписания.Подразделение
| И (ИсторияИспользованияШтатногоРасписания.Дата = &ДатаУтверждения)
| И (ИсторияИспользованияШтатногоРасписания.Регистратор <> &Регистратор)
|ГДЕ
| ПодразделенияОрганизаций.Ссылка В ИЕРАРХИИ(&Подразделение)
| И (ПодразделенияОрганизаций.ДатаРасформирования = ДАТАВРЕМЯ(1, 1, 1)
| ИЛИ ПодразделенияОрганизаций.ДатаРасформирования < &ДатаУтверждения)
| И ИсторияИспользованияШтатногоРасписания.ПозицияШтатногоРасписания ЕСТЬ NULL ";
СписокВыбораПодразделений = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка");
ПолеПодразделение = Элементы.Найти("Подразделение");
Если ПолеПодразделение <> Неопределено Тогда
ПараметрыВыбораПодразделения = Новый Массив(ПолеПодразделение.ПараметрыВыбора);
ПараметрыВыбораПодразделения.Добавить(Новый ПараметрВыбора("Отбор.Ссылка", Новый ФиксированныйМассив(СписокВыбораПодразделений)));
ПараметрыВыбораПодразделения.Добавить(Новый ПараметрВыбора("Отображение", ОтображениеТаблицы.Список));
ПолеПодразделение.ПараметрыВыбора = Новый ФиксированныйМассив(ПараметрыВыбораПодразделения);
КонецЕсли;
Если СписокВыбораПодразделений.Количество() = 1 Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Подразделение",
"ТолькоПросмотр",
Истина);
КонецЕсли;
КонецЕсли;
ТолькоПросмотр = ДанныеПозиции.ТолькоПросмотр;
ОрганизацияФормы = Объект.Владелец;
ДополнитьФорму();
Объект.ДатаУтверждения = ДанныеПозиции.ДатаУтверждения;
ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией = ЗначениеЗаполнено(Объект.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией);
Если ПолучитьФункциональнуюОпцию("ПрименятьРезультатыСпециальнойОценкиУсловийТруда") Тогда
КлассыУсловийТрудаПоДолжностям.Должность = СсылкаНаОбъект;
КлассыУсловийТрудаПоДолжностям.КлассУсловийТруда = ДанныеПозиции.КлассУсловийТруда;
КлассыУсловийТрудаПоДолжностям.Период = НачалоМесяца(ДанныеПозиции.ДатаУтверждения);
Если ЗначениеЗаполнено(ДанныеПозиции.КлассУсловийТрудаДатаРегистрацииИзменений) Тогда
КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений = НачалоМесяца(ДанныеПозиции.КлассУсловийТрудаДатаРегистрацииИзменений);
Иначе
КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений = НачалоМесяца(ДанныеПозиции.ДатаУтверждения);
КонецЕсли;
ОбновитьПолеКлассыУсловийТрудаПоДолжностямПериод(ЭтотОбъект);
ОбновитьПолеКлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.ПриПолученииВнешнихДанныхПозицииШтатногоРасписания(ЭтотОбъект, ДанныеПозиции);
КонецЕсли;
Если СуществующаяПозиция Тогда
АвтоЗаголовок = Ложь;
Заголовок = Строка(ДанныеПозиции.ПозицияШтатногоРасписания);
Иначе
Если НЕ ЗначениеЗаполнено(Объект.Подразделение) Тогда
Объект.Подразделение = ДанныеПозиции.ПодразделениеПозиций;
КонецЕсли;
КонецЕсли;
Объект.Начисления.Очистить();
Объект.Показатели.Очистить();
Объект.ЕжегодныеОтпуска.Очистить();
Объект.Специальности.Очистить();
Для каждого ОписаниеНачисления Из ДанныеПозиции.Начисления Цикл
ЗаполнитьЗначенияСвойств(Объект.Начисления.Добавить(), ОписаниеНачисления);
КонецЦикла;
Для каждого ОписаниеПоказателя Из ДанныеПозиции.Показатели Цикл
ЗаполнитьЗначенияСвойств(Объект.Показатели.Добавить(), ОписаниеПоказателя);
КонецЦикла;
Для каждого ОписаниеЕжегодногоОтпуска Из ДанныеПозиции.ЕжегодныеОтпуска Цикл
ЗаполнитьЗначенияСвойств(Объект.ЕжегодныеОтпуска.Добавить(), ОписаниеЕжегодногоОтпуска);
КонецЦикла;
Для каждого ОписаниеСпециальности Из ДанныеПозиции.Специальности Цикл
ЗаполнитьЗначенияСвойств(Объект.Специальности.Добавить(), ОписаниеСпециальности);
КонецЦикла;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ЗаполнитьОбъектФормыДаннымиПозиции(ЭтотОбъект, Объект, ДанныеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина.ТарификационнаяОтчетностьУчрежденийФМБА") Тогда
МодульТарификационнаяОтчетностьУчрежденийФМБА = ОбщегоНазначения.ОбщийМодуль("ТарификационнаяОтчетностьУчрежденийФМБА");
МодульТарификационнаяОтчетностьУчрежденийФМБА.ПриПолученииВнешнихДанныхПозицииШтатногоРасписания(ЭтотОбъект, ДанныеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ПриПолученииВнешнихДанныхПозицииШтатногоРасписания(ЭтотОбъект, ДанныеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ПриПолученииДанныхПозицииШтатногоРасписания(ЭтотОбъект, ДанныеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитие = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитие");
МодульОбучениеРазвитие.ПриПолученииДанныхПозицииШтатногоРасписания(ЭтотОбъект, ДанныеПозиции);
КонецЕсли;
СтатистикаПерсоналаРасширенный.ПриПолученииВнешнихДанныхПозицииШтатногоРасписания(ЭтотОбъект, ДанныеПозиции);
ПоместитьДанныеОбъектаВФорму(Объект);
КонецЕсли;
КонецЕсли;
Если Не ВнешниеДанные Тогда
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
ВерсионированиеОбъектов.ПриСозданииНаСервере(ЭтотОбъект);
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Объект", Объект);
ДополнительныеПараметры.Вставить("ИмяЭлементаДляРазмещения", "ГруппаДополнительныеРеквизиты");
УправлениеСвойствами.ПриСозданииНаСервере(ЭтотОбъект, ДополнительныеПараметры);
УправлениеШтатнымРасписаниемФормы.УстановитьПараметрыВыбораПодразделений(ЭтотОбъект, "Подразделение");
КонецЕсли;
Если Не ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОплатаТрудаСтраница",
"Видимость",
Ложь);
КонецЕсли;
ПараметрыСтажевыхЭлементов = ОстаткиОтпусков.ПараметрыДляДополнитьТабличнуюЧастьСтажевымиЭлементами();
ПараметрыСтажевыхЭлементов.Форма = ЭтотОбъект;
ПараметрыСтажевыхЭлементов.ИмяТаблицы = "ЕжегодныеОтпуска";
ПараметрыСтажевыхЭлементов.ТабличнаяЧастьВОбъекте = Истина;
ОстаткиОтпусков.ДополнитьТабличнуюЧастьСтажевымиЭлементами(ПараметрыСтажевыхЭлементов);
Если Не ИспользоватьИсторию И Не ВнешниеДанные И Не СозданиеНовой Тогда
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
КонецЕсли;
УстановитьСвойстваЭлементовУправления();
УстановитьДоступностьЭлементов(ЭтотОбъект);
Элементы.ТарифнаяСетка.Заголовок = РазрядыКатегорииДолжностей.ИнициализироватьЗаголовокФормыИРеквизитов("РеквизитТарифнаяСеткаТариф");
Элементы.РазрядКатегория.Заголовок = РазрядыКатегорииДолжностей.ИнициализироватьЗаголовокФормыИРеквизитов("РеквизитРазрядКатегорияТариф");
Элементы.ТарифнаяСеткаНадбавки.Заголовок = РазрядыКатегорииДолжностей.ИнициализироватьЗаголовокФормыИРеквизитов("РеквизитТарифнаяСеткаНадбавка");
Элементы.РазрядКатегорияНадбавки.Заголовок = РазрядыКатегорииДолжностей.ИнициализироватьЗаголовокФормыИРеквизитов("РеквизитРазрядКатегорияНадбавка");
Если СозданиеНовой Тогда
ДоступныВсеЛьготы = 1;
КонецЕсли;
УстановитьДоступностьИндивидуальныхЛьгот();
УстановитьДоступностьРазмераЛимитаЛьготы(ЭтотОбъект);
ТекстПодсказкиКПоляДатаРегистрации = УчетСтраховыхВзносовКлиентСервер.ТекстПодсказкиПоляДатаРегистрацииПериодическихРегистров();
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений",
"Подсказка",
ТекстПодсказкиКПоляДатаРегистрации);
УстановитьВидимостьЕНВД(Элементы,
ИспользуетсяЕНВД(Объект.ДатаУтверждения));
УстановитьНастройкиЭлементовВводаГрафика();
ОтражениеЗарплатыВБухучете.УстановитьСписокВыбораОтношениеКЕНВД(Элементы, "ОтношениеКЕНВД");
УстановитьВидимостьПолейВидаСтажаСФР();
СклонениеПредставленийОбъектов.ПриСозданииНаСервере(ЭтотОбъект, Объект.Наименование);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровоеПланирование") Тогда
МодульКадровоеПланированиеФормы = ОбщегоНазначения.ОбщийМодуль("КадровоеПланированиеФормы");
МодульКадровоеПланированиеФормы.ШтатноеРасписаниеПриСозданииНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("МедицинскиеРегистры");
Модуль.ПриСозданииНаСервере(ЭтотОбъект,"ГруппаХарактеристикиМедрегистра");
Модуль.ДополнитьФормуУслугами(ЭтотОбъект, Объект.Подразделение, "ГруппаХарактеристикиМедрегистра","оказываемые подразделением");
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Если Не ВнешниеДанные Тогда
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
Если ВнешниеДанные Тогда
Модифицированность = Ложь;
КонецЕсли;
Оповещение = Новый ОписаниеОповещения("ЗаписатьИЗакрытьНаКлиенте", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьПодтверждениеЗакрытияФормы(Оповещение, Отказ, ЗавершениеРаботы);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Если ЗавершениеРаботы Тогда
Возврат;
КонецЕсли;
Если ВнешниеДанные Тогда
Возврат;
КонецЕсли;
Если СозданиеНовой И НЕ Параметры.Ключ.Пустая() Тогда
ПараметрыОповещения = Новый Структура;
ПараметрыОповещения.Вставить("Ссылка", Объект.Ссылка);
ПараметрыОповещения.Вставить("Подразделение", Объект.Подразделение);
ПараметрыОповещения.Вставить("ДатаУтверждения", Объект.ДатаУтверждения);
ПараметрыОповещения.Вставить("ДатаЗакрытия", Объект.ДатаЗакрытия);
Оповестить("СозданаПозицияШтатногоРасписания", ПараметрыОповещения, ВладелецФормы);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
Если Параметры.Свойство("АдресДанныхПозицииВХранилище")
И Не ПустаяСтрока(Параметры.АдресДанныхПозицииВХранилище) Тогда
Возврат;
КонецЕсли;
ИзмененыНачисления = Ложь;
СуществующаяПозиция = Истина;
СсылкаНаОбъект = Объект.Ссылка;
ОрганизацияФормы = Объект.Владелец;
ЗапомнитьЗначенияФункциональныхОпцийИНабораПрав();
ДополнитьФорму();
ПоместитьДанныеОбъектаВФорму(ТекущийОбъект);
Если Не ВнешниеДанные Тогда
УправлениеСвойствами.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
УправлениеДоступом.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если Не ВнешниеДанные Тогда
Если УправлениеСвойствамиКлиент.ОбрабатыватьОповещения(ЭтотОбъект, ИмяСобытия, Параметр) Тогда
ОбновитьЭлементыДополнительныхРеквизитов();
УправлениеСвойствамиКлиент.ПослеЗагрузкиДополнительныхРеквизитов(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "ОтредактированаИстория" И Параметр.ИмяРегистра = "КлассыУсловийТрудаПоДолжностям" Тогда
Если КлассыУсловийТрудаПоДолжностямНаборЗаписейПрочитан Тогда
РедактированиеПериодическихСведенийКлиент.ОбработкаОповещения(ЭтотОбъект, СсылкаНаОбъект, ИмяСобытия, Параметр, Источник);
ОбновитьПолеКлассыУсловийТрудаПоДолжностямПериод(ЭтотОбъект);
ОбновитьПолеКлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ИмяСобытия = "ЗаписанаПозицияКадровогоРезерва" Тогда
ОбновитьЭлементыКадровогоРезерва();
КонецЕсли;
Если ИмяСобытия = "СохраненыПозицииШтатногоРасписания" Тогда
Если Параметр.Получить(Объект.Ссылка) <> Неопределено Тогда
УправлениеШтатнымРасписаниемКлиент.ПеречистатьДанныеОбъектаФормы(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Если Источник = СсылкаНаОбъект Тогда
МодульМедицина = ОбщегоНазначенияКлиент.ОбщийМодуль("МедицинаКлиент");
МодульМедицина.ОбработкаОповещенияФормыСпециальныеУсловияЗанятости(ЭтотОбъект, ИмяСобытия, Параметр);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("МедицинскиеРегистрыКлиент");
Модуль.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты)
Если Не ВнешниеДанные Тогда
УправлениеСвойствами.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
Если ВнешниеДанные Тогда
НачисленияОбъектаФормы = Объект.Начисления.Выгрузить();
ОтменяемыеСтроки = Объект.Начисления.НайтиСтроки(Новый Структура("Действие", Перечисления.ДействияСНачислениямиИУдержаниями.Отменить));
Для каждого ОтменяемаяСтрока Из ОтменяемыеСтроки Цикл
Объект.Начисления.Удалить(ОтменяемаяСтрока);
КонецЦикла;
ПроверяемыйОбъект = РеквизитФормыВЗначение("Объект", Тип("СправочникОбъект.ШтатноеРасписание"));
РеквизитыВДанные(ПроверяемыйОбъект);
Объект.Начисления.Загрузить(НачисленияОбъектаФормы);
ПараметрыСеанса.ИнтерактивнаяПроверкаЗаполненияСвойств = Истина;
Иначе
ПроверяемыйОбъект = РеквизитФормыВЗначение("Объект", Тип("СправочникОбъект.ШтатноеРасписание"));
РеквизитыВДанные(ПроверяемыйОбъект);
КонецЕсли;
Отказ = Отказ Или Не ПроверяемыйОбъект.ПроверитьЗаполнение();
ОбщегоНазначенияКлиентСервер.УдалитьЗначениеИзМассива(ПроверяемыеРеквизиты, "Объект");
Если ПолучитьФункциональнуюОпцию("ПрименятьРезультатыСпециальнойОценкиУсловийТруда") Тогда
РедактированиеПериодическихСведений.ПроверитьЗаписьВФорме(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", СсылкаНаОбъект, Отказ);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ПроверитьЗаполнениеПозицииШтатногоРасписания(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровоеПланирование") Тогда
МодульКадровоеПланированиеФормы = ОбщегоНазначения.ОбщийМодуль("КадровоеПланированиеФормы");
МодульКадровоеПланированиеФормы.ШтатноеРасписаниеОбработкаПроверкиЗаполненияНаСервере(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ОчиститьСообщения();
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
Если РасчетНеобходимоВыполнить Тогда
РассчитатьФОТНаСервере();
ЗарплатаКадрыРасширенный.ЗаполнитьТекущийОбъектОбъектомФормы(ТекущийОбъект, Объект);
КонецЕсли;
Если Параметры.Ключ.Пустая() Тогда
ТекущийОбъект.УстановитьСсылкуНового(СсылкаНаОбъект);
КонецЕсли;
ЗаписатьКлассыУсловийТрудаПоДолжностям();
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТрудаФормы = ОбщегоНазначения.ОбщийМодуль("ОхранаТрудаФормы");
МодульОхранаТрудаФормы.ЗаписатьДополнительныеЗначенияПозицииШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ШтатноеРасписаниеПередЗаписьюНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровоеПланирование") Тогда
МодульКадровоеПланированиеФормы = ОбщегоНазначения.ОбщийМодуль("КадровоеПланированиеФормы");
МодульКадровоеПланированиеФормы.ШтатноеРасписаниеПередЗаписьюНаСервере(ЭтотОбъект);
КонецЕсли;
РеквизитыВДанные(ТекущийОбъект);
ЗаписатьТерриториальныеУсловияДополнительныеПФР();
Если Не ВнешниеДанные Тогда
УправлениеСвойствами.ПередЗаписьюНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
УстановитьПривилегированныйРежим(Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.ЗаписатьЗначениеГрейда(ЭтотОбъект, ТекущийОбъект.Ссылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.СохранитьДанныеПозиции(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.ПриЗаписиФормыПозицииШтатногоРасписания(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриЗаписиФормыПозицииШтатногоРасписания(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина.ТарификационнаяОтчетностьУчрежденийФМБА") Тогда
МодульТарификационнаяОтчетностьУчрежденийФМБА = ОбщегоНазначения.ОбщийМодуль("ТарификационнаяОтчетностьУчрежденийФМБА");
МодульТарификационнаяОтчетностьУчрежденийФМБА.ЗаписатьДополнительныеДанныеДолжности(ЭтотОбъект, ТекущийОбъект.Ссылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
МодульМедицина.ЗаписатьДополнительныеДанныеПозицииШтатногоРасписания(ЭтотОбъект, ТекущийОбъект.Ссылка);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеФормы = ОбщегоНазначения.ОбщийМодуль("АдаптацияУвольнениеФормы");
МодульАдаптацияУвольнениеФормы.ОбъектНазначенияПриЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект.Ссылка, Отказ);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ШтатноеРасписаниеПриЗаписиНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеПриЗаписиНаСервере(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровоеПланирование") Тогда
МодульКадровоеПланированиеФормы = ОбщегоНазначения.ОбщийМодуль("КадровоеПланированиеФормы");
МодульКадровоеПланированиеФормы.ШтатноеРасписаниеПриЗаписиНаСервере(ЭтотОбъект, Отказ, ТекущийОбъект, ПараметрыЗаписи);
КонецЕсли;
СтатистикаПерсоналаРасширенный.ЗаписатьДополнительныеДанныеДолжности(ЭтотОбъект, ТекущийОбъект.Ссылка);
СтимулирующиеВыплатыФСС.ЗаписатьДополнительныеДанныеДолжности(ЭтотОбъект, ТекущийОбъект.Ссылка);
УстановитьПривилегированныйРежим(Ложь);
СклонениеПредставленийОбъектов.ПриЗаписиФормыОбъектаСклонения(ЭтотОбъект, Объект.Наименование, ТекущийОбъект.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
УправлениеДоступом.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
УстановитьПривилегированныйРежим(Истина);
ПоместитьДанныеОбъектаВФорму(ТекущийОбъект);
ЗапретРедактированияРеквизитовОбъектов.ЗаблокироватьРеквизиты(ЭтотОбъект);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("МедицинскиеРегистры");
Модуль.ПослеЗаписиНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбщегоНазначенияКлиент.ОповеститьОбИзмененииОбъекта(Объект.Ссылка, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ВладелецПриИзменении(Элемент)
Объект.Владелец = ОрганизацияФормы;
ВладелецПриИзмененииНаСервере();
Если ЗначениеЗаполнено(Объект.ГрафикРаботыСотрудников) Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПодразделениеПриИзменении(Элемент)
ЗаполнитьНаименование();
ПодразделениеПриИзмененииНаСервере();
Если ЗначениеЗаполнено(Объект.ГрафикРаботыСотрудников) Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МестоВСтруктуреПредприятияПриИзменении(Элемент)
ЗаполнитьНаименование();
КонецПроцедуры
&НаКлиенте
Процедура ДолжностьПриИзменении(Элемент)
ЗаполнитьНаименование();
ДолжностьПриИзмененииНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура РазрядКатегорияПриИзменении(Элемент)
ЗаполнитьНаименование();
УстановитьДоступностьСведенийПозиции();
ИспользоватьТарифныеСетки = ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты");
Если ИспользоватьТарифныеСетки Тогда
ПриИзмененииТарифнойСетки();
ВыполнитьРасчетФОТ(Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РазрядКатегорияНадбавкиПриИзменении(Элемент)
ПриИзмененииТарифнойСеткиНадбавки();
ВыполнитьРасчетФОТ(Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ТарифнаяСеткаПриИзменении(Элемент)
Если ПолучитьФункциональнуюОпциюФормы("ИспользоватьТарифныеСеткиПриРасчетеЗарплаты") Тогда
ПриИзмененииТарифнойСетки();
ВыполнитьРасчетФОТ(Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТарифнаяСеткаНадбавкиПриИзменении(Элемент)
ПриИзмененииТарифнойСеткиНадбавки();
ВыполнитьРасчетФОТ(Ложь, Истина);
КонецПроцедуры
&НаКлиенте
Процедура ИспользуетсяПриИзменении(Элемент)
УстановитьДоступностьЭлементов(ЭтотОбъект);
Если Не Объект.Утверждена Тогда
Объект.ДатаУтверждения = '00010101';
ИначеЕсли Объект.ДатаУтверждения = '00010101' Тогда
Объект.ДатаУтверждения = КонецМесяца(ОбщегоНазначенияКлиент.ДатаСеанса()) + 1;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗакрытаПриИзменении(Элемент)
УстановитьДоступностьЭлементов(ЭтотОбъект);
Если Не Объект.Закрыта Тогда
Объект.ДатаЗакрытия = '00010101';
ИначеЕсли Объект.ДатаЗакрытия = '00010101' Тогда
Объект.ДатаЗакрытия = КонецМесяца(ОбщегоНазначенияКлиент.ДатаСеанса()) + 1;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КоличествоСтавокРегулирование(Элемент, Направление, СтандартнаяОбработка)
КадровыйУчетКлиент.КоличествоСтавокРегулирование(ЭтотОбъект, Объект.КоличествоСтавок, Направление, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ГрафикРаботыСотрудниковПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.ГрафикРаботыСотрудников) Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УтвердившийРегистраторНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ОткрытьФормуДокументаИзменившегоПозициюЗавершение", ЭтотОбъект);
УправлениеШтатнымРасписаниемКлиент.ОткрытьФормуДокументаИзменившегоПозицию(УтвердившийРегистратор, Объект.Ссылка, ЭтотОбъект, Оповещение);
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ЗакрывшийРегистраторНадписьОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("ОткрытьФормуДокументаИзменившегоПозициюЗавершение", ЭтотОбъект);
УправлениеШтатнымРасписаниемКлиент.ОткрытьФормуДокументаИзменившегоПозицию(ЗакрывшийРегистратор, Объект.Ссылка, ЭтотОбъект, Оповещение);
СтандартнаяОбработка = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуДокументаИзменившегоПозициюЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Объект.ВерсияДанных <> ВерсияДанныхИБ(СсылкаНаОбъект) Тогда
УправлениеШтатнымРасписаниемКлиент.ПеречистатьДанныеОбъектаФормы(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДоступныВсеЛьготыПриИзменении(Элемент)
УстановитьДоступностьИндивидуальныхЛьгот();
КонецПроцедуры
&НаКлиенте
Процедура ИспользоватьЛимитПриИзменении(Элемент)
УстановитьДоступностьРазмераЛимитаЛьготы(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямКлассУсловийТрудаПриИзменении(Элемент)
РедактированиеПериодическихСведенийКлиентСервер.ОбновитьОтображениеПолейВвода(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", СсылкаНаОбъект);
УстановитьДатуРегистрацииКлассаУсловийТрудаПоПериоду();
ОбновитьПолеКлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямПериодПриИзменении(Элемент)
УстановитьДатуРегистрацииКлассаУсловийТрудаПоПериоду();
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийПриИзменении(Элемент)
ЗарплатаКадрыКлиент.ВводМесяцаПриИзменении(
ЭтотОбъект,
"КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений",
"КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийСтрокой",
Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаНачалоВыбора(
ЭтотОбъект,
ЭтотОбъект,
"КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений",
"КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийСтрокой");
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийРегулирование(Элемент, Направление, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаРегулирование(
ЭтотОбъект,
"КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений",
"КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийСтрокой",
Направление,
Модифицированность);
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийАвтоПодбор(Элемент, Текст, ДанныеВыбора, Параметры, Ожидание, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, Параметры, СтандартнаяОбработка)
ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсиейФлажокПриИзменении(Элемент)
Если НЕ ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией Тогда
Объект.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией = ПредопределенноеЗначение("Перечисление.ВидыРаботСДосрочнойПенсией.ПустаяСсылка");
КонецЕсли;
УстановитьДоступностьВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
СклонениеПредставленийОбъектовКлиент.ПросклонятьПредставление(ЭтотОбъект, Объект.Наименование);
КонецПроцедуры
&НаКлиенте
Процедура ГрафикРаботыРежимРаботыВыборПриИзменении(Элемент)
Если ГрафикРаботыРежимРаботы = 0 Тогда
Объект.ГрафикРаботыСотрудников = ПредопределенноеЗначение("Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка");
Иначе
Объект.ГрафикРаботыСотрудников = ПредопределенноеЗначение("Справочник.РежимыРаботыСотрудников.ПустаяСсылка");
КонецЕсли;
ГрафикРаботыСотрудниковПриИзменении(Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПрофильДолжностиПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеПрофильДолжностиПриИзменении(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеПрофильДолжностиПриИзменении(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииСтрокиОтчетностиМониторинга(Элемент)
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура КатегорияПолучателяСтимулирующихВыплатФССНачалоВыбораНаСервере(ПараметрыВыбора)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыРасширеннаяПодсистемы.ПособияСоциальногоСтрахования") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("СтимулирующиеВыплатыФСС");
Модуль.УточнитьПараметрыВыбораФормыКатегорияПолучателяСтимулирующихВыплатФСС(ПараметрыВыбора);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура КатегорияПолучателяСтимулирующихВыплатФССНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
КатегорияПолучателяСтимулирующихВыплатФССНачалоВыбораНаСервере(Элемент.ПараметрыВыбора);
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПолноеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Оповещение = Новый ОписаниеОповещения("НаименованиеПолноеЗавершениеВыбора", ЭтотОбъект);
ОбщегоНазначенияКлиент.ПоказатьФормуРедактированияМногострочногоТекста(Оповещение, Элемент.ТекстРедактирования,
НСтр("ru = 'Полное наименование'"));
КонецПроцедуры
&НаКлиенте
Процедура НаименованиеПолноеЗавершениеВыбора(РезультатВыбора, ДополнительныеПараметры) Экспорт
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
Объект.НаименованиеПолное = РезультатВыбора;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыНачисления
&НаКлиенте
Процедура НачисленияПриАктивизацииСтроки(Элемент, ОписаниеКоманднойПанели)
Если ВнешниеДанные Тогда
УправлениеШтатнымРасписаниемКлиент.НачисленияПриАктивизацииСтроки(ЭтотОбъект, ОписаниеКоманднойПанелиНачислений());
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
УправлениеШтатнымРасписаниемКлиент.НачисленияПриНачалеРедактирования(ЭтотОбъект, НоваяСтрока, Копирование, ВнешниеДанные);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияНачислениеПриИзменении(Элемент)
УправлениеШтатнымРасписаниемКлиент.НачисленияНачислениеПриИзменении(
ЭтотОбъект, УправлениеШтатнымРасписаниемКлиентСервер.ДатаСобытия(ЭтотОбъект,
ОбщегоНазначенияКлиент.ДатаСеанса()), Объект.РазрядКатегория, Объект.ТарифнаяСетка,
Объект.РазрядКатегорияНадбавки, Объект.ТарифнаяСеткаНадбавки, Истина);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ИспользоватьВилкуСтавок Тогда
Для НомерПоказателя = 1 По ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(ЭтотОбъект, ОписаниеТаблицыНачисленийНаКлиенте(),, 0) Цикл
ПутьКЗначениюМин = "МинимальноеЗначение" + НомерПоказателя;
ЗначениеМин = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(Элемент.ТекущиеДанные, ПутьКЗначениюМин);
ПутьКЗначениюМакс = "МаксимальноеЗначение" + НомерПоказателя;
ЗначениеМакс = ОбщегоНазначенияКлиентСервер.ПолучитьРеквизитФормыПоПути(Элемент.ТекущиеДанные, ПутьКЗначениюМакс);
Если ЗначениеМин > ЗначениеМакс Тогда
ОбщегоНазначенияКлиентСервер.УстановитьРеквизитФормыПоПути(Элемент.ТекущиеДанные, ПутьКЗначениюМакс, ЗначениеМин);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ИзмененыНачисления = Модифицированность;
Если ЗарплатаКадрыРасширенныйКлиент.ВводПлановыхНачисленийРассчитатьФОТПриОкончанииРедактирования(ЭтотОбъект, Элемент, 0, ОписаниеТаблицыНачислений(ЭтотОбъект)) Тогда
ВыполнитьРасчетФОТ();
КонецЕсли;
УправлениеШтатнымРасписаниемКлиентСервер.УстановитьВидимостьКомандыИзменитьНачисленияСотрудников(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПослеУдаления(Элемент)
Если ВнешниеДанные Тогда
УправлениеШтатнымРасписаниемКлиент.НачисленияПослеУдаления(ЭтотОбъект);
КонецЕсли;
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура НачисленияПередУдалением(Элемент, Отказ)
Если ВнешниеДанные Тогда
УправлениеШтатнымРасписаниемКлиент.НачисленияПередУдалением(ЭтотОбъект, Отказ, ОписаниеКоманднойПанелиНачислений());
ВыполнитьРасчетФОТ();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура НадбавкаЗаВредностьРазмерПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура ВыплачиваетсяНадбавкаЗаВредностьПриИзменении(Элемент)
УстановитьОтображениеПолейВводаПроцентаЗаВредность(ЭтотОбъект, Объект.ВыплачиваетсяНадбавкаЗаВредность);
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура ПроцентНадбавкиЗаВредностьПриИзменении(Элемент)
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура НадбавкаЗаВредностьРазмерМинПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура НадбавкаЗаВредностьРазмерМаксПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура РайонныйКоэффициентРазмерПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура РайонныйКоэффициентРазмерМинПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура РайонныйКоэффициентРазмерМаксПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура СевернаяНадбавкаРазмерПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура СевернаяНадбавкаРазмерМинПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура СевернаяНадбавкаРазмерМаксПриИзменении(Элемент)
РассчитатьИтогиФОТПоПозиции();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗначениеПоказателяПриИзмененииНачисления(Элемент)
Если ВнешниеДанные Тогда
УстановитьКомментарииДействийСНачислением(ЭтотОбъект, Элементы.Начисления.ТекущиеДанные, ОписаниеТаблицыНачисленийНаКлиенте());
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПоказатели
&НаКлиенте
Процедура ПоказателиПриИзменении(Элемент)
ВыполнитьРасчетФОТ();
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если ВнешниеДанные Тогда
УправлениеШтатнымРасписаниемКлиент.ПоказателиПриНачалеРедактирования(ЭтотОбъект, НоваяСтрока, Копирование);
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 0);
КонецПроцедуры
&НаКлиенте
Процедура ПоказателиПоказательПриИзменении(Элемент)
ЗарплатаКадрыРасширенныйКлиент.УстановитьОграничениеТипаПоТочностиДополнительногоПоказателя(ЭтотОбъект, "Показатели", 0);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЕжегодныеОтпуска
&НаКлиенте
Процедура ЕжегодныеОтпускаПриАктивизацииСтроки(Элемент)
Если ВнешниеДанные Тогда
ОстаткиОтпусковКлиент.ПриАктивизацииСтрокиЕжегодногоОтпуска(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЕжегодныеОтпускаПередУдалением(Элемент, Отказ)
Если ВнешниеДанные Тогда
ОстаткиОтпусковКлиент.ПередУдалениемЕжегодногоОтпуска(ЭтотОбъект, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЕжегодныеОтпускаПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОтменаРедактирования Тогда
Возврат;
КонецЕсли;
Если ВнешниеДанные Тогда
ОстаткиОтпусковКлиент.ПриОкончанииРедактированияЕжегодногоОтпуска(Элемент.ТекущиеДанные, НоваяСтрока);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЕжегодныеОтпускаВидЕжегодногоОтпускаПриИзменении(Элемент)
ТекущиеДанные = Элементы.ЕжегодныеОтпуска.ТекущиеДанные;
ОстаткиОтпусковКлиент.ПриИзмененииВидаЕжегодногоОтпуска(ЭтотОбъект);
Если ВнешниеДанные Тогда
ОстаткиОтпусковКлиентСервер.УстановитьКомментарииДействийСЕжегоднымОтпуском(ТекущиеДанные);
КонецЕсли;
ЗаполнитьЗначенияСтажевыхРеквизитовВСтроке(ТекущиеДанные.ПолучитьИдентификатор());
КонецПроцедуры
&НаКлиенте
Процедура ЕжегодныеОтпускаКоличествоДнейВГодПриИзменении(Элемент)
Если ВнешниеДанные Тогда
ОстаткиОтпусковКлиентСервер.УстановитьКомментарииДействийСЕжегоднымОтпуском(Элементы.ЕжегодныеОтпуска.ТекущиеДанные);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЛьготы
&НаКлиенте
Процедура ЛьготыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийПриНачалеРедактирования(ЭтотОбъект, "Льготы", 1);
КонецПроцедуры
&НаКлиенте
Процедура ЛьготыЛьготаПриИзменении(Элемент)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыЛьгот();
ЗарплатаКадрыРасширенныйКлиент.РедактированиеСоставаНачисленийНачислениеПриИзменении(ЭтотОбъект, ОписаниеТаблицыВидовРасчета, 1);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыМероприятия
&НаКлиенте
Процедура Подключаемый_МероприятияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияВыбор(ЭтотОбъект, Элемент, Поле, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МероприятияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияПередНачаломДобавления(ЭтотОбъект, Элемент, Отказ, Копирование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МероприятияПередНачаломИзменения(Элемент, Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияПередНачаломИзменения(ЭтотОбъект, Элемент, Отказ, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МероприятияПередУдалением(Элемент, Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияПередУдалением(ЭтотОбъект, Элемент, Отказ, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МероприятияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияПриОкончанииРедактирования(ЭтотОбъект, Элемент, НоваяСтрока, ОтменаРедактирования);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МероприятияМероприятиеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияМероприятиеНачалоВыбора(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_МероприятияМероприятиеОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АдаптацияУвольнениеКлиент");
МодульАдаптацияУвольнениеКлиент.МероприятияМероприятиеОбработкаВыбора(ЭтотОбъект, Элемент, ВыбранноеЗначение, СтандартнаяОбработка, Истина);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыДействия
&НаКлиенте
Процедура Подключаемый_ДействияХарактеристикиСоответствуютПрофилюДолжностиЧислоПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеПриИзмененииДействияХарактеристикиСоответствуютПрофилюДолжности(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДействияВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеДействияВыбор(Элементы);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДействияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеОткрытьФормуДобавленияДействий(ЭтотОбъект, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДействияПередУдалением(Элемент, Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеДействияСотрудниковПередУдалением(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДействияОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеДействияСотрудниковОбработкаВыбора(ЭтотОбъект, ВыбранноеЗначение);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыХарактеристики
&НаКлиенте
Процедура Подключаемый_ХарактеристикиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеХарактеристикиВыбор(ЭтотОбъект, Поле, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ХарактеристикиПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеХарактеристикиПередНачаломДобавления(ЭтотОбъект, Копирование, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ХарактеристикиПередУдалением(Элемент, Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ШтатноеРасписаниеХарактеристикиПередУдалением(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыПрограммаОбучения
&НаКлиенте
Процедура Подключаемый_ПродолжительностьПланаОбученияПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеРазмерностьПродолжительностьПланаОбученияПриИзменении(ЭтотОбъект);
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазмерностьПродолжительностиПланаОбученияПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеРазмерностьПродолжительностиПланаОбученияПриИзменении(ЭтотОбъект);
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПрограммаОбученияСоответствуютПрофилюДолжностиЧислоПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеПриИзмененииПрограммаОбученияСоответствуютПрофилюДолжности(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПрограммаОбученияПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеПрограммаОбученияПриИзменении(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПрограммаОбученияМероприятиеПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеПрограммаОбученияМероприятиеПриИзменении(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыКадровыйРезерв
&НаКлиенте
Процедура Подключаемый_КадровыйРезервИнфоНадписьГруппРезерваОбработкаНавигационнойСсылки(Элемент,
НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
ПараметрыФормы = Новый Структура("Ключ", ПолучитьПозициюРезерваПоСсылке(НавигационнаяСсылкаФорматированнойСтроки));
МодульКлиент.ОткрытьФормуСправочникаКадровыйРезерв(ЭтотОбъект, ПараметрыФормы);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КадровыйРезервПозицииШРВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.ОткрытьФормуУчастникаКадровогоРезерва(ЭтотОбъект, "КадровыйРезервПозицииШР");
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура Подключаемый_РеквизитыМедицинскогоРегистраЭлементПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("МедицинскиеРегистрыКлиент");
Модуль.РеквизитыМедицинскогоРегистраЭлементПриИзменении(ЭтотОбъект, Элемент.Имя);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ВыполнитьКомандуНаСервере(Контекст, Результат) Экспорт
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, Контекст, Объект, Результат);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
ЗаблокированныеРеквизиты = ЗапретРедактированияРеквизитовОбъектовКлиент.Реквизиты(ЭтотОбъект);
Если ЗаблокированныеРеквизиты.Количество() > 0 Тогда
ТекстВопроса = НСтр("ru = 'Внимание!
|При изменении организации, подразделения или должности позиции штатного расписания
|может быть нарушено соответствие кадровых данных штатному расписанию и правильность кадровых документов.
|
|Может потребоваться перезаполнение приказов по этой позиции штатного расписания.'");
СоставКнопок = Новый СписокЗначений;
СоставКнопок.Добавить(Истина, НСтр("ru = 'Разрешить редактирование'"));
СоставКнопок.Добавить(Ложь, НСтр("ru = 'Отмена'"));
Оповещение = Новый ОписаниеОповещения("Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение", ЭтотОбъект);
ПоказатьВопрос(Оповещение, ТекстВопроса, СоставКнопок, , Истина);
Иначе
ЗапретРедактированияРеквизитовОбъектовКлиент.ПоказатьПредупреждениеВсеВидимыеРеквизитыРазблокированы();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОтразитьВКадровомУчете(Команда)
ДополнительныеПараметры = Новый Структура("ЗаписатьЭлемент", Истина);
Если Модифицированность Тогда
ТекстВопроса = НСтр("ru='Данные были изменены. Сохранить изменения?'");
Оповещение = Новый ОписаниеОповещения("ОтразитьВКадровомУчетеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНетОтмена);
Иначе
ДополнительныеПараметры.ЗаписатьЭлемент = Ложь;
ОтразитьВКадровомУчетеЗавершение(КодВозвратаДиалога.Да, ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура РедактироватьФОТ(Команда)
ПоказыватьФОТ = НЕ Элементы.РедактироватьФОТ.Пометка;
ОбработатьИзменениеРежимаОтображенияФОТ();
КонецПроцедуры
&НаКлиенте
Процедура ОК(Команда)
ОчиститьСообщения();
Отказ = Ложь;
Если Модифицированность ИЛИ РасчетНеобходимоВыполнить Тогда
Если РасчетНеобходимоВыполнить Тогда
РассчитатьФОТНаКлиенте();
КонецЕсли;
Если ПроверитьЗаполнение() Тогда
Оповестить("ИзмененыДанныеПозицииШтатногоРасписания", АдресДанныхПозицииВХранилище(), ВладелецФормы);
Модифицированность = Ложь;
Иначе
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если НЕ Отказ Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Рассчитать(Команда)
РассчитатьФОТНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура КлассУсловийТрудаИстория(Команда)
РедактированиеПериодическихСведенийКлиент.ОткрытьИсторию("КлассыУсловийТрудаПоДолжностям", СсылкаНаОбъект, ЭтотОбъект,
Элементы.ГруппаСпецоценкаУсловийТрудаКлассыУсловийТруда.ТолькоПросмотр);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаписатьИЗакрыть(Команда)
ЗаписатьНаКлиенте(Истина);
КонецПроцедуры
&НаКлиенте
Процедура КомандаЗаписать(Команда)
ЗаписатьНаКлиенте(Ложь);
КонецПроцедуры
&НаКлиенте
Процедура Склонения(Команда)
СклонениеПредставленийОбъектовКлиент.ПоказатьСклонение(ЭтотОбъект, Объект.Наименование);
КонецПроцедуры
#Область Подключаемый_КадровыйРезерв
&НаКлиенте
Процедура Подключаемый_СоздатьОткрытьПозициюКадровогоРезерваШтатногоРасписания(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
ПараметрыФормы = МодульКлиент.ПараметрыОткрытияФормыСправочникаКадровыйРезерв(ЭтотОбъект);
МодульКлиент.ОткрытьФормуСправочникаКадровыйРезерв(ЭтотОбъект, ПараметрыФормы);
КонецЕсли;
КонецПроцедуры
#Область ОбработчикиКомандРейтинга
&НаКлиенте
Процедура Подключаемый_Рейтинг1(Команда)
ПоставитьРейтингНаКлиенте(1);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Рейтинг2(Команда)
ПоставитьРейтингНаКлиенте(2);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Рейтинг3(Команда)
ПоставитьРейтингНаКлиенте(3);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Рейтинг4(Команда)
ПоставитьРейтингНаКлиенте(4);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_Рейтинг5(Команда)
ПоставитьРейтингНаКлиенте(5);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РейтингСбросить(Команда)
ПоставитьРейтингНаКлиенте(0);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура Подключаемый_ЗаявкаНаВключениеВКадровыйРезерв(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.ОткрытьФормуЗаявкаНаВключениеВКадровыйРезерв(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВключениеВКадровыйРезерв(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.ОткрытьФормуВключениеВКадровыйРезерв(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИсключениеИзКадровогоРезерва(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
МодульКлиент.ОткрытьФормуИсключениеИзКадровогоРезерва(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Подключаемый_ХарактеристикиПерсонала
&НаКлиенте
Процедура Подключаемый_ПодобратьХарактеристики(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ХарактеристикиПерсоналаКлиент");
МодульХарактеристикиПерсоналаКлиент.ПодобратьХарактеристики(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область Подключаемый_ПрограммаОбучения
&НаКлиенте
Процедура Подключаемый_ОткрытьПодборПрограммыОбученияПоХарактеристикам(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбучениеРазвитиеКлиент");
МодульОбучениеРазвитиеКлиент.ШтатноеРасписаниеОткрытьПодборПрограммыОбученияПоХарактеристикам(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаКлиенте
Процедура ОбновитьЗависимостиДополнительныхРеквизитов()
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПриИзмененииДополнительногоРеквизита(Элемент)
УправлениеСвойствамиКлиент.ОбновитьЗависимостиДополнительныхРеквизитов(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СпециальныеУсловияЗанятостиИзменить(Команда)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначенияКлиент.ОбщийМодуль("МедицинаКлиент");
Модуль.ОткрытьФормуСпециальныеУсловияЗанятости(ЭтотОбъект, СсылкаНаОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъектаЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> Истина Тогда
Возврат;
КонецЕсли;
ЗаблокированныеРеквизиты = ЗапретРедактированияРеквизитовОбъектовКлиент.Реквизиты(ЭтотОбъект);
ЗапретРедактированияРеквизитовОбъектовКлиент.УстановитьДоступностьЭлементовФормы(ЭтотОбъект, ЗаблокированныеРеквизиты);
КонецПроцедуры
&НаКлиенте
Процедура ОтразитьВКадровомУчетеЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Если ДополнительныеПараметры.ЗаписатьЭлемент
И Не УправлениеШтатнымРасписаниемКлиент.СохранитьДанныеОбъектаФормы(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
ПараметрыОткрытияФормы = Новый Структура;
ЗначенияЗаполнения = Новый Структура;
ЗначенияЗаполнения.Вставить("Организация", Объект.Владелец);
ЗначенияЗаполнения.Вставить("Подразделение", Объект.Подразделение);
ЗначенияЗаполнения.Вставить("Должность", Объект.Должность);
ЗначенияЗаполнения.Вставить("ДолжностиПоШтатномуРасписанию", ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Объект.Ссылка));
ЗначенияЗаполнения.Вставить("ЭтоОтражениеИзмененияШтатногоРасписания", Истина);
ПараметрыОткрытияФормы.Вставить("ЗначенияЗаполнения", ЗначенияЗаполнения);
ОткрытьФорму("Документ.ИзменениеПлановыхНачислений.Форма.ФормаДокумента", ПараметрыОткрытияФормы);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ВерсияДанныхИБ(СсылкаНаОбъект)
Возврат ОбщегоНазначения.ЗначениеРеквизитаОбъекта(СсылкаНаОбъект, "ВерсияДанных");
КонецФункции
&НаКлиенте
Процедура ОбработатьИзменениеРежимаОтображенияФОТ()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПоказатьФОТ",
"Пометка",
ПоказыватьФОТ);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РедактироватьФОТ",
"Пометка",
ПоказыватьФОТ);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыНачислений(Форма)
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений();
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОписаниеТаблицыЛьгот()
ОписаниеТаблицыВидовРасчета = РасчетЗарплатыРасширенныйКлиентСервер.ОписаниеТаблицыПлановыхНачислений(Ложь, Ложь);
ОписаниеТаблицыВидовРасчета.ИмяТаблицы = "Льготы";
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаВидРасчета = "Льгота";
ОписаниеТаблицыВидовРасчета.ПутьКДанным = "Льготы";
ОписаниеТаблицыВидовРасчета.ПутьКДаннымПоказателей = "Показатели";
ОписаниеТаблицыВидовРасчета.НомерТаблицы = 1;
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаФиксРасчет = "ЛьготыФиксРасчет";
ОписаниеТаблицыВидовРасчета.ИмяРеквизитаДокументОснование = "";
Возврат ОписаниеТаблицыВидовРасчета;
КонецФункции
&НаКлиенте
Функция ОписаниеТаблицыНачисленийНаКлиенте() Экспорт
Возврат ОписаниеТаблицыНачислений(ЭтотОбъект);
КонецФункции
&НаСервере
Функция ОписаниеТаблицыНачисленийНаСервере() Экспорт
Возврат ОписаниеТаблицыНачислений(ЭтотОбъект);
КонецФункции
&НаКлиенте
Функция ОписаниеКоманднойПанелиНачислений() Экспорт
ОписаниеКоманднойПанелиНачислений = ЗарплатаКадрыРасширенныйКлиент.ОписаниеКоманднойПанелиНачислений();
Возврат ОписаниеКоманднойПанелиНачислений
КонецФункции
&НаСервере
Процедура ВладелецПриИзмененииНаСервере()
ДополнитьФорму();
УстановитьГрафикРаботы();
ЗаполнитьПозициюЛьготамиПоУмолчанию(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПодразделениеПриИзмененииНаСервере(УстанавливатьДоступностьСведений = Истина)
ПрочитатьДанныеПодразделенияВФорму();
УстановитьГрафикРаботы();
УстановитьПодходящуюДатуУтверждения();
ЗаполнитьПравамиНаОтпускаНаСервере();
Если УстанавливатьДоступностьСведений Тогда
УстановитьДоступностьСведенийПозиции();
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Модуль = ОбщегоНазначения.ОбщийМодуль("МедицинскиеРегистры");
Модуль.ОбновитьДеревоУслуг(ЭтотОбъект, Объект.Подразделение);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьДанныеПодразделенияВФорму()
УстановитьПривилегированныйРежим(Истина);
ДанныеОПодразделении = ДанныеПодразделения(Объект.Подразделение);
РайонныйКоэффициент = ДанныеОПодразделении.РайонныйКоэффициент;
РайонныйКоэффициентПредставление = УправлениеШтатнымРасписаниемКлиентСервер.ПредставлениеРайонногоКоэффициента(НачислениеРайонныйКоэффициент, РайонныйКоэффициент);
ПроцентСевернойНадбавки = ДанныеОПодразделении.ПроцентСевернойНадбавки;
СевернаяНадбавкаПредставление = УправлениеШтатнымРасписаниемКлиентСервер.ПредставлениеСевернойНадбавки(НачислениеСевернаяНадбавка, ПроцентСевернойНадбавки);
ТерриториальныеУсловия = ТерриториальныеУсловияПФРПодразделения(Объект.Подразделение, ТекущаяДатаСеанса());
Если ТерриториальныеУсловия = Неопределено Тогда
ТерриториальныеУсловияПФР = Неопределено;
Иначе
ТерриториальныеУсловияПФР = ТерриториальныеУсловия.ТерриториальныеУсловияПФР;
КонецЕсли;
УстановитьОтображениеПолейВводаРайонногоКоэффициента(ЭтотОбъект, РайонныйКоэффициент);
УстановитьОтображениеПолейВводаСевернойНадбавки(ЭтотОбъект, ТерриториальныеУсловия);
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура ДолжностьПриИзмененииНаСервере(УстанавливатьДоступностьСведений = Истина)
Если ЗначениеЗаполнено(Объект.Должность) Тогда
УстановитьПодходящуюДатуУтверждения();
ИменаРеквизитовДолжности =
"ТарифнаяСетка,
|ТарифнаяСеткаНадбавки,
|РазрядКатегория,
|РазрядКатегорияНадбавки,
|ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией,
|ОснованиеДосрочногоНазначенияПенсии,
|ОсобыеУсловияТрудаПФР,
|ПроцентНадбавкиЗаВредность,
|ВыплачиваетсяНадбавкаЗаВредность,
|КоличествоДнейДополнительногоОтпускаВГод,
|КодПозицииСпискаПФР,
|ТрудоваяФункция,
|ХарактерВыполняемыхРаботПФР,
|ПервичныеДокументыПФР,
|ВидСтажаЛетныхЭкипажей,
|ВидСтажаШахтеров,
|ЯвляетсяДолжностьюЛетногоЭкипажа,
|ЯвляетсяШахтерскойДолжностью";
ДанныеДолжности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Должность,ИменаРеквизитовДолжности);
ЗаполнитьЗначенияСвойств(Объект, ДанныеДолжности);
ЗаполнитьНачислениеНадбавкаЗаВредность();
УстановитьОтображениеПолейВводаПроцентаЗаВредность(ЭтотОбъект, Объект.ВыплачиваетсяНадбавкаЗаВредность);
ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией = ЗначениеЗаполнено(Объект.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией);
УстановитьКлассУсловийТрудаПоДолжности();
ПрочитатьДанныеДолжностиСФР(ДанныеДолжности);
УстановитьВидимостьПолейВидаСтажаСФР();
СтатистикаПерсоналаРасширенный.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, Объект.Должность,,ОрганизацияФормы);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Если Не ВнешниеДанные Тогда
МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
МодульМедицина.ПрочитатьДополнительныеДанныеДолжностиДляПозицииШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина.ТарификационнаяОтчетностьУчрежденийФМБА") Тогда
МодульТарификационнаяОтчетностьУчрежденийФМБА = ОбщегоНазначения.ОбщийМодуль("ТарификационнаяОтчетностьУчрежденийФМБА");
МодульТарификационнаяОтчетностьУчрежденийФМБА.УстановитьТарификационнуюГруппуПоДолжности(ЭтотОбъект, Объект.Должность);
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ТарифнаяСетка) Тогда
ЗаполнитьДанныеТарифнойСеткиНаСервере();
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ТарифнаяСеткаНадбавки) Тогда
ЗаполнитьДанныеТарифнойСеткиНадбавкиНаСервере();
КонецЕсли;
Если УстанавливатьДоступностьСведений Тогда
УстановитьДоступностьСведенийПозиции();
КонецЕсли;
ЗаполнитьПравамиНаОтпускаНаСервере();
УправлениеШтатнымРасписаниемФормы.ПрочитатьДополнительныеДанныеДолжностиДляПозицииШтатногоРасписания(ЭтотОбъект);
СтимулирующиеВыплатыФСС.ДополнитьФормуЭлементаСправочникаДолжности(ЭтотОбъект);
СтимулирующиеВыплатыФСС.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, Объект.Ссылка);
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуСодержанию(
ЭтотОбъект,
ОписаниеТаблицыНачислений(ЭтотОбъект),
УправлениеШтатнымРасписанием.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуСодержанию(ЭтотОбъект));
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуДовольствию(
ЭтотОбъект,
ОписаниеТаблицыНачислений(ЭтотОбъект),
УправлениеШтатнымРасписанием.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуДовольствию(ЭтотОбъект));
КонецПроцедуры
&НаСервере
Процедура УстановитьГрафикРаботы()
Если ЗначениеЗаполнено(Объект.Владелец) ИЛИ ЗначениеЗаполнено(Объект.Подразделение) Тогда
ЗначенияДляЗаполнения = Новый Структура;
ЗначенияДляЗаполнения.Вставить("Организация", "Объект.Владелец");
ЗначенияДляЗаполнения.Вставить("Подразделение", "Объект.Подразделение");
ЗначенияДляЗаполнения.Вставить("ГрафикРаботы", "Объект.ГрафикРаботыСотрудников");
ФиксированныеЗначения = Новый Массив;
ФиксированныеЗначения.Добавить("Организация");
ФиксированныеЗначения.Добавить("Подразделение");
ЗарплатаКадры.ЗаполнитьЗначенияВФорме(ЭтотОбъект, ЗначенияДляЗаполнения, ФиксированныеЗначения);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ДополнитьФорму()
УстановитьПривилегированныйРежим(Истина);
ЗаполнитьНачислениеНадбавкаЗаВредность();
ЗаполнитьНачислениеКвалификационнаяНадбавка();
НачислениеРайонныйКоэффициент = ПланыВидовРасчета.Начисления.НачислениеРайонныйКоэффициент();
НачислениеСевернаяНадбавка = ПланыВидовРасчета.Начисления.НачислениеСевернаяНадбавка();
УстановитьПараметрыФункциональныхОпцийФормы(Новый Структура("Организация", Объект.Владелец));
ПрочитатьДанныеПодразделенияВФорму();
УстановитьОтображениеПолейВводаПроцентаЗаВредность(ЭтотОбъект, Объект.ВыплачиваетсяНадбавкаЗаВредность);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений(ЭтотОбъект);
Если ВнешниеДанные Тогда
ЗарплатаКадрыРасширенный.РедактированиеСоставаНачисленийДополнитьФорму(
ЭтотОбъект, ОписаниеТаблицыВидовРасчета, "Начисления", 0, ИспользоватьРасчетЗарплаты);
Иначе
ЗарплатаКадрыРасширенный.ВводНачисленийДополнитьФорму(
ЭтотОбъект, ОписаниеТаблицыВидовРасчета, 0, "Начисления", ИспользоватьРасчетЗарплаты);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
УправлениеШтатнымРасписаниемФормы.ДополнитьФормуЭлементаСправочникаШтатноеРасписание(ЭтотОбъект);
УправлениеШтатнымРасписаниемФормы.ПрочитатьДополнительныеДанныеДолжностиДляПозицииШтатногоРасписания(ЭтотОбъект);
Если ПолучитьФункциональнуюОпцию("ПрименятьРезультатыСпециальнойОценкиУсловийТруда") Тогда
ПрочитатьКлассыУсловийТрудаПоДолжностям();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДополнительныеТарифыКоэффициентыГруппа",
"Видимость",
ПолучитьФункциональнуюОпциюФормы("ИспользоватьНесколькоТарифныхСтавок"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СпециальностиСтраница",
"Видимость",
ПолучитьФункциональнуюОпциюФормы("ИспользоватьСпециальностиФизическихЛиц"));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Показатели",
"ОтборСтрок",
Новый ФиксированнаяСтруктура("ИдентификаторСтрокиВидаРасчета", 0));
МассивПараметровВыбора = Новый Массив;
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.СпособПримененияЗначений", Перечисления.СпособыПримененияЗначенийПоказателейРасчетаЗарплаты.Постоянное));
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.НазначениеПоказателя", Перечисления.НазначенияПоказателейРасчетаЗарплаты.ДляСотрудника));
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.ЗначениеРассчитываетсяАвтоматически", Ложь));
МассивПараметровВыбора.Добавить(Новый ПараметрВыбора("Отбор.НеИспользуется", Ложь));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПоказателиПоказатель",
"ПараметрыВыбора",
Новый ФиксированныйМассив(МассивПараметровВыбора));
ТипЧисло = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3));
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиЗначение", "ОграничениеТипа", ТипЧисло);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиЗначениеМин", "ОграничениеТипа", ТипЧисло);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ПоказателиЗначениеМакс", "ОграничениеТипа", ТипЧисло);
СтатистикаПерсоналаРасширенный.ГруппаКатегорииДополнитьФорму(ЭтотОбъект, Объект.Владелец, ВнешниеДанные);
СтимулирующиеВыплатыФСС.ДополнитьФормуЭлементаСправочникаДолжности(ЭтотОбъект);
СтимулирующиеВыплатыФСС.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, Объект.Ссылка);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда
МодульГрейды = ОбщегоНазначения.ОбщийМодуль("Грейды");
МодульГрейды.ГруппаГрейдДополнитьФорму(ЭтотОбъект);
МодульГрейды.ПрочитатьЗначениеГрейда(ЭтотОбъект);
Если ВнешниеДанные Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "Грейд", "Видимость", Ложь);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ДополнитьФормуПозиции(ЭтотОбъект, ОписаниеТаблицыЛьгот());
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКадровыйРезервФормы = ОбщегоНазначения.ОбщийМодуль("КадровыйРезервФормы");
МодульКадровыйРезервФормы.ДополнитьФормуПозиции(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровоеПланирование") Тогда
МодульКадровоеПланированиеФормы = ОбщегоНазначения.ОбщийМодуль("КадровоеПланированиеФормы");
МодульКадровоеПланированиеФормы.ШтатноеРасписаниеПриДополненииФормы(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.ПриСозданииФормыПозицииШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриСозданииФормыПозицииШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
Если Не ВнешниеДанные Тогда
МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
МодульМедицина.ДополнитьФормуПозицииШтатногоРасписания(ЭтотОбъект);
МодульМедицина.ПрочитатьДополнительныеДанныеПозицииШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина.ТарификационнаяОтчетностьУчрежденийФМБА") Тогда
МодульТарификационнаяОтчетностьУчрежденийФМБА = ОбщегоНазначения.ОбщийМодуль("ТарификационнаяОтчетностьУчрежденийФМБА");
МодульТарификационнаяОтчетностьУчрежденийФМБА.ГруппаКатегорииДополнитьФорму(ЭтотОбъект, ИспользоватьИсторию И Не ВнешниеДанные);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
Если Не ВнешниеДанные Тогда
МодульАдаптацияУвольнениеФормы = ОбщегоНазначения.ОбщийМодуль("АдаптацияУвольнениеФормы");
МодульАдаптацияУвольнениеФормы.ОбъектНазначенияПодготовитьФорму(ЭтотОбъект, Истина);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ДополнитьФормуШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитиеФормы.ДополнитьФормуШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьКомментарииДействийСНачислением(Форма, СтрокаНачислений, ОписаниеТаблицыНачислений)
Если Форма.ВнешниеДанные Тогда
УправлениеШтатнымРасписаниемКлиентСервер.УстановитьКомментарииДействийСНачислением(
СтрокаНачислений,
ЗарплатаКадрыРасширенныйКлиентСервер.МаксимальноеКоличествоПоказателейПоОписаниюТаблицы(Форма, ОписаниеТаблицыНачислений,, 0),
Форма.ИспользоватьВилкуСтавок);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПоместитьДанныеОбъектаВФорму(ТекущийОбъект, ЗначениеКопирования = Неопределено)
УстановитьПривилегированныйРежим(Истина);
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений(ЭтотОбъект);
Если ИспользоватьИсторию И СуществующаяПозиция Тогда
Если ВнешниеДанные Тогда
УправлениеШтатнымРасписаниемФормы.ПрочитатьТекущиеДанныеПозицииШтатногоРасписанияВФормуСправочника(ЭтотОбъект, РедактируемаяПозиция, Объект.ДатаУтверждения, ВнешниеДанные, ДокументРегистратор);
Иначе
УправлениеШтатнымРасписаниемФормы.ПрочитатьТекущиеДанныеПозицииШтатногоРасписанияВФормуСправочника(ЭтотОбъект, ТекущийОбъект.Ссылка);
КонецЕсли;
КонецЕсли;
ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией = ЗначениеЗаполнено(Объект.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией);
ЗарплатаКадрыРасширенный.ВводНачисленийДанныеВРеквизит(ЭтотОбъект, ОписаниеТаблицыВидовРасчета, 0);
УправлениеШтатнымРасписаниемКлиентСервер.УстановитьВидимостьКомандыИзменитьНачисленияСотрудников(ЭтотОбъект);
Если ВнешниеДанные Тогда
Для Каждого СтрокаНачислений Из Объект.Начисления Цикл
УстановитьКомментарииДействийСНачислением(ЭтотОбъект, СтрокаНачислений, ОписаниеТаблицыНачисленийНаСервере());
КонецЦикла;
КонецЕсли;
ПозицияСсылка = ТекущийОбъект.Ссылка;
Если ЗначениеЗаполнено(ЗначениеКопирования) Тогда
ПозицияСсылка = ЗначениеКопирования;
КонецЕсли;
Если Не ВнешниеДанные И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.ПриПолученииДанныхФормыПозицииШтатногоРасписания(ЭтотОбъект, ПозицияСсылка, ЗначениеКопирования);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПриПолученииДанныхФормыПозицииШтатногоРасписания(ЭтотОбъект, Объект, ТекущийОбъект.Ссылка);
КонецЕсли;
Если Не ВнешниеДанные И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
Если Не Параметры.Свойство("СтрокаДокумента") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ПрочитатьЛьготыПозиции(ЭтотОбъект, ПозицияСсылка, ОписаниеТаблицыЛьгот(), , "ИндивидуальныеЛьготы");
МодульЛьготыСотрудников.ПрочитатьЛимитыЛьготПозиции(ЭтотОбъект, ПозицияСсылка);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина.ТарификационнаяОтчетностьУчрежденийФМБА") Тогда
Если НЕ Параметры.Свойство("СтрокаДокумента") Тогда
МодульТарификационнаяОтчетностьУчрежденийФМБА = ОбщегоНазначения.ОбщийМодуль("ТарификационнаяОтчетностьУчрежденийФМБА");
МодульТарификационнаяОтчетностьУчрежденийФМБА.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, ТекущийОбъект.Ссылка, ЗначениеКопирования);
КонецЕсли;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АдаптацияУвольнение") Тогда
МодульАдаптацияУвольнениеФормы = ОбщегоНазначения.ОбщийМодуль("АдаптацияУвольнениеФормы");
МодульАдаптацияУвольнениеФормы.ОбъектНазначенияПриПолученииДанных(ЭтотОбъект, Истина);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровоеПланирование") Тогда
МодульКадровоеПланированиеФормы = ОбщегоНазначения.ОбщийМодуль("КадровоеПланированиеФормы");
МодульКадровоеПланированиеФормы.ШтатноеРасписаниеПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецЕсли;
Если Не ВнешниеДанные И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ПриПолученииДанныхПозицииШтатногоРасписания(ЭтотОбъект, ПозицияСсылка);
КонецЕсли;
Если ЗначениеЗаполнено(ТекущийОбъект.Ссылка)
ИЛИ ЗначениеЗаполнено(ЗначениеКопирования) Тогда
СтатистикаПерсоналаРасширенный.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, ТекущийОбъект.Ссылка, ЗначениеКопирования, ОрганизацияФормы);
Иначе
СтатистикаПерсоналаРасширенный.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, ТекущийОбъект.Должность, ЗначениеКопирования, ОрганизацияФормы);
КонецЕсли;
СтимулирующиеВыплатыФСС.ДополнитьФормуЭлементаСправочникаДолжности(ЭтотОбъект);
СтимулирующиеВыплатыФСС.ПрочитатьДополнительныеДанныеДолжности(ЭтотОбъект, Объект.Ссылка);
УстановитьПредставлениеОкладаИФОТ(ЭтотОбъект);
ПрочитатьТерриториальныеУсловияДополнительныеПФР(ЗначениеКопирования);
ПрочитатьДанныеДолжностиСФР();
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
&НаСервере
Процедура РеквизитыВДанные(ОбъектПриемник)
ОписаниеТаблицыВидовРасчета = ОписаниеТаблицыНачислений(ЭтотОбъект);
ЗарплатаКадрыРасширенный.ВводНачисленийРеквизитВДанные(ЭтотОбъект, ОбъектПриемник, ОписаниеТаблицыВидовРасчета, 0);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.РеквизитыПозицииВДанные(ЭтотОбъект, ОписаниеТаблицыЛьгот());
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.РеквизитыПозицииВДанные(ЭтотОбъект, ОбъектПриемник);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойстваЭлементовУправления()
Если ИспользоватьИсторию Тогда
Если ВнешниеДанные Тогда
УстановитьСвойстваЭлементовУправленияДляВнешнихДанных();
Иначе
ЗаполнитьУтвердившийИЗакрывшийРегистраторы();
УстановитьСвойстваЭлементовУправленияПриВеденииИстории();
КонецЕсли;
Иначе
Если ВнешниеДанные Тогда
УстановитьСвойстваЭлементовУправленияДляВнешнихДанных();
Иначе
УстановитьСвойстваЭлементовУправленияПриИспользованииУправленческойСтруктуры();
КонецЕсли;
КонецЕсли;
Если ТолькоПросмотр ИЛИ ИспользоватьИсторию И НЕ ВнешниеДанные Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РедактироватьФОТ",
"Картинка",
БиблиотекаКартинок.ПоказатьДанные);
КомандаРедактированияФОТ = Команды.Найти("РедактироватьФОТ");
Если КомандаРедактированияФОТ <> Неопределено Тогда
КомандаРедактированияФОТ.Заголовок = НСтр("ru='Показать ФОТ'");
КомандаРедактированияФОТ.Подсказка = НСтр("ru='Показать ФОТ'");
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НадписьОклад",
"Видимость",
ИспользоватьРасчетЗарплаты);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"НадписьФОТ",
"Видимость",
ИспользоватьРасчетЗарплаты);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КоличествоСтавок",
"ФорматРедактирования",
УправлениеШтатнымРасписанием.ФорматКоличестваСтавок());
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоКатегории(
ЭтотОбъект,
ОписаниеТаблицыНачислений(ЭтотОбъект),
УправлениеШтатнымРасписанием.ПараметрыВыбораКатегорииНачислений());
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуСодержанию(
ЭтотОбъект,
ОписаниеТаблицыНачислений(ЭтотОбъект),
УправлениеШтатнымРасписанием.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуСодержанию(ЭтотОбъект));
КадровыйУчетРасширенный.УстановитьПараметрыВыбораНачисленийПоОтношениюКДенежномуДовольствию(
ЭтотОбъект,
ОписаниеТаблицыНачислений(ЭтотОбъект),
УправлениеШтатнымРасписанием.ЗначениеПараметраВыбораНачисленийПоОтношениюКДенежномуДовольствию(ЭтотОбъект));
УстановитьДоступностьСведенийПозиции();
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойстваЭлементовУправленияДляВнешнихДанных()
РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
УстановитьОтображениеКоманднойПанелиФормыДляВнешнихДанных();
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Владелец",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГруппаДополнительныеРеквизиты",
"Видимость",
Ложь);
Если СуществующаяПозиция Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Подразделение",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Должность",
"ТолькоПросмотр",
Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.УстановитьСвойстваЭлементовУправленияШтатногоРасписанияВнешниеДанные(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Утверждена",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Закрыта",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДатаУтверждения",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДатаЗакрытия",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КраткоеОписание",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЕжегодныеОтпускаКомментарий",
"Видимость",
Истина);
КонецПроцедуры
&НаСервере
Процедура УстановитьОтображениеКоманднойПанелиФормыДляВнешнихДанных()
ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиФормы.Нет;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КоманднаяПанельФормыВнешниеДанные",
"Видимость",
Истина);
Если ТолькоПросмотр Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КомандаОК",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КомандаЗакрыть",
"Заголовок",
НСтр("ru='Закрыть'"));
ИмяКнопкиПоУмолчанию = "КомандаЗакрыть";
Иначе
ИмяКнопкиПоУмолчанию = "КомандаОК";
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
ИмяКнопкиПоУмолчанию,
"КнопкаПоУмолчанию",
Истина);
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойстваЭлементовУправленияПриВеденииИстории()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Владелец",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Подразделение",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Должность",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СпособОтраженияЗарплатыВБухучете",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОтношениеКЕНВД",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СтатьяФинансирования",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РазрядКатегория",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ТарифнаяСетка",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"РазрядКатегорияНадбавки",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ТарифнаяСеткаНадбавки",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КоличествоСтавок",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"УсловияПриема",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"УтвердившийРегистраторНадпись",
"Видимость",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЗакрывшийРегистраторНадпись",
"Видимость",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Утверждена",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДатаУтверждения",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Закрыта",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ДатаЗакрытия",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГрафикРаботыСотрудников",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ЕжегодныеОтпуска",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Специальности",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсиейФлажок",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОснованиеДосрочногоНазначенияПенсии",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОсобыеУсловияТрудаПФР",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ТрудоваяФункция",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КодПозицииСпискаПФР",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ХарактерВыполняемыхРаботПФР",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ПервичныеДокументыПФР",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидСтажаЛетныхЭкипажей",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидСтажаШахтеров",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"УправленческийУчетГруппа",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГруппаДанныеГоризонтальная",
"ТолькоПросмотр",
Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"Рассчитать",
"Видимость",
Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ГруппаСпецоценкаУсловийТрудаКлассыУсловийТруда",
"ТолькоПросмотр",
Истина);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.УстановитьСвойстваЭлементовУправленияШтатногоРасписанияПриВеденииИстории(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура УстановитьСвойстваЭлементовУправленияПриИспользованииУправленческойСтруктуры()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.УстановитьСвойстваЭлементовУправленияШтатногоРасписания(ЭтотОбъект, СозданиеНовой);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией",
"Доступность",
Форма.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьНаименование()
ПриЗаполненииНаименования();
Если ВнешниеДанные Тогда
Заголовок = Объект.Наименование;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ДополнительныеПараметрыЗаполненияНаименования(РазрядКатегория, Подразделение, Должность)
ДополнительныеПараметры = Новый Структура();
Если ИспользоватьРазрядыКатегорииКлассыДолжностейИПрофессий Тогда
ДополнительныеПараметры.Вставить("РазрядКатегория", РазрядКатегория);
КонецЕсли;
ДополнительныеПараметры.Вставить("ПолноеНаименованиеДолжности", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Должность, "НаименованиеДляЗаписейОТрудовойДеятельности"));
ДополнительныеПараметры.Вставить("ПолноеНаименованиеПодразделения", ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Подразделение, "НаименованиеДляЗаписейОТрудовойДеятельности"));
Возврат ДополнительныеПараметры;
КонецФункции
&НаКлиенте
Процедура ПриЗаполненииНаименования()
СтандартнаяОбработка = Истина;
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктураКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОрганизационнаяСтруктураКлиент");
МодульОрганизационнаяСтруктураКлиент.ПриЗаполненииНаименованияПозицииШтатногоРасписания(ЭтотОбъект, СтандартнаяОбработка);
КонецЕсли;
Если Не СтандартнаяОбработка Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры = ДополнительныеПараметрыЗаполненияНаименования(Объект.РазрядКатегория, Объект.Подразделение, Объект.Должность);
НаименованиеПозиции = УправлениеШтатнымРасписаниемКлиентСервер.НаименованиеПозицииШтатногоРасписания(
Объект.Подразделение,
Объект.Должность,
ДополнительныеПараметры);
Объект.Наименование = НаименованиеПозиции.Наименование;
Объект.НаименованиеПолное = НаименованиеПозиции.НаименованиеПолное;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементов(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ДатаЗакрытия",
"Доступность",
Форма.Объект.Закрыта);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"Закрыта",
"Доступность",
Форма.Объект.Утверждена);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ДатаУтверждения",
"Доступность",
Форма.Объект.Утверждена);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"КлассыУсловийТрудаПоДолжностямПериод",
"Видимость",
Не Форма.ВнешниеДанные);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"КлассУсловийТрудаИстория",
"Видимость",
Не Форма.ВнешниеДанные);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РаботаВСельскомХозяйстве",
"Видимость",
Не Форма.ВнешниеДанные);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РаботаСКоронавирусом",
"Видимость",
Не Форма.ВнешниеДанные);
РазрешитьВидимостьСпецоценки = Не Форма.ВнешниеДанные Или Форма.ИспользоватьИсторию;
Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда
МодульОхранаТрудаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("ОхранаТрудаКлиентСервер");
МодульОхранаТрудаКлиентСервер.ПроверитьЗначениеВидимостиСпецоценки(Форма, РазрешитьВидимостьСпецоценки);
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ГруппаСпецоценкаУсловийТруда",
"Видимость",
РазрешитьВидимостьСпецоценки);
УстановитьДоступностьВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией(Форма);
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьРасчетФОТ(ЗаполнитьДанныеТарифнойСетки = Ложь, ЗаполнитьДанныеТарифнойСеткиНадбавки = Ложь)
Если ЗаполнитьДанныеТарифнойСетки Тогда
ПерезаполнитьДанныеТарифнойСетки = Истина;
КонецЕсли;
Если ЗаполнитьДанныеТарифнойСеткиНадбавки Тогда
ПерезаполнитьДанныеТарифнойСеткиНадбавки = Истина;
КонецЕсли;
ЗарплатаКадрыРасширенныйКлиент.ПодключитьОбработчикОжиданияАвтоматическогоРасчета(ЭтотОбъект, РегистрацияНачисленийДоступна, "РассчитатьФОТНаКлиенте");
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьФОТНаКлиенте()
РассчитатьФОТНаСервере();
КонецПроцедуры
&НаСервере
Процедура РассчитатьФОТНаСервере()
РассчитатьФОТПозиции();
ЗарплатаКадрыРасширенныйКлиентСервер.СброситьФлагНеобходимостиВыполненияРасчета(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура РассчитатьФОТПозиции(ПолныйПерерасчет = Ложь)
УстановитьПривилегированныйРежим(Истина);
Если ПерезаполнитьДанныеТарифнойСетки Тогда
ЗаполнитьДанныеТарифнойСеткиНаСервере();
КонецЕсли;
Если ПерезаполнитьДанныеТарифнойСеткиНадбавки Тогда
ЗаполнитьДанныеТарифнойСеткиНадбавкиНаСервере();
КонецЕсли;
УправлениеШтатнымРасписанием.РассчитатьФОТВФормеСОднойПозицией(ЭтотОбъект, Объект, Объект.Владелец, УправлениеШтатнымРасписаниемКлиентСервер.ДатаСобытия(ЭтотОбъект, ТекущаяДатаСеанса()), ОписаниеТаблицыНачисленийНаСервере());
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.РассчитатьФОТУправленческихНачисленийПозиции(ЭтотОбъект);
КонецЕсли;
УстановитьПривилегированныйРежим(Ложь);
УстановитьПредставлениеОкладаИФОТ(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура РассчитатьИтогиФОТПоПозиции()
УправлениеШтатнымРасписанием.РассчитатьИтогиФОТПоПозиции(ЭтотОбъект, Объект, Объект.Начисления, ОписаниеТаблицыНачислений(ЭтотОбъект));
КонецПроцедуры
&НаСервере
Процедура УстановитьПодходящуюДатуУтверждения()
Если ВнешниеДанные Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Подразделение) Тогда
ДатаСозданияПодразделения = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Подразделение, "ДатаСоздания");
Иначе
ДатаСозданияПодразделения = '00010101';
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Должность) Тогда
ПодходящаяДата = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Объект.Должность ,"ДатаВвода");
Иначе
ПодходящаяДата = '00010101';
КонецЕсли;
Если ДатаСозданияПодразделения > ПодходящаяДата Тогда
ПодходящаяДата = ДатаСозданияПодразделения;
КонецЕсли;
Если ПодходящаяДата = '00010101' Тогда
ПодходящаяДата = НачалоМесяца(ТекущаяДатаСеанса());
КонецЕсли;
Объект.ДатаУтверждения = ПодходящаяДата;
КонецПроцедуры
&НаСервере
Функция ДанныеПодразделения(Знач Подразделение)
ДанныеНачислений = Новый Структура("РайонныйКоэффициент,ПроцентСевернойНадбавки", 1, 0);
Если ЗначениеЗаполнено(Подразделение) Тогда
ЗначенияРеквизитов = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Подразделение, "РайонныйКоэффициент,ПроцентСевернойНадбавки");
ДанныеНачислений.РайонныйКоэффициент = ЗначенияРеквизитов.РайонныйКоэффициент;
ТерриториальныеУсловияПодразделения = ТерриториальныеУсловияПФРПодразделения(Подразделение, ТекущаяДатаСеанса());
Если ТерриториальныеУсловияПодразделения <> Неопределено
И ТерриториальныеУсловияПодразделения.ПрименятьСевернуюНадбавку Тогда
ДанныеНачислений.ПроцентСевернойНадбавки = ЗначенияРеквизитов.ПроцентСевернойНадбавки;
КонецЕсли;
КонецЕсли;
Возврат ДанныеНачислений;
КонецФункции
&НаСервере
Функция ТерриториальныеУсловияПФРПодразделения(Знач Подразделение, Знач ДатаСведений)
Возврат УправлениеШтатнымРасписаниемФормы.ТерриториальныеУсловияПФРПодразделений(Подразделение, ДатаСведений).Получить(Подразделение);
КонецФункции
&НаСервере
Процедура ЗаполнитьДанныеТарифнойСеткиНаСервере()
ДополнительныеПараметры = ЗарплатаКадрыРасширенныйКлиентСервер.ПараметрыЗаполненияЗначенийПоказателейТарифныхСеток();
ДополнительныеПараметры.ДатаСведений = УправлениеШтатнымРасписаниемКлиентСервер.ДатаСобытия(ЭтотОбъект, ТекущаяДатаСеанса());
ДополнительныеПараметры.ТарифнаяСетка = Объект.ТарифнаяСетка;
ДополнительныеПараметры.РазрядКатегория = Объект.РазрядКатегория;
ДополнительныеПараметры.СчитатьПоказателиПоДолжности = Истина;
ЗарплатаКадрыРасширенныйКлиентСервер.ЗаполнитьЗначенияПоказателейТарифныхСеток(ЭтотОбъект, Объект.Начисления, ОписаниеТаблицыНачислений(ЭтотОбъект), 0, ДополнительныеПараметры);
ПерезаполнитьДанныеТарифнойСетки = Ложь;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДанныеТарифнойСеткиНадбавкиНаСервере()
ДополнительныеПараметры = ЗарплатаКадрыРасширенныйКлиентСервер.ПараметрыЗаполненияЗначенийПоказателейТарифныхСеток();
ДополнительныеПараметры.ДатаСведений = УправлениеШтатнымРасписаниемКлиентСервер.ДатаСобытия(ЭтотОбъект, ТекущаяДатаСеанса());
ДополнительныеПараметры.ТарифнаяСеткаНадбавки = Объект.ТарифнаяСеткаНадбавки;
ДополнительныеПараметры.РазрядКатегорияНадбавки = Объект.РазрядКатегорияНадбавки;
ДополнительныеПараметры.СчитатьПоказателиПоДолжности = Истина;
ЗарплатаКадрыРасширенныйКлиентСервер.ЗаполнитьЗначенияПоказателейТарифныхСеток(
ЭтотОбъект,
Объект.Начисления,
ОписаниеТаблицыНачислений(ЭтотОбъект),
0,
ДополнительныеПараметры);
ПерезаполнитьДанныеТарифнойСеткиНадбавки = Ложь;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтображениеПолейВводаРайонногоКоэффициента(Форма, РайонныйКоэффициент)
ИспользуетсяРасчетЗарплаты = Форма.ПолучитьФункциональнуюОпциюФормы("ИспользоватьРасчетЗарплатыРасширенная");
ЗначениеВидимости = ИспользуетсяРасчетЗарплаты И РайонныйКоэффициент > 1;
ИспользоватьВилкуСтавок = ЗначениеВидимости И Форма.ИспользоватьВилкуСтавок;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НачислениеРайонныйКоэффициент",
"Видимость",
ЗначениеВидимости);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РайонныйКоэффициентРазмер",
"Видимость",
ЗначениеВидимости И НЕ ИспользоватьВилкуСтавок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РайонныйКоэффициентРазмерМин",
"Видимость",
ЗначениеВидимости И ИспользоватьВилкуСтавок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"РайонныйКоэффициентРазмерМакс",
"Видимость",
ЗначениеВидимости И ИспользоватьВилкуСтавок);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтображениеПолейВводаПроцентаЗаВредность(Форма, ВыплачиваетсяНадбавкаЗаВредность)
ИспользуетсяРасчетЗарплаты = Форма.ПолучитьФункциональнуюОпциюФормы("ИспользоватьРасчетЗарплатыРасширенная");
ИспользоватьНадбавкуЗаВредность = ИспользуетсяРасчетЗарплаты И Форма.ПолучитьФункциональнуюОпциюФормы("ИспользоватьНадбавкуЗаВредность");
ЗначениеВидимости = ИспользоватьНадбавкуЗаВредность И ВыплачиваетсяНадбавкаЗаВредность;
ИспользоватьВилкуСтавок = Форма.ИспользоватьВилкуСтавок;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"ПроцентНадбавкиЗаВредность",
"ТолькоПросмотр",
Не ВыплачиваетсяНадбавкаЗаВредность);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НадбавкаЗаВредностьРазмер",
"Видимость",
ЗначениеВидимости И НЕ ИспользоватьВилкуСтавок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НадбавкаЗаВредностьРазмерМин",
"Видимость",
ЗначениеВидимости И ИспользоватьВилкуСтавок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НадбавкаЗаВредностьРазмерМакс",
"Видимость",
ЗначениеВидимости И ИспользоватьВилкуСтавок);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтображениеПолейВводаСевернойНадбавки(Форма, ТерриториальныеУсловия)
ИспользуетсяРасчетЗарплаты = Форма.ПолучитьФункциональнуюОпциюФормы("ИспользоватьРасчетЗарплатыРасширенная");
ПрименятьСевернуюНадбавку = Ложь;
Если ТерриториальныеУсловия <> Неопределено Тогда
ПрименятьСевернуюНадбавку = ТерриториальныеУсловия.ПрименятьСевернуюНадбавку;
КонецЕсли;
ЗначениеВидимости = ИспользуетсяРасчетЗарплаты
И Форма.ПолучитьФункциональнуюОпциюФормы("ПрименятьСевернуюНадбавку")
И ПрименятьСевернуюНадбавку;
ИспользоватьВилкуСтавок = ЗначениеВидимости И Форма.ИспользоватьВилкуСтавок;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"НачислениеСевернаяНадбавка",
"Видимость",
ЗначениеВидимости);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СевернаяНадбавкаРазмер",
"Видимость",
ЗначениеВидимости И НЕ ИспользоватьВилкуСтавок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СевернаяНадбавкаРазмерМин",
"Видимость",
ЗначениеВидимости И ИспользоватьВилкуСтавок);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Форма.Элементы,
"СевернаяНадбавкаРазмерМакс",
"Видимость",
ЗначениеВидимости И ИспользоватьВилкуСтавок);
КонецПроцедуры
&НаСервере
Процедура ЗапомнитьЗначенияФункциональныхОпцийИНабораПрав()
ИспользоватьВилкуСтавок = ПолучитьФункциональнуюОпциюФормы("ИспользоватьВилкуСтавокВШтатномРасписании");
ИспользоватьИсторию = ПолучитьФункциональнуюОпциюФормы("ИспользоватьИсториюИзмененияШтатногоРасписания");
ИспользоватьРасчетЗарплаты = ПолучитьФункциональнуюОпциюФормы("ИспользоватьРасчетЗарплатыРасширенная")
И Пользователи.РолиДоступны("ДобавлениеИзменениеНачисленийШтатногоРасписания,ЧтениеНачисленийШтатногоРасписания", , Ложь);
ИспользоватьРазрядыКатегорииКлассыДолжностейИПрофессий = ПолучитьФункциональнуюОпциюФормы("ИспользоватьРазрядыКатегорииКлассыДолжностейИПрофессийВШтатномРасписании");
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьРазмераЛимитаЛьготы(Форма)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "КоличествоБаллов", "Доступность", Форма.ИспользоватьЛимит);
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииТарифнойСетки()
Если ПолучитьФункциональнуюОпциюФормы("РаботаВБюджетномУчреждении") Тогда
Если ЗначениеЗаполнено(Объект.ТарифнаяСетка) И ЗначениеЗаполнено(Объект.РазрядКатегория) Тогда
ИдентификаторСтроки = СтрокаНачисленийПоКодуНачисления("ОКЛ");
Если ИдентификаторСтроки <> Неопределено Тогда
Элементы.Начисления.ТекущаяСтрока = ИдентификаторСтроки;
НачисленияПриНачалеРедактирования(Элементы.Начисления, Истина, Ложь);
НачисленияНачислениеПриИзменении(Элементы.НачисленияНачисление);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПриИзмененииТарифнойСеткиНадбавки()
Если ПолучитьФункциональнуюОпциюФормы("РаботаВБюджетномУчреждении") Тогда
Если ЗначениеЗаполнено(Объект.ТарифнаяСеткаНадбавки) И ЗначениеЗаполнено(Объект.РазрядКатегорияНадбавки) Тогда
ИдентификаторСтроки = СтрокаНачисленийКвалификационнойНадбавки(Объект.ТарифнаяСеткаНадбавки);
Если ИдентификаторСтроки <> Неопределено Тогда
Элементы.Начисления.ТекущаяСтрока = ИдентификаторСтроки;
НачисленияПриНачалеРедактирования(Элементы.Начисления, Истина, Ложь);
НачисленияНачислениеПриИзменении(Элементы.НачисленияНачисление);
ОбновитьКвалификационнуюНадбавку(ИдентификаторСтроки);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОбновитьКвалификационнуюНадбавку(ИдентификаторСтроки)
СтрокаНачисления = Объект.Начисления.НайтиПоИдентификатору(ИдентификаторСтроки);
НачислениеКвалификационнаяНадбавка = СтрокаНачисления.Начисление;
КонецФункции
&НаСервере
Функция СтрокаНачисленийКвалификационнойНадбавки(ТарифнаяСеткаНадбавки = Неопределено)
Если ЗначениеЗаполнено(ТарифнаяСеткаНадбавки)
И ЗначениеЗаполнено(ТарифнаяСеткаНадбавки.Начисление) Тогда
Возврат СтрокаНачисленийПоКодуНачисления(ТарифнаяСеткаНадбавки.Начисление, НачислениеКвалификационнаяНадбавка);
КонецЕсли;
КодНачисления = "НКК";
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
Если МодульМедицина.РаботаВМедицинскомУчреждении() Тогда
КодНачисления = "НККП";
КонецЕсли;
ИначеЕсли ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба") Тогда
МодульГосударственнаяСлужба = ОбщегоНазначения.ОбщийМодуль("ГосударственнаяСлужба");
Если МодульГосударственнаяСлужба.ЭтоДолжностьГосударственнойСлужбы(ЭтотОбъект) Тогда
КодНачисления = "ЕМКВН";
КонецЕсли;
КонецЕсли;
Возврат СтрокаНачисленийПоКодуНачисления(КодНачисления);
КонецФункции
&НаСервере
Функция СтрокаНачисленийПоКодуНачисления(КодНачисления, ЗамещаемоеНачисление = Неопределено)
ИдентификаторДобавленнойСтроки = Неопределено;
Если ТипЗнч(КодНачисления) = Тип("ПланВидовРасчетаСсылка.Начисления") Тогда
ИскомыеНачисления = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(КодНачисления);
Иначе
ИскомыеНачисления = ПланыВидовРасчета.Начисления.НачисленияПоОтбору(Новый Структура("Код", КодНачисления), "");
КонецЕсли;
Если ИскомыеНачисления.Количество() > 0 Тогда
НачислениеЕстьВСписке = Ложь;
Для каждого Начисление Из ИскомыеНачисления Цикл
СтрокиОкладов = Объект.Начисления.НайтиСтроки(Новый Структура("Начисление", Начисление));
Если СтрокиОкладов.Количество() > 0 Тогда
НачислениеЕстьВСписке = Истина;
ИдентификаторДобавленнойСтроки = СтрокиОкладов[0].ПолучитьИдентификатор();
Прервать;
КонецЕсли;
КонецЦикла;
Если Не НачислениеЕстьВСписке
И ЗначениеЗаполнено(ЗамещаемоеНачисление) Тогда
СтрокиОкладов = Объект.Начисления.НайтиСтроки(Новый Структура("Начисление", ЗамещаемоеНачисление));
Если СтрокиОкладов.Количество() > 0 Тогда
НачислениеЕстьВСписке = Истина;
СтрокиОкладов[0].Начисление = ИскомыеНачисления[0];
ИдентификаторДобавленнойСтроки = СтрокиОкладов[0].ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
Если Не НачислениеЕстьВСписке Тогда
СтрокаНачислений = Объект.Начисления.Добавить();
СтрокаНачислений.Начисление = ИскомыеНачисления[0];
Если Объект.Начисления.Количество() > 1 Тогда
ТаблицаНачислений = Объект.Начисления.Выгрузить();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Начисления", ТаблицаНачислений);
Запрос.Текст =
"ВЫБРАТЬ
| *
|ПОМЕСТИТЬ ВТНачисления
|ИЗ
| &Начисления КАК Начисления
|;
|
|
|ВЫБРАТЬ
| *,
| ВЫРАЗИТЬ(Начисления.Начисление КАК ПланВидовРасчета.Начисления).РеквизитДопУпорядочивания КАК Порядок
|ИЗ
| ВТНачисления КАК Начисления
|
|УПОРЯДОЧИТЬ ПО
| Порядок";
Объект.Начисления.Загрузить(Запрос.Выполнить().Выгрузить());
СтрокаНачислений = Объект.Начисления.НайтиСтроки(Новый Структура("Начисление", ИскомыеНачисления[0]))[0];
КонецЕсли;
ИдентификаторДобавленнойСтроки = СтрокаНачислений.ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
Возврат ИдентификаторДобавленнойСтроки;
КонецФункции
&НаСервере
Процедура УстановитьДоступностьИндивидуальныхЛьгот()
Если ДоступныВсеЛьготы = 0 Тогда
ИндивидуальныеЛьготы.Очистить();
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ИндивидуальныеЛьготы", "ТолькоПросмотр", ДоступныВсеЛьготы = 0);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьПолеКлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений(Форма)
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(Форма, "КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений", "КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийСтрокой");
Форма.Элементы.КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений.АвтоОтметкаНезаполненного = Форма.Элементы.КлассыУсловийТрудаПоДолжностямПериод.АвтоОтметкаНезаполненного;
Если Не Форма.Элементы.КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений.АвтоОтметкаНезаполненного
И Не ЗначениеЗаполнено(Форма.КлассыУсловийТрудаПоДолжностям.Период) Тогда
Форма.Элементы.КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений.ОтметкаНезаполненного = Ложь;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьКлассыУсловийТрудаПоДолжностям()
РедактированиеПериодическихСведений.ПрочитатьЗаписьДляРедактированияВФорме(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", СсылкаНаОбъект);
Если Не ЗначениеЗаполнено(КлассыУсловийТрудаПоДолжностям.КлассУсловийТруда) И ЗначениеЗаполнено(Объект.Должность) Тогда
УстановитьКлассУсловийТрудаПоДолжности();
КонецЕсли;
ОбновитьПолеКлассыУсловийТрудаПоДолжностямПериод(ЭтотОбъект);
ОбновитьПолеКлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура УстановитьКлассУсловийТрудаПоДолжности()
Если Не КлассыУсловийТрудаДоступныДляИзменения Тогда
Возврат;
КонецЕсли;
ПозицияШР = ?(ЗначениеЗаполнено(РедактируемаяПозиция), РедактируемаяПозиция, СсылкаНаОбъект);
РедактированиеПериодическихСведений.ПрочитатьЗаписьДляРедактированияВФорме(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", Объект.Должность);
КлассУсловийТрудаПоДолжности = Новый Структура;
КлассУсловийТрудаПоДолжности.Вставить("Период", КлассыУсловийТрудаПоДолжностям.Период);
КлассУсловийТрудаПоДолжности.Вставить("ДатаРегистрацииИзменений", КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений);
КлассУсловийТрудаПоДолжности.Вставить("КлассУсловийТруда", КлассыУсловийТрудаПоДолжностям.КлассУсловийТруда);
КлассУсловийТрудаПоДолжности.Вставить("Должность", ПозицияШР);
РедактированиеПериодическихСведений.ПрочитатьЗаписьДляРедактированияВФорме(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", ПозицияШР);
Если Не ЗначениеЗаполнено(КлассыУсловийТрудаПоДолжностям.КлассУсловийТруда) Тогда
ЗаполнитьЗначенияСвойств(КлассыУсловийТрудаПоДолжностям, КлассУсловийТрудаПоДолжности);
КлассыУсловийТрудаПоДолжностямНоваяЗапись = Истина;
Если ВнешниеДанные Тогда
КлассыУсловийТрудаПоДолжностям.Период = НачалоМесяца(Объект.ДатаУтверждения);
КонецЕсли;
КонецЕсли;
РедактированиеПериодическихСведенийКлиентСервер.ОбновитьОтображениеПолейВвода(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", ПозицияШР);
КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений = НачалоМесяца(КлассыУсловийТрудаПоДолжностям.Период);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений", "КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийСтрокой");
ОбновитьПолеКлассыУсловийТрудаПоДолжностямДатаРегистрацииИзменений(ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ЗаписатьКлассыУсловийТрудаПоДолжностям()
Если ПолучитьФункциональнуюОпцию("ПрименятьРезультатыСпециальнойОценкиУсловийТруда") Тогда
ДополнительныеСвойства = Новый Структура("ОбновитьНастройкиИспользованияСтраховыхВзносовПоКлассамУсловийТруда", Ложь);
РедактированиеПериодическихСведений.ЗаписатьЗаписьПослеРедактированияВФорме(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям", СсылкаНаОбъект, , ДополнительныеСвойства);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПрочитатьНаборЗаписейПериодическихСведений(ИмяРегистра, ВедущийОбъект) Экспорт
РедактированиеПериодическихСведений.ПрочитатьНаборЗаписей(ЭтотОбъект, ИмяРегистра, ВедущийОбъект);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьПолеКлассыУсловийТрудаПоДолжностямПериод(Форма)
ПозицияШР = ?(ЗначениеЗаполнено(Форма.РедактируемаяПозиция), Форма.РедактируемаяПозиция, Форма.СсылкаНаОбъект);
РедактированиеПериодическихСведенийКлиентСервер.ОбновитьОтображениеПолейВвода(Форма, "КлассыУсловийТрудаПоДолжностям", ПозицияШР);
КонецПроцедуры
&НаКлиенте
Процедура УстановитьДатуРегистрацииКлассаУсловийТрудаПоПериоду()
КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений = НачалоМесяца(КлассыУсловийТрудаПоДолжностям.Период);
ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДате(ЭтотОбъект, "КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений", "КлассыУсловийТрудаПоДолжностямДатаРегистрацииИзмененийСтрокой");
КонецПроцедуры
&НаСервере
Процедура ПрочитатьТерриториальныеУсловияДополнительныеПФР(ЗначениеКопирования = Неопределено)
ИсточникСведений = Неопределено;
Если ЗначениеЗаполнено(СсылкаНаОбъект) Тогда
ИсточникСведений = СсылкаНаОбъект;
ИначеЕсли ЗначениеЗаполнено(ЗначениеКопирования) Тогда
ИсточникСведений = ЗначениеКопирования;
ИначеЕсли ЗначениеЗаполнено(Объект.Подразделение) Тогда
ИсточникСведений = Объект.Подразделение;
КонецЕсли;
Если Не ЗначениеЗаполнено(ИсточникСведений) Тогда
Возврат;
КонецЕсли;
Отбор = Новый Структура("СтруктурнаяЕдиница", ИсточникСведений);
Выборка = РегистрыСведений.ТерриториальныеУсловияДополнительныеПФР.Выбрать(Отбор);
Если Выборка.Следующий() И Выборка.ТерриториальныеУсловияПФР = ОбщегоНазначения.ПредопределенныйЭлемент("Справочник.ТерриториальныеУсловияПФР.СЕЛО") Тогда
РаботаВСельскомХозяйстве = Истина;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьТерриториальныеУсловияДополнительныеПФР()
ПерсонифицированныйУчетРасширенный.ЗаписатьТерриториальныеУсловияДополнительныеПФР(СсылкаНаОбъект, РаботаВСельскомХозяйстве);
КонецПроцедуры
&НаСервере
Процедура ПрочитатьДанныеДолжностиСФР(ДанныеДолжности = Неопределено)
Если Не ЗначениеЗаполнено(Объект.Должность) Тогда
Возврат;
КонецЕсли;
Если ДанныеДолжности = Неопределено Тогда
ДанныеДолжности = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Объект.Должность, "ЯвляетсяДолжностьюЛетногоЭкипажа, ЯвляетсяШахтерскойДолжностью");
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЭтаФорма, ДанныеДолжности, "ЯвляетсяДолжностьюЛетногоЭкипажа, ЯвляетсяШахтерскойДолжностью");
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_СвойстваВыполнитьКоманду(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
УправлениеСвойствамиКлиент.ВыполнитьКоманду(ЭтотОбъект, ЭлементИлиКоманда, СтандартнаяОбработка);
КонецПроцедуры
&НаСервере
Процедура ОбновитьЭлементыДополнительныхРеквизитов()
УправлениеСвойствами.ОбновитьЭлементыДополнительныхРеквизитов(ЭтотОбъект, РеквизитФормыВЗначение("Объект"));
КонецПроцедуры
&НаСервере
Функция АдресДанныхПозицииВХранилище()
РеквизитыВДанные(Объект);
ОписаниеПозиции = УправлениеШтатнымРасписанием.ОписаниеПозицииШтатногоРасписания();
ЗаполнитьЗначенияСвойств(ОписаниеПозиции, Объект);
ОписаниеПозиции.Вставить("Действие", Действие);
ОписаниеПозиции.Вставить("ТекущееКоличествоСтавок", ТекущееКоличествоСтавок);
ОписаниеПозиции.Вставить("ТекущийФОТ", ТекущийФОТ);
ОписаниеПозиции.ПозицияШтатногоРасписания = РедактируемаяПозиция;
ОписаниеПозиции.Вставить("КлассУсловийТруда", КлассыУсловийТрудаПоДолжностям.КлассУсловийТруда);
ОписаниеПозиции.Вставить("КлассУсловийТрудаДатаРегистрацииИзменений", КлассыУсловийТрудаПоДолжностям.ДатаРегистрацииИзменений);
ОписаниеПозиции.Начисления = Объект.Начисления.Выгрузить();
ПоказателиПозиции = Объект.Показатели.Выгрузить();
ОписаниеПозиции.Вставить("Показатели", ПоказателиПозиции);
ОписаниеПозиции.ЕжегодныеОтпуска = Объект.ЕжегодныеОтпуска.Выгрузить();
ОписаниеПозиции.Специальности = Объект.Специальности.Выгрузить();
СтатистикаПерсоналаРасширенный.ПоместитьКатегориюПерсоналаВОписаниеПозиции(ЭтотОбъект, ОписаниеПозиции);
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина.ТарификационнаяОтчетностьУчрежденийФМБА") Тогда
МодульТарификационнаяОтчетностьУчрежденийФМБА = ОбщегоНазначения.ОбщийМодуль("ТарификационнаяОтчетностьУчрежденийФМБА");
МодульТарификационнаяОтчетностьУчрежденийФМБА.ПоместитьТарификационнуюГруппуВОписаниеПозиции(ЭтотОбъект, ОписаниеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ОрганизационнаяСтруктура") Тогда
МодульОрганизационнаяСтруктура = ОбщегоНазначения.ОбщийМодуль("ОрганизационнаяСтруктура");
МодульОрганизационнаяСтруктура.ЗаполнитьМестоВСтруктуреПредприятияПоДаннымФормы(ЭтотОбъект, ОписаниеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаФормы = ОбщегоНазначения.ОбщийМодуль("УправленческаяЗарплатаФормы");
МодульУправленческаяЗарплатаФормы.ПоместитьДанныеОНачисленияхВОписаниеПозиции(ЭтотОбъект, Объект, ОписаниеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ПоместитьХарактеристикиПерсоналаВОписаниеПозиции(ЭтотОбъект, ОписаниеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ПоместитьЛьготыВОписаниеПозиции(ЭтотОбъект, ОписаниеПозиции);
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитие = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитие.ПоместитьОбучениеВОписаниеПозиции(ЭтотОбъект, ОписаниеПозиции);
КонецЕсли;
Возврат ПоместитьВоВременноеХранилище(ОписаниеПозиции, УникальныйИдентификатор);
КонецФункции
&НаСервере
Процедура УстановитьДоступностьСведенийПозиции()
Если ВнешниеДанные Тогда
ДоступностьСведений = ЗначениеЗаполнено(РедактируемаяПозиция);
Если НЕ ДоступностьСведений Тогда
ДоступностьСведений = ЗначениеЗаполнено(Объект.Подразделение) И ЗначениеЗаполнено(Объект.Должность);
КонецЕсли;
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ОткрытаЗакрытаГруппа",
"Доступность",
ДоступностьСведений);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"СтраницыФормы",
"Доступность",
ДоступностьСведений);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"КомандаОК",
"Доступность",
ДоступностьСведений);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПредставлениеОкладаИФОТ(Форма)
ФорматнаяСтрока = "ЧДЦ=2";
Если Форма.ИспользоватьВилкуСтавок Тогда
Если Форма.Объект.ОкладТарифМин < Форма.Объект.ОкладТарифМакс Тогда
Форма.Оклад = Формат(Форма.Объект.ОкладТарифМин, ФорматнаяСтрока) + " - " + Формат(Форма.Объект.ОкладТарифМакс, ФорматнаяСтрока);
ИначеЕсли Форма.Объект.ОкладТарифМин > 0 И Форма.Объект.ОкладТарифМин = Форма.Объект.ОкладТарифМакс Тогда
Форма.Оклад = Формат(Форма.Объект.ОкладТарифМин, ФорматнаяСтрока);
Иначе
Форма.Оклад = "";
КонецЕсли;
Если Форма.Объект.ФОТМин < Форма.Объект.ФОТМакс Тогда
Форма.ФОТ = Формат(Форма.Объект.ФОТМин, ФорматнаяСтрока) + " - " + Формат(Форма.Объект.ФОТМакс, ФорматнаяСтрока);
ИначеЕсли Форма.Объект.ФОТМин > 0 И Форма.Объект.ФОТМин = Форма.Объект.ФОТМакс Тогда
Форма.ФОТ = Формат(Форма.Объект.ФОТМин, ФорматнаяСтрока);
Иначе
Форма.ФОТ = "";
КонецЕсли;
Иначе
Форма.Оклад = Формат(Форма.Объект.ОкладТариф, ФорматнаяСтрока);
Форма.ФОТ = Формат(Форма.Объект.ФОТ, ФорматнаяСтрока);
КонецЕсли;
Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиентСервер = ОбщегоНазначенияБЗККлиентСервер.ОбщийМодуль("УправленческаяЗарплатаКлиентСервер");
МодульУправленческаяЗарплатаКлиентСервер.УстановитьПредставлениеФОТ(Форма);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьУтвердившийИЗакрывшийРегистраторы()
ЗаполнитьЗначенияСвойств(ЭтотОбъект, УправлениеШтатнымРасписаниемФормы.ИнформацияОбУтвержденииИЗакрытииПозиции(Объект.Ссылка));
Если ЗначениеЗаполнено(Объект.ДатаУтверждения) Тогда
УтвердившийРегистраторНадпись = Новый ФорматированнаяСтрока(
НСтр("ru='Утверждена'") + " " + Формат(Объект.ДатаУтверждения, "ДЛФ=DD") + " (",
Новый ФорматированнаяСтрока(Строка(УтвердившийРегистратор),,,,"УтвердившийРегистратор"),
")");
Иначе
УтвердившийРегистраторНадпись = "";
КонецЕсли;
Если ЗначениеЗаполнено(Объект.ДатаЗакрытия) Тогда
ЗакрывшийРегистраторНадпись = Новый ФорматированнаяСтрока(
НСтр("ru='Закрыта'") + " " + Формат(Объект.ДатаЗакрытия, "ДЛФ=DD") + " (",
Новый ФорматированнаяСтрока(Строка(ЗакрывшийРегистратор),,,,"ЗакрывшийРегистратор"),
")");
Иначе
ЗакрывшийРегистраторНадпись = "";
КонецЕсли;
КонецПроцедуры
#Область Подключаемый_КадровыйРезерв
&НаСервереБезКонтекста
Функция ПолучитьПозициюРезерваПоСсылке(НавигационнаяСсылка)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКадровыйРезерв = ОбщегоНазначения.ОбщийМодуль("КадровыйРезерв");
Возврат МодульКадровыйРезерв.ПолучитьПозициюРезерваПоСсылке(НавигационнаяСсылка);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецФункции
&НаСервере
Процедура ОбновитьЭлементыКадровогоРезерва()
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКадровыйРезервФормы = ОбщегоНазначения.ОбщийМодуль("КадровыйРезервФормы");
МодульКадровыйРезервФормы.ОбновитьКадровыйРезервПозицииШР(ЭтотОбъект);
МодульКадровыйРезервФормы.УстановитьЗначениеСвязаннойПозицииРезерва(ЭтотОбъект);
МодульКадровыйРезервФормы.СформироватьИнфоСтрокуГруппРезерва(ЭтотОбъект);
МодульКадровыйРезервФормы.УстановитьСвойстваЭлементовФормыШтатногоРасписания(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПоставитьРейтингНаКлиенте(Рейтинг)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("КадровыйРезервКлиент");
ТекущиеДанные = МодульКлиент.ТекущиеДанныеТаблицы(ЭтотОбъект);
Если ТекущиеДанные <> Неопределено Тогда
ПоставитьРейтингНаСервере(ТекущиеДанные, Рейтинг);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПоставитьРейтингНаСервере(ТекущиеДанные, Рейтинг)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйРезерв") Тогда
МодульКадровыйРезерв = ОбщегоНазначения.ОбщийМодуль("КадровыйРезерв");
МодульКадровыйРезерв.ПоставитьРейтинг(ТекущиеДанные.ПозицияРезерва, ТекущиеДанные.УчастникКадровогоРезерва, Рейтинг);
МодульКадровыйРезервФормы = ОбщегоНазначения.ОбщийМодуль("КадровыйРезервФормы");
МодульКадровыйРезервФормы.ОбновитьКадровыйРезервПозицииШР(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ЗаписьЭлемента
&НаКлиенте
Процедура ЗаписатьИЗакрытьНаКлиенте(Результат, ДополнительныеПараметры) Экспорт
ЗаписатьНаКлиенте(Истина);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи, ОповещениеЗавершения = Неопределено)
ОценкаПроизводительностиКлиент.ЗамерВремени("ЗаписьЭлементаСправочникаШтатноеРасписание");
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("ЗакрытьПослеЗаписи", ЗакрытьПослеЗаписи);
ДополнительныеПараметры.Вставить("ОповещениеЗавершения", ОповещениеЗавершения);
Оповещение = Новый ОписаниеОповещения("ЗаписатьНаКлиентеЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ТекстКнопкиДа = НСтр("ru = 'Изменились сведения о классе условий труда'");
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'При редактировании были изменены сведения о классе условий труда.
|Если были исправлены прежние сведения о классе условий труда (они были ошибочными), нажмите ""Исправлена ошибка"".
|Если сведения о классе условий труда изменились с %1, нажмите ""%2""'"),
Формат(КлассыУсловийТрудаПоДолжностям.Период, "ДФ='ММММ гггг ""г""'"),
ТекстКнопкиДа);
РедактированиеПериодическихСведенийКлиент.ЗапроситьРежимИзмененияРегистра(ЭтотОбъект,"КлассыУсловийТрудаПоДолжностям", ТекстВопроса, ТекстКнопкиДа, Ложь, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ЗаписатьНаКлиентеЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ПараметрыЗаписи = Новый Структура("ПроверкаПередЗаписьюВыполнена", Истина);
Если ДополнительныеПараметры.ОповещениеЗавершения <> Неопределено Тогда
ВыполнитьОбработкуОповещения(ДополнительныеПараметры.ОповещениеЗавершения, ПараметрыЗаписи);
ИначеЕсли УправлениеШтатнымРасписаниемКлиент.СохранитьДанныеОбъектаФормы(ЭтотОбъект, ПараметрыЗаписи)
И ДополнительныеПараметры.ЗакрытьПослеЗаписи Тогда
Закрыть();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ЗаполнитьЗначенияСтажевыхРеквизитовВСтроке(ИдентификаторСтроки)
ТекущиеДанные = Объект.ЕжегодныеОтпуска.НайтиПоИдентификатору(ИдентификаторСтроки);
ОстаткиОтпусков.ЗаполнитьЗначенияСтажевыхРеквизитовВСтроке(ТекущиеДанные);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачислениеНадбавкаЗаВредность()
Если ПолучитьФункциональнуюОпцию("ИспользоватьНадбавкуЗаВредность") Тогда
Если Не ЗначениеЗаполнено(НачислениеНадбавкаЗаВредность) Тогда
НачисленияНадбавкаЗаВредность = ПланыВидовРасчета.Начисления.НачислениеНадбавкаЗаВредность();
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВыплачиваетсяНадбавкаЗаВредность",
"Заголовок",
УправлениеШтатнымРасписаниемКлиентСервер.ПредставлениеНадбавкиЗаВредность(НачислениеНадбавкаЗаВредность));
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачислениеКвалификационнаяНадбавка()
Если ЗначениеЗаполнено(Объект.ТарифнаяСеткаНадбавки) Тогда
ИдентификаторСтроки = СтрокаНачисленийКвалификационнойНадбавки(Объект.ТарифнаяСеткаНадбавки);
Если ИдентификаторСтроки <> Неопределено Тогда
СтрокаНачисления = Объект.Начисления.НайтиПоИдентификатору(ИдентификаторСтроки);
НачислениеКвалификационнаяНадбавка = СтрокаНачисления.Начисление;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#Область УправленческаяЗарплата
&НаКлиенте
Процедура Подключаемый_ПриИзмененииНастройкиУправленческойЗарплаты(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.ПриИзмененииНастройкиУправленческойЗарплатыПозицииШтатногоРасписания(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриАктивизацииСтроки(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.УправленческиеНачисленияПриАктивизацииСтроки(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПередУдалением(Элемент, Отказ)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.УправленческиеНачисленияПередУдалением(ЭтотОбъект, Элемент, Отказ);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.УправленческиеНачисленияПриНачалеРедактирования(ЭтотОбъект, Элемент, НоваяСтрока, Копирование);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПриОкончанииРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.УправленческиеНачисленияПриОкончанииРедактирования(ЭтотОбъект, Элемент, НоваяСтрока, ОтменаРедактирования);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияПослеУдаления(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.УправленческиеНачисленияПослеУдаления(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура УправленческиеНачисленияНачислениеПриИзменении(Элемент)
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.УправленческаяЗарплата") Тогда
МодульУправленческаяЗарплатаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправленческаяЗарплатаКлиент");
МодульУправленческаяЗарплатаКлиент.УправленческиеНачисленияНачислениеПриИзменении(ЭтотОбъект, Элемент);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДатаУтвержденияПриИзменении(Элемент)
ЗаполнитьПравамиНаОтпускаНаСервере();
УстановитьВидимостьЕНВД(Элементы,
ИспользуетсяЕНВД(Объект.ДатаУтверждения));
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ЗаполнитьПравамиНаОтпускаНаСервере()
ОстаткиОтпусков.ЗаполнитьПоложеннымиПравамиПозициюШР(Объект.ЕжегодныеОтпуска, Объект.Подразделение, Объект.Должность, Объект.ДатаУтверждения);
КонецПроцедуры
#Область АдаптацияУвольнение
&НаСервере
Функция ЗаголовкиГруппСтраницыАдаптацияУвольнение() Экспорт
ЗаголовкиГрупп = Новый Структура();
ЗаголовкиГрупп.Вставить("МероприятияАдаптацииГруппа", НСтр("ru = 'При приеме или переводе на позицию назначается задание'"));
ЗаголовкиГрупп.Вставить("МероприятияУвольненияГруппа", НСтр("ru = 'При увольнении или переводе с позиции назначается задание'"));
Возврат ЗаголовкиГрупп;
КонецФункции
#КонецОбласти
&НаСервере
Процедура УстановитьНастройкиЭлементовВводаГрафика()
НастройкиУчетаВремени = УчетРабочегоВремениРасширенный.НастройкиУчетаВремени();
Если Объект.ГрафикРаботыСотрудников = Неопределено Тогда
Объект.ГрафикРаботыСотрудников = Справочники.ГрафикиРаботыСотрудников.ПустаяСсылка();
ГрафикРаботыРежимРаботы = 0;
ИначеЕсли ТипЗнч(Объект.ГрафикРаботыСотрудников) = Тип("СправочникСсылка.РежимыРаботыСотрудников") Тогда
ГрафикРаботыРежимРаботы = 1;
Иначе
ГрафикРаботыРежимРаботы = 0;
КонецЕсли;
Если НастройкиУчетаВремени.ИспользоватьРежимыРаботы Тогда
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГрафикРаботыРежимРаботыВыбор", "Видимость", Истина);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГрафикРаботыСотрудников", "ПоложениеЗаголовка", ПоложениеЗаголовкаЭлементаФормы.Нет);
Иначе
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГрафикРаботыРежимРаботыВыбор", "Видимость", Ложь);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГрафикРаботыСотрудников", "ПоложениеЗаголовка", ПоложениеЗаголовкаЭлементаФормы.Лево);
ТипГрафикРаботы = Новый ОписаниеТипов("СправочникСсылка.ГрафикиРаботыСотрудников");
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГрафикРаботыСотрудников", "ОграничениеТипа", ТипГрафикРаботы);
КонецЕсли;
КонецПроцедуры
#Область ДействияХарактеристики
&НаСервере
Процедура Подключаемый_ДобавитьХарактеристикиИзДействийНаСервере(МассивДобавленныхДействий) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ШтатноеРасписаниеДобавитьХарактеристикиИзДействийНаСервере(ЭтотОбъект, МассивДобавленныхДействий);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДобавитьХарактеристикиПерсоналаНаКлиенте(НовыеХарактеристики, ДополнительныеПараметры = Неопределено) Экспорт
Подключаемый_ДобавитьХарактеристикиПерсоналаНаСервере(НовыеХарактеристики, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ДобавитьХарактеристикиПерсоналаНаСервере(НовыеХарактеристики, ДополнительныеПараметры)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ШтатноеРасписаниеДобавитьХарактеристикиВТабличнуюЧасть(ЭтотОбъект, НовыеХарактеристики, ДополнительныеПараметры);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ЗаполнитьДействияХарактеристикиИзПрофиляНаСервере() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ХарактеристикиПерсонала") Тогда
МодульХарактеристикиПерсоналаФормы = ОбщегоНазначения.ОбщийМодуль("ХарактеристикиПерсоналаФормы");
МодульХарактеристикиПерсоналаФормы.ШтатноеРасписаниеЗаполнитьДействияХарактеристикиИзПрофиляНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ПрограммаОбучения
&НаСервере
Процедура Подключаемый_ЗаполнитьПрограммуОбученияИзПрофиляНаСервере() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеЗаполнитьПрограммуОбученияИзПрофиляНаСервере(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ЗаполнитьВторичныеДанныеОбученияНаСервере(ИдентификаторТекущейСтроки) Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеЗаполнитьВторичныеДанныеОбученияНаСервере(ЭтотОбъект, ИдентификаторТекущейСтроки);
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция Подключаемый_АдресХарактеристикПерсонала() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
Возврат МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеАдресХарактеристикПерсонала(ЭтотОбъект);
КонецЕсли;
КонецФункции
&НаСервере
Функция Подключаемый_АдресПрограммыОбучения() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
Возврат МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеАдресПрограммыОбучения(ЭтотОбъект);
КонецЕсли;
КонецФункции
&НаСервере
Процедура Подключаемый_ПересоздатьКолонкиПериодовПрограммыОбучения() Экспорт
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеПересоздатьКолонкиПериодовПрограммыОбучения(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ЗагрузитьПрограммуОбученияНаКлиенте(Результат, ДополнительныеПараметры = Неопределено) Экспорт
Подключаемый_ЗагрузитьПрограммуОбученияНаСервере(Результат, ДополнительныеПараметры);
КонецПроцедуры
&НаСервере
Процедура Подключаемый_ЗагрузитьПрограммуОбученияНаСервере(Результат, ДополнительныеПараметры)
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОбучениеРазвитие") Тогда
МодульОбучениеРазвитиеФормы = ОбщегоНазначения.ОбщийМодуль("ОбучениеРазвитиеФормы");
МодульОбучениеРазвитиеФормы.ШтатноеРасписаниеЗагрузитьПрограммуОбучения(ЭтотОбъект, Результат);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЕНВД(ЭлементыФормы, ИспользуетсяЕНВД)
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ЭлементыФормы,
"ОтношениеКЕНВД",
"Видимость",
ИспользуетсяЕНВД);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ИспользуетсяЕНВД(Период)
Возврат ОтражениеЗарплатыВБухучете.ИспользуетсяЕНВД(Период);
КонецФункции
&НаСервере
Процедура УстановитьВидимостьПолейВидаСтажаСФР()
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидСтажаЛетныхЭкипажей",
"Видимость",
ЯвляетсяДолжностьюЛетногоЭкипажа);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
Элементы,
"ВидСтажаШахтеров",
"Видимость",
ЯвляетсяШахтерскойДолжностью);
КонецПроцедуры
#Область Подключаемый_ЛьготыСотрудников
&НаСервереБезКонтекста
Процедура ЗаполнитьПозициюЛьготамиПоУмолчанию(Форма)
Если Форма.СуществующаяПозиция Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ЛьготыСотрудников") Тогда
МодульЛьготыСотрудников = ОбщегоНазначения.ОбщийМодуль("ЛьготыСотрудников");
МодульЛьготыСотрудников.ПрочитатьЛьготыПозиции(Форма, Неопределено, ОписаниеТаблицыЛьгот(), , "ИндивидуальныеЛьготы");
МодульЛьготыСотрудников.ПрочитатьЛимитыЛьготПозиции(Форма, Неопределено);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти