Панель настроек зарплата кадры / Кадровый учет / Модуль формы

файл

#Область ОписаниеПеременных

&НаКлиенте
Перем ПараметрыОбработчикаОжидания;

&НаКлиенте
Перем ФормаДлительнойОперации;

#КонецОбласти

#Область ОбработчикиСобытийФормы

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
	// Определяем показывать ли глобальную настройку по отключению и кадрами, и зарплатой.
	ДоступностьУстановкиИспользованияКадровогоУчетаИРасчетаЗарплаты = Ложь;
	ЗарплатаКадрыРасширенныйПереопределяемый.ОпределитьДоступностьУстановкиИспользованияЗарплатаКадры(ДоступностьУстановкиИспользованияКадровогоУчетаИРасчетаЗарплаты);
	Элементы.ГруппаИспользоватьКадровыйУчетИРасчетЗарплаты.Видимость = ДоступностьУстановкиИспользованияКадровогоУчетаИРасчетаЗарплаты;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
		МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
		МодульМедицина.ДобавитьРеквизитыНастроекМедицинскойОрганизации(ЭтотОбъект);
	КонецЕсли;
	
	ПрочитатьНастройки();
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
		МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
		МодульМедицина.ДополнитьФормуНастроекКадровогоУчета(ЭтотОбъект);
	КонецЕсли;

	ОбновитьОписаниеНастроекШтатногоРасписания(ЭтаФорма);
	ОбновитьОписаниеНастроекЭДОБЗК(ЭтаФорма, ЭДОБЗК.НастройкиЭДОБЗК());
	// Установка доступности элементов формы в зависимости от текущих настроек.
	УстановитьДоступностьЭлементовФормы(ЭтаФорма);
	УстановитьВидимостьЭлементовФормы(ЭтаФорма);
	УстановитьТекстПояснениеИспользоватьПереносОстатковОтпуска(ЭтотОбъект);
	
	Если ЗарплатаКадры.ЭтоБазоваяВерсияКонфигурации() Тогда
		
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаИспользоватьПодработки",
			"Видимость",
			Ложь);
			
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаПереносОстатковОтпуска",
			"Видимость",
			Ложь);
			
		КонецЕсли;
		
	Если ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы") Тогда
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"БронированиеКомандировокГруппа",
			"Видимость",
			Ложь);
	КонецЕсли;
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ИспользоватьУниверсальнуюФормуСпискаСотрудниковГруппа",
		"Видимость",
		ИспользоватьПодробныеФормыСотрудников());
	
	//ERP начало
	Элементы.НастройкиКадровогоУчета.Видимость = Ложь;
	//ERP конец
	
КонецПроцедуры

&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)

	Если ЗавершениеРаботы Тогда
		Возврат;
	КонецЕсли;
	
	Если ЭтаФорма.ТребуетсяОбновлениеИнтерфейса Тогда
		ОбновитьИнтерфейс();
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
	
	Если ИмяСобытия = "ИзмененыНастройкиШтатногоРасписания" Тогда
		ПрочитатьНастройкиШтатногоРасписания();
		ОбновитьОписаниеНастроекШтатногоРасписания(ЭтаФорма);
	КонецЕсли;
	
КонецПроцедуры

#КонецОбласти

#Область ОбработчикиСобытийЭлементовШапкиФормы

&НаКлиенте
Процедура ИспользоватьКадровыйУчетИРасчетЗарплатыПриИзменении(Элемент)
	
	ИменаНастроек = "НастройкиКадровогоУчета,НастройкиВоинскогоУчета,НастройкиШтатногоРасписания,ИспользоватьКадровыйУчет,ИспользоватьНачислениеЗарплаты,ИспользоватьАттестацииСотрудников,ИспользоватьДистанционнуюРаботу,ИспользоватьРабочиеМестаохраныТруда,ИспользоватьМедицинскоеСтрахованиеСотрудников,ИспользоватьУдержанияВМедицинскомСтрахованииСотрудников,НастройкиЭлектронныхТрудовыхКнижек,ИспользоватьПроцессыНаграждения";
	ИспользоватьКадровыйУчет = ИспользоватьКадровыйУчетИРасчетЗарплаты;
	ИспользоватьНачислениеЗарплаты = ИспользоватьКадровыйУчетИРасчетЗарплаты;
	
	Если ИспользоватьКадровыйУчетИРасчетЗарплаты Тогда
		// Восстанавливаем ранее запомненное состояние настроек.
		ЗаполнитьЗначенияСвойств(НастройкиВоинскогоУчета, НастройкиВоинскогоУчетаПрежняя);
		ЗаполнитьЗначенияСвойств(НастройкиКадровогоУчета, НастройкиКадровогоУчетаПрежняя);
		ЗаполнитьЗначенияСвойств(НастройкиШтатногоРасписания, НастройкиШтатногоРасписанияПрежняя);
		ЗаполнитьЗначенияСвойств(НастройкиЭлектронныхТрудовыхКнижек, НастройкиЭлектронныхТрудовыхКнижекПрежняя);
		
		Если ШтатноеРасписаниеВсегдаИспользуется() И НЕ НастройкиШтатногоРасписания.ИспользоватьШтатноеРасписание Тогда
			НастройкиШтатногоРасписания.ИспользоватьШтатноеРасписание = Истина;
		КонецЕсли;
		
	Иначе
		// Сохраняем состояние
		ЗаполнитьЗначенияСвойств(НастройкиВоинскогоУчетаПрежняя, НастройкиВоинскогоУчета);
		ЗаполнитьЗначенияСвойств(НастройкиКадровогоУчетаПрежняя, НастройкиКадровогоУчета);
		ЗаполнитьЗначенияСвойств(НастройкиШтатногоРасписанияПрежняя, НастройкиШтатногоРасписания);
		ЗаполнитьЗначенияСвойств(НастройкиЭлектронныхТрудовыхКнижекПрежняя, НастройкиЭлектронныхТрудовыхКнижек);
		
		// Сбрасываем настройки
		НастройкиВоинскогоУчета.ИспользоватьВоинскийУчет = Ложь;
		НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан = Ложь;
		НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава = Ложь;
		НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава = Ложь;
		НастройкиВоинскогоУчета.ЗаполнятьТолькоАдресПоПрописке = Ложь;
		НастройкиВоинскогоУчета.УчитыватьВнешнихСовместителей = Ложь;
		
		НастройкиКадровогоУчета.ИспользоватьРаботуНаНеполнуюСтавку = Ложь;
		НастройкиКадровогоУчета.ИспользоватьПереносОстатковОтпускаПриУвольненииПереводом = Ложь;
		НастройкиКадровогоУчета.ВПоляхВводаСотрудниковУчитыватьИзмененияФамилии = Ложь;
		НастройкиКадровогоУчета.ИспользуетсяРаботаСКоронавирусом = Ложь;
		НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС = ПредопределенноеЗначение("Перечисление.ПолучательСтимулирующихВыплатФСС.ПустаяСсылка");
		НастройкиКадровогоУчета.СоциальныеВыплатыОтдельнымКатегориямМедРаботников = Ложь;
		НастройкиКадровогоУчета.ПриемНаРаботуБезПриказаОПриеме = Ложь;
		НастройкиКадровогоУчета.КонтролироватьУникальностьТабельныхНомеров = Ложь; // ERP 00-00052344
		
		НастройкиЭлектронныхТрудовыхКнижек.ЗаполнятьСТДРВсемиМероприятиямиДо2020Года = Ложь;
		НастройкиЭлектронныхТрудовыхКнижек.ИспользоватьДляМероприятийПриемПереводУвольнениеДваДокументаОснования = Ложь;
		
		НастройкиШтатногоРасписания.ИспользоватьШтатноеРасписание = Ложь;
		НастройкиШтатногоРасписания.ИспользоватьРазрядыКатегорииКлассыДолжностейИПрофессийВШтатномРасписании = Ложь;
		НастройкиШтатногоРасписания.ИспользоватьИсториюИзмененияШтатногоРасписания = Ложь;
		НастройкиШтатногоРасписания.ПроверятьНаСоответствиеШтатномуРасписаниюАвтоматически = Ложь;
		НастройкиШтатногоРасписания.ИспользоватьВилкуСтавокВШтатномРасписании = Ложь;
		НастройкиШтатногоРасписания.ПредставлениеТарифовИНадбавок = ПредопределенноеЗначение("Перечисление.ПредставлениеТарифовИНадбавок.ПустаяСсылка");
		НастройкиШтатногоРасписания.ИспользоватьБронированиеПозиций = Ложь;
		
		ИспользоватьАттестацииСотрудников = Ложь;
		ИспользоватьДистанционнуюРаботу = Ложь;
		ИспользоватьМедицинскоеСтрахованиеСотрудников = Ложь;
		ИспользоватьУдержанияВМедицинскомСтрахованииСотрудников = Ложь;
		ИспользоватьРабочиеМестаохраныТруда = Ложь;
		ИспользоватьПроцессыНаграждения = Ложь;
		
	КонецЕсли;
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
		МодульМедицинаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МедицинаКлиент");
		МодульМедицинаКлиент.УстановитьЗначенияЗависимыхНастроекРасчетаЗарплаты(ЭтаФорма);
		МодульМедицинаКлиент.ДополнитьИменаНастроек(ИменаНастроек);
	КонецЕсли;
	
	УстановитьДоступностьЭлементовФормы(ЭтаФорма);
	
	ЗаписатьНастройкиНаКлиенте(ИменаНастроек);
	
	Оповестить("ИспользоватьКадровыйУчетИРасчетЗарплаты", ИспользоватьКадровыйУчетИРасчетЗарплаты); // ERP 00-00052344
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ШтатноеРасписаниеВсегдаИспользуется()
	Возврат ЗарплатаКадрыРасширенный.ШтатноеРасписаниеВсегдаИспользуется();
КонецФункции

&НаКлиенте
Процедура НастройкиКадровогоУчетаКонтролироватьУникальностьТабельныхНомеровПриИзменении(Элемент)
	
	НастройкиКадровогоУчетаПрежняя.КонтролироватьУникальностьТабельныхНомеров = НастройкиКадровогоУчета.КонтролироватьУникальностьТабельныхНомеров;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиКадровогоУчетаОтображатьИзмененияОплатыТрудаВЛичнойКарточкеПриИзменении(Элемент)
	
	НастройкиКадровогоУчетаПрежняя.ОтображатьИзмененияОплатыТрудаВЛичнойКарточке = НастройкиКадровогоУчета.ОтображатьИзмененияОплатыТрудаВЛичнойКарточке;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиКадровогоУчетаПриемНаРаботуБезПриказаОПриемеПриИзменении(Элемент)
	
	НастройкиКадровогоУчетаПрежняя.ПриемНаРаботуБезПриказаОПриеме = НастройкиКадровогоУчета.ПриемНаРаботуБезПриказаОПриеме;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиКадровогоУчетаПравилоФормированияПредставленияЭлементовСправочникаСотрудникиПриИзменении(Элемент)
	
	ОбновитьПравилоФормированияПредставленияЭлементовСправочникаСотрудники = Истина;
	НастройкиКадровогоУчетаПрежняя.ПравилоФормированияПредставленияЭлементовСправочникаСотрудники = НастройкиКадровогоУчета.ПравилоФормированияПредставленияЭлементовСправочникаСотрудники;
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьРаботуНаНеполнуюСтавкуПриИзменении(Элемент)
	
	НастройкиКадровогоУчетаПрежняя.ИспользоватьРаботуНаНеполнуюСтавку = НастройкиКадровогоУчета.ИспользоватьРаботуНаНеполнуюСтавку;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользуетсяРаботаСКоронавирусомПриИзменении(Элемент)	
	
	Если НастройкиКадровогоУчета.ИспользуетсяРаботаСКоронавирусом Тогда
		НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС = НастройкиКадровогоУчетаПрежняя.ПолучательСтимулирующихВыплатФСС;
		Если НЕ ЗначениеЗаполнено(НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС) Тогда
			НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС = ПредопределенноеЗначение("Перечисление.ПолучательСтимулирующихВыплатФСС.МедицинскаяОрганизация");
		КонецЕсли;
	Иначе
		НастройкиКадровогоУчетаПрежняя.ПолучательСтимулирующихВыплатФСС = НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС;
		НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС = ПредопределенноеЗначение("Перечисление.ПолучательСтимулирующихВыплатФСС.ПустаяСсылка");
	КонецЕсли;
	
	НастройкиКадровогоУчетаПрежняя.ИспользуетсяРаботаСКоронавирусом = НастройкиКадровогоУчета.ИспользуетсяРаботаСКоронавирусом;
	
	УстановитьДоступностьЭлементовФормыНастройкиРаботыСКоронавирусом(Элементы, НастройкиКадровогоУчета);
		
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
		
КонецПроцедуры

&НаКлиенте
Процедура ПолучательСтимулирующихВыплатФССПриИзменении(Элемент)
	НастройкиКадровогоУчетаПрежняя.ПолучательСтимулирующихВыплатФСС = НастройкиКадровогоУчета.ПолучательСтимулирующихВыплатФСС;
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
КонецПроцедуры

&НаКлиенте
Процедура СоциальныеВыплатыОтдельнымКатегориямМедРаботниковПриИзменении(Элемент)
	НастройкиКадровогоУчетаПрежняя.СоциальныеВыплатыОтдельнымКатегориямМедРаботников = НастройкиКадровогоУчета.СоциальныеВыплатыОтдельнымКатегориямМедРаботников;
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
КонецПроцедуры

&НаКлиенте
Процедура ВПоляхВводаСотрудниковУчитыватьИзмененияФамилииПриИзменении(Элемент)
	
	НастройкиКадровогоУчетаПрежняя.ВПоляхВводаСотрудниковУчитыватьИзмененияФамилии = НастройкиКадровогоУчета.ВПоляхВводаСотрудниковУчитыватьИзмененияФамилии;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиКадровогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПодработкиПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьПодработки");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры


&НаКлиенте
Процедура ИспользоватьУниверсальнуюФормуСпискаСотрудниковПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьУниверсальнуюФормуСпискаСотрудников");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура УчитыватьПрерываниеСтажейАвтоматическиПриИзменении(Элемент)
	
	Если НЕ ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АвтоматическийРасчетСтажейФизическихЛиц") Тогда
		Возврат;
	КонецЕсли;
	
	ЗаписатьНастройкиНаКлиенте("УчитыватьПрерываниеСтажейАвтоматически");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьВоинскийУчетПриИзменении(Элемент)
	
	Если НастройкиВоинскогоУчета.ИспользоватьВоинскийУчет Тогда
		НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан = НастройкиВоинскогоУчетаПрежняя.ИспользоватьБронированиеГраждан;
		НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава = НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудЛетноПодъемногоСостава;
		НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава = НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудПлавсостава;
		НастройкиВоинскогоУчета.ЗаполнятьТолькоАдресПоПрописке = НастройкиВоинскогоУчетаПрежняя.ЗаполнятьТолькоАдресПоПрописке;
		НастройкиВоинскогоУчета.УчитыватьВнешнихСовместителей = НастройкиВоинскогоУчетаПрежняя.УчитыватьВнешнихСовместителей;
	Иначе
		НастройкиВоинскогоУчетаПрежняя.ИспользоватьБронированиеГраждан = НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан;
		НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудЛетноПодъемногоСостава = НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава;
		НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудПлавсостава = НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава;
		НастройкиВоинскогоУчетаПрежняя.ЗаполнятьТолькоАдресПоПрописке = НастройкиВоинскогоУчета.ЗаполнятьТолькоАдресПоПрописке;
		НастройкиВоинскогоУчетаПрежняя.УчитыватьВнешнихСовместителей = НастройкиВоинскогоУчета.УчитыватьВнешнихСовместителей;
		НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан = Ложь;
		НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава = Ложь;
		НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава = Ложь;
		НастройкиВоинскогоУчета.ЗаполнятьТолькоАдресПоПрописке = Ложь;
		НастройкиВоинскогоУчета.УчитыватьВнешнихСовместителей = Ложь;
	КонецЕсли;
	
	УстановитьДоступностьЭлементовФормыНастройкиВоинскогоУчета(Элементы, НастройкиВоинскогоУчета);
	
	ЗаписатьНастройкиНаКлиенте("НастройкиВоинскогоУчета");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
		
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьБронированиеГражданПриИзменении(Элемент)
	
	Элементы.ГруппаВоинскийУчетСоставы.Доступность = НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан;
	
	Если НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан Тогда
		НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава = НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудЛетноПодъемногоСостава;
		НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава = НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудПлавсостава;
	Иначе
		НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудЛетноПодъемногоСостава = НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава;
		НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудПлавсостава = НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава;
		НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава = Ложь;
		НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава = Ложь;
	КонецЕсли;
	
	НастройкиВоинскогоУчетаПрежняя.ИспользоватьБронированиеГраждан = НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиВоинскогоУчета");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользуетсяТрудЛетноПодъемногоСоставаПриИзменении(Элемент)
	
	НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудЛетноПодъемногоСостава = НастройкиВоинскогоУчета.ИспользуетсяТрудЛетноПодъемногоСостава;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиВоинскогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользуетсяТрудПлавсоставаПриИзменении(Элемент)
	
	НастройкиВоинскогоУчетаПрежняя.ИспользуетсяТрудПлавсостава = НастройкиВоинскогоУчета.ИспользуетсяТрудПлавсостава;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиВоинскогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура ЗаполнятьТолькоАдресПоПропискеПриИзменении(Элемент)
	
	НастройкиВоинскогоУчетаПрежняя.ЗаполнятьТолькоАдресПоПрописке = НастройкиВоинскогоУчета.ЗаполнятьТолькоАдресПоПрописке;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиВоинскогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура УчитыватьВнешнихСовместителейПриИзменении(Элемент)
	
	НастройкиВоинскогоУчетаПрежняя.УчитыватьВнешнихСовместителей = НастройкиВоинскогоУчета.УчитыватьВнешнихСовместителей;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиВоинскогоУчета");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьАттестацииСотрудниковПриИзменении(Элемент)
	
	Если НЕ ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.АттестацииСотрудников") Тогда
		Возврат;
	КонецЕсли;
	
	Если РаботаВБюджетномУчреждении И ИспользоватьАттестацииСотрудников Тогда
		ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии = 1;
	КонецЕсли;
		
	Если ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии = 1
		И Не ИспользоватьАттестацииСотрудников Тогда
		ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии = 0;
	КонецЕсли;
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьАттестацииСотрудников,ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии");
	УстановитьДоступностьЭлементовФормыАттестацииСотрудников(ЭтотОбъект);
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьДистанционнуюРаботуПриИзменении(Элемент)
	
	Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
		Возврат;
	КонецЕсли;
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьДистанционнуюРаботу");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьМедицинскоеСтрахованиеСотрудниковПриИзменении(Элемент)
	
	Если НЕ ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.МедицинскоеСтрахование") Тогда
		Возврат;
	КонецЕсли;
	
	УстановитьДоступностьЭлементовФормыМедицинскоеСтрахование(ЭтотОбъект);
	ЗаписатьНастройкиНаКлиенте("ИспользоватьМедицинскоеСтрахованиеСотрудников");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьРабочиеМестаОхраныТрудаПриИзменении(Элемент)
	
	Если Не ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
		Возврат;
	КонецЕсли;
	
	УстановитьДоступностьЭлементовФормыРабочиеМестаОхраныТруда(ЭтотОбъект);
	ЗаписатьНастройкиНаКлиенте("ИспользоватьРабочиеМестаОхраныТруда");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьУдержанияВМедицинскомСтрахованииСотрудниковПриИзменении(Элемент)
	
	Если НЕ ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.МедицинскоеСтрахование") Тогда
		Возврат;
	КонецЕсли;
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьУдержанияВМедицинскомСтрахованииСотрудников");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользованиеДокументаФормированиеАттестационнойКомиссииПриИзменении(Элемент)
	
	Если НЕ ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.АттестацииСотрудников") Тогда
		Возврат;	
	КонецЕсли;
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьСпециальностиФизическихЛицПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьСпециальностиФизическихЛиц");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ПоддерживатьНесколькоВременныхКадровыхИзмененийПриИзменении(Элемент)
	
	УстановитьВидимостьСпособовФормированияИнтервальныхРегистров(ЭтотОбъект);
	ЗаписатьСпособФормированияИнтервальныхРегистровНаСервере(ПоддерживатьНесколькоВременныхКадровыхИзменений);
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиЭлектронныхТрудовыхКнижекЗаполнятьСТДРВсемиМероприятиямиДо2020ГодаПриИзменении(Элемент)
	
	НастройкиЭлектронныхТрудовыхКнижекПрежняя.ЗаполнятьСТДРВсемиМероприятиямиДо2020Года = НастройкиЭлектронныхТрудовыхКнижек.ЗаполнятьСТДРВсемиМероприятиямиДо2020Года;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиЭлектронныхТрудовыхКнижек");
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкиЭлектронныхТрудовыхКнижекИспользоватьДляМероприятийПриемПереводУвольнениеДваДокументаОснованияПриИзменении(Элемент)
	
	НастройкиЭлектронныхТрудовыхКнижекПрежняя.ИспользоватьДляМероприятийПриемПереводУвольнениеДваДокументаОснования = НастройкиЭлектронныхТрудовыхКнижек.ИспользоватьДляМероприятийПриемПереводУвольнениеДваДокументаОснования;
	
	ЗаписатьНастройкиНаКлиенте("НастройкиЭлектронныхТрудовыхКнижек");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьОбщийПериодОтпускаВДокументахПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьОбщийПериодОтпускаВДокументах");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ПолнаяКомпенсацияОтпускаПриУвольненииПоВыбраннымОснованиямПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ПолнаяКомпенсацияОтпускаПриУвольненииПоВыбраннымОснованиям");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантИспользованияСервисаПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("СервисКабинетСотрудникаВЛокальнойСети");
	
КонецПроцедуры

&НаКлиенте
Процедура ОтправлятьСотрудниковАвтоматическиПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьАвтоматическуюОтправкуСотрудниковБронированияКомандировок");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();

КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_РаботаВМедицинскомУчрежденииПриИзменении(Элемент)
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
		МодульМедицинаКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("МедицинаКлиент");
		МодульМедицинаКлиент.УстановитьЗначенияЗависимыхМедицинскихНастроекРасчетаЗарплаты(ЭтаФорма);
	КонецЕсли;
	ЗаписатьНастройкиНаКлиенте("РаботаВМедицинскомУчреждении,ИспользоватьВыгрузкуВФедеральныйРегистрМедицинскихРаботников,ИспользоватьВыгрузкуВФедеральныеМедрегистры,ИспользоватьТарификационнуюОтчетностьУчрежденийФМБА,ИспользоватьДоступКНаркотическимСредствам,ИспользоватьАккредитациюСпециалистов");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ДополнительныеНастройкиМедицинскойОрганизацииПриИзменении(Элемент)
	ИмяНастройки = Элемент.Имя;
	ЗаписатьНастройкиНаКлиенте(ИмяНастройки);
	Если ИмяНастройки="ИспользоватьВыгрузкуВФедеральныеМедрегистры" Тогда 
		Оповестить("НастройкаИспользоватьВыгрузкуВФедеральныеМедрегистрыИзменена", ЭтаФорма[ИмяНастройки]);
	КонецЕсли;
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьТрудоустройствоПоКвотамПриИзменении(Элемент)
	
	Если Не ЭтаФорма.ИспользоватьТрудоустройствоПоКвотам Тогда
		ЭтаФорма.ИспользоватьПланированиеКвотДляТрудоустройства = Ложь;
		ЗаписатьНастройкиНаКлиенте("ИспользоватьПланированиеКвотДляТрудоустройства");
	КонецЕсли;
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьТрудоустройствоПоКвотам");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();   

	ПрочитатьНастройкиПланированиеКвотДляТрудоустройства();

КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПланированиеКвотДляТрудоустройстваПриИзменении(Элемент)

	ЗаписатьНастройкиНаКлиенте("ИспользоватьПланированиеКвотДляТрудоустройства");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();

КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьИнтеграциюСПриложением1СПерсоналПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("ИспользоватьИнтеграциюСПриложением1СПерсонал");
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы, "ВариантИспользования1СПерсонал",
		"Доступность", ИспользоватьИнтеграциюСПриложением1СПерсонал);
		
	Если Не ИспользоватьИнтеграциюСПриложением1СПерсонал Тогда
		ВариантИспользования1СПерсонал = 0;
	КонецЕсли;
	
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
	
КонецПроцедуры

&НаКлиенте
Процедура ВариантИспользования1СПерсоналПриИзменении(Элемент)
	
	ЗаписатьНастройкиНаКлиенте("Приложение1СПерсоналВЛокальнойСети");
	
КонецПроцедуры

&НаКлиенте
Процедура ИспользоватьПроцессыНагражденияПриИзменении(Элемент)

	ЗаписатьНастройкиНаКлиенте("ИспользоватьПроцессыНаграждения");
	ПодключитьОбработчикОжиданияОбновленияИнтерфейса();

КонецПроцедуры

#КонецОбласти

#Область ОбработчикиКомандФормы

&НаКлиенте
Процедура НастройкиКадровогоУчета(Команда)
	
	ПараметрыФормы = Новый Структура;
	ПараметрыОтбора = Новый Структура;
	ПараметрыОтбора.Вставить("ПолеСортировкиРазделов", 3); 
	ПараметрыФормы.Вставить("СформироватьПриОткрытии", Истина);
	ПараметрыФормы.Вставить("Отбор", ПараметрыОтбора);
	ПараметрыФормы.Вставить("КлючВарианта", "НастройкиПоРазделам");
	
	ОткрытьФорму("Отчет.НастройкиПрограммыЗарплатаКадры.Форма", ПараметрыФормы, ЭтотОбъект, Истина);
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкаШтатногоРасписания(Команда)
	ОткрытьФорму("Обработка.ПанельНастроекЗарплатаКадры.Форма.НастройкаШтатногоРасписания");
КонецПроцедуры

#КонецОбласти

#Область СлужебныеПроцедурыИФункции

&НаСервереБезКонтекста
Процедура ЗаписатьСпособФормированияИнтервальныхРегистровНаСервере(ПоддерживатьНесколькоВременныхКадровыхИзменений)

	Если ПоддерживатьНесколькоВременныхКадровыхИзменений Тогда
		ЗначениеНастройки =
			Перечисления.СпособыФормированияИнтервальныхРегистров.ПоддерживатьНесколькоВложенныхПериодическихСобытийИнтервальныхРегистров;
	Иначе
		ЗначениеНастройки =
			Перечисления.СпособыФормированияИнтервальныхРегистров.НеПоддерживатьНесколькоВложенныхПериодическихСобытийИнтервальныхРегистров;
	КонецЕсли;
	Константы.СпособФормированияИнтервальныхРегистров.Установить(ЗначениеНастройки);

КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьОписаниеНастроекШтатногоРасписания(Форма)

	Настройки = Форма.НастройкиШтатногоРасписания;
	ИспользоватьШтатноеРасписание = Настройки.ИспользоватьШтатноеРасписание;
	Если Не ИспользоватьШтатноеРасписание Тогда
		Описание = НСтр("ru = 'Возможность ведения штатного расписания отключена'");
	Иначе
		
		РаботаВБюджетномУчреждении = Форма.РаботаВБюджетномУчреждении;
		ИспользоватьНачислениеЗарплаты = Форма.ИспользоватьНачислениеЗарплаты;
		ШтатноеРасписаниеВсегдаИспользуется = Форма.ШтатноеРасписаниеВсегдаИспользуется;
		
		Автопроверка = Настройки.ПроверятьНаСоответствиеШтатномуРасписаниюАвтоматически;
		ИспользоватьИсторию = Настройки.ИспользоватьИсториюИзмененияШтатногоРасписания;
		ИспользоватьВилку = Настройки.ИспользоватьВилкуСтавокВШтатномРасписании;
		ИспользоватьРазрядыКатегории = Настройки.ИспользоватьРазрядыКатегорииКлассыДолжностейИПрофессийВШтатномРасписании;
		ИспользоватьБронированиеПозиций = Настройки.ИспользоватьБронированиеПозиций;
		ТекстАвтопроверка = ?(Автопроверка, НСтр("ru = 'Выполняется'"), НСтр("ru = 'Не выполняется'"));
		ТекстИспользоватьИсторию = ?(ИспользоватьИсторию, НСтр("ru = 'Ведется'"), НСтр("ru = 'Не ведется'"));
		ТекстИспользоватьРазрядыКатегории = ?(РаботаВБюджетномУчреждении,"",?(ИспользоватьРазрядыКатегории, НСтр("ru = 'Используются'"), НСтр("ru = 'Не используются'")));
		ТекстИспользоватьВилку = ?(ИспользоватьНачислениеЗарплаты,?(ИспользоватьВилку, НСтр("ru = 'Используется'"), НСтр("ru = 'Не используется'")),"");
		ТекстПредставлениеТарифовИНадбавок = ?(ИспользоватьНачислениеЗарплаты, Настройки.ПредставлениеТарифовИНадбавок,"");
		ТекстИспользоватьБронирование = ?(ИспользоватьБронированиеПозиций, НСтр("ru = 'Используется'"), НСтр("ru = 'Не используется'"));

		Описание = ?(ШтатноеРасписаниеВсегдаИспользуется, "", НСтр("ru = 'Ведется штатное расписание.'") + Символы.ПС);
		
		Описание = Описание + 
		НСтр("ru = '%1 автоматическая проверка кадровых документов на соответствие штатному расписанию.
		|%2 история изменения штатного расписания.'");
		
		Описание = ?(Не РаботаВБюджетномУчреждении, Описание + " 
		|" + НСтр("ru = '%3 разряды и категории в позиции штатного расписания.'"), Описание);
		
		Описание = ?(ИспользоватьНачислениеЗарплаты, Описание + "
		|" + НСтр("ru = '%4 ""вилка"" окладов и надбавок.'"), Описание);
		
			
		Описание = ?(ИспользоватьНачислениеЗарплаты, Описание + "
		|" + НСтр("ru = 'Надбавки в форме Т-3 отображаются как: %5'"), Описание);
		
		
		Описание = ?(ИспользоватьБронированиеПозиций, Описание + " 
		|" + НСтр("ru = '%6 бронирование позиций штатного расписания.'"), Описание);

		
		Описание = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Описание,
			ТекстАвтопроверка,
			ТекстИспользоватьИсторию,
			ТекстИспользоватьРазрядыКатегории,
			ТекстИспользоватьВилку,
			ТекстПредставлениеТарифовИНадбавок,
			ТекстИспользоватьБронирование);
		
	КонецЕсли;
	
	Форма.ОписаниеНастроекШтатногоРасписания = Описание;

КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройки()
	
	РаботаВБюджетномУчреждении = ПолучитьФункциональнуюОпцию("РаботаВБюджетномУчреждении");
	ИспользоватьНачислениеЗарплаты = ПолучитьФункциональнуюОпцию("ИспользоватьНачислениеЗарплаты");
	ШтатноеРасписаниеВсегдаИспользуется = ЗарплатаКадрыРасширенный.ШтатноеРасписаниеВсегдаИспользуется();
	
	ИспользоватьКадровыйУчетИРасчетЗарплаты = ПолучитьФункциональнуюОпцию("ИспользоватьКадровыйУчет") И ИспользоватьНачислениеЗарплаты;
	
	Настройки = РегистрыСведений.НастройкиКадровогоУчета.СоздатьМенеджерЗаписи();
	Настройки.Прочитать();
	
	ЗначениеВРеквизитФормы(Настройки, "НастройкиКадровогоУчета");
	ЗначениеВРеквизитФормы(Настройки, "НастройкиКадровогоУчетаПрежняя");
	
	Настройки = РегистрыСведений.НастройкиВоинскогоУчета.СоздатьМенеджерЗаписи();
	Настройки.Прочитать();
	
	ЗначениеВРеквизитФормы(Настройки, "НастройкиВоинскогоУчета");
	ЗначениеВРеквизитФормы(Настройки, "НастройкиВоинскогоУчетаПрежняя");
	
	Настройки = РегистрыСведений.НастройкиЭлектронныхТрудовыхКнижек.СоздатьМенеджерЗаписи();
	Настройки.Прочитать();
	
	ЗначениеВРеквизитФормы(Настройки, "НастройкиЭлектронныхТрудовыхКнижек");
	ЗначениеВРеквизитФормы(Настройки, "НастройкиЭлектронныхТрудовыхКнижекПрежняя");
	
	ПрочитатьНастройкиШтатногоРасписания();
	
	ПрочитатьНастройкиАттестацииСотрудников();
	ПрочитатьНастройкиДистанционнойРаботы();
	ПрочитатьНастройкиМедицинскогоСтрахованияСотрудников();
	ПрочитатьНастройкиРабочихМестОхраныТруда();
	ПрочитатьУчитыватьПрерываниеСтажейАвтоматически();
	
	ИспользоватьСпециальностиФизическихЛиц = Константы.ИспользоватьСпециальностиФизическихЛиц.Получить();
	ИспользоватьПодработки = Константы.ИспользоватьПодработки.Получить();
	ИспользоватьОбщийПериодОтпускаВДокументах = Константы.ИспользоватьОбщийПериодОтпускаВДокументах.Получить();
	ПолнаяКомпенсацияОтпускаПриУвольненииПоВыбраннымОснованиям = Константы.ПолнаяКомпенсацияОтпускаПриУвольненииПоВыбраннымОснованиям.Получить();
	
	СпособФормированияИнтервальныхРегистров = Константы.СпособФормированияИнтервальныхРегистров.Получить();
	Если СпособФормированияИнтервальныхРегистров <> 
		Перечисления.СпособыФормированияИнтервальныхРегистров.НеПоддерживатьНесколькоВложенныхПериодическихСобытийИнтервальныхРегистров Тогда
		
		ПоддерживатьНесколькоВременныхКадровыхИзменений = Истина;
	КонецЕсли;
	
	Если ИспользоватьПодробныеФормыСотрудников() Тогда
		
		МодульСпискиСотрудников = ОбщегоНазначения.ОбщийМодуль("СпискиСотрудников");
		ИспользоватьУниверсальнуюФормуСпискаСотрудников = МодульСпискиСотрудников.ИспользоватьУниверсальнуюФормуСпискаСотрудников();
		
	КонецЕсли;
	
	ПрочитатьНастройкиСервисаКабинетСотрудника();
	ПрочитатьНастройки1СПерсонал();
	ПрочитатьНастройкиТрудоустройствоПоКвотам();
	ПрочитатьНастройкиПланированиеКвотДляТрудоустройства();
	ПрочитатьНастройкиПроцессыНаграждения();
	
	ИспользоватьАвтоматическуюОтправкуСотрудниковБронированияКомандировок = Константы.ИспользоватьАвтоматическуюОтправкуСотрудниковБронированияКомандировок.Получить();
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
		МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
		МодульМедицина.НастройкиПрограммыВРеквизитыФормы(ЭтотОбъект);
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиСервисаКабинетСотрудника()
	
	НастройкаДоступна = ИнтеграцияКабинетСотрудника.ДоступноЧтениеВариантаИспользованияСервиса();
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ГруппаСервис1СКабинетСотрудника",
		"Видимость",
		НастройкаДоступна);
		
	Если Не НастройкаДоступна Тогда
		Возврат;
	КонецЕсли;
	
	СервисКабинетСотрудникаВЛокальнойСети = Константы.СервисКабинетСотрудникаВЛокальнойСети.Получить();
	
	ВариантИспользованияСервиса = ?(СервисКабинетСотрудникаВЛокальнойСети,1,0);
	НастройкаДоступна = Не ПолучитьФункциональнуюОпцию("ИспользуетсяСервисКабинетСотрудника")
		И ИнтеграцияКабинетСотрудника.ДоступноИзменениеВариантаИспользованияСервиса();
		
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ВариантИспользованияСервиса",
		"Доступность",
		НастройкаДоступна);

КонецПроцедуры
	
&НаСервере
Процедура ПрочитатьНастройки1СПерсонал()
	
	НастройкаДоступна = Интеграция1СПерсонал.ДоступноЧтениеИспользованияИнтеграции()
		И Интеграция1СПерсонал.ДоступноЧтениеВариантаИспользованияПриложения();
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ГруппаПриложение1СПерсонал",
		"Видимость",
		НастройкаДоступна);
		
	Если Не НастройкаДоступна Тогда
		Возврат;
	КонецЕсли;
	
	ИспользоватьИнтеграциюСПриложением1СПерсонал = Константы.ИспользоватьИнтеграциюСПриложением1СПерсонал.Получить();
	Если Не ИспользоватьИнтеграциюСПриложением1СПерсонал Тогда
		Если Не ИнтеграцияУправлениеПерсоналомМенеджер.ДоступноПодключениеПриложения1СПерсонал() Тогда
			ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Элементы, "ГруппаПриложение1СПерсонал", "Видимость", Ложь);
			Возврат;
		КонецЕсли;
	КонецЕсли;
	Используется1СПерсонал = ИнтеграцияУправлениеПерсоналом.Используется1СПерсонал();
	ПриложениеВЛокальнойСети = Константы.Приложение1СПерсоналВЛокальнойСети.Получить();
	
	ВариантИспользования1СПерсонал = ?(ПриложениеВЛокальнойСети,1,0);
	
	НастройкаДоступнаДляИзменения = Интеграция1СПерсонал.ДоступноИзменениеВариантаИспользованияПриложения()
		И Интеграция1СПерсонал.ДоступноИзменениеВариантаИспользованияПриложения()
		И Не Используется1СПерсонал;
		
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ИспользоватьИнтеграциюСПриложением1СПерсонал",
		"Доступность",
		НастройкаДоступнаДляИзменения);
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Элементы,
		"ВариантИспользования1СПерсонал",
		"Доступность",
		ИспользоватьИнтеграциюСПриложением1СПерсонал И НастройкаДоступнаДляИзменения);

КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиШтатногоРасписания()

	Настройки = РегистрыСведений.НастройкиШтатногоРасписания.СоздатьМенеджерЗаписи();
	Настройки.Прочитать();
	ЗначениеВРеквизитФормы(Настройки, "НастройкиШтатногоРасписания");

КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиАттестацииСотрудников()
	
	Если НЕ ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.АттестацииСотрудников") Тогда
		Возврат;	
	КонецЕсли;
	
	Модуль = ОбщегоНазначения.ОбщийМодуль("АттестацииСотрудников");
	
	ИспользоватьАттестацииСотрудников = Модуль.ИспользуетсяАттестацияСотрудников();
	
	Если Модуль.ГрафикАттестацииИКомиссияУтверждаютсяОднимДокументом() Тогда
		ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии = 0;
	Иначе 
		ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии = 1	
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиДистанционнойРаботы()
	
	Если Не ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота") Тогда
		Возврат;
	КонецЕсли;
	
	МодульДистанционнаяРабота = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРабота");
	
	ИспользоватьДистанционнуюРаботу = МодульДистанционнаяРабота.ИспользуетсяДистанционнаяРабота();
	
КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиМедицинскогоСтрахованияСотрудников()
	
	Если НЕ ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.МедицинскоеСтрахование") Тогда
		Возврат;
	КонецЕсли;
	
	Модуль = ОбщегоНазначения.ОбщийМодуль("МедицинскоеСтрахование");
	
	ИспользоватьМедицинскоеСтрахованиеСотрудников = Модуль.ИспользуетсяМедицинскоеСтрахованиеСотрудников();
	ИспользоватьУдержанияВМедицинскомСтрахованииСотрудников = Модуль.ИспользуютсяУдержанияВМедицинскомСтрахованииСотрудников();
	
КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиРабочихМестОхраныТруда()
	
	Если Не ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.РабочиеМестаОхраныТруда") Тогда
		Возврат;
	КонецЕсли;
	
	МодульРабочиеМестаОхраныТруда = ОбщегоНазначения.ОбщийМодуль("РабочиеМестаОхраныТруда");
	
	ИспользоватьРабочиеМестаОхраныТруда = МодульРабочиеМестаОхраныТруда.РабочиеМестаОхраныТрудаИспользуются();
	
КонецПроцедуры

&НаСервере
Функция ЗаписатьНастройкиНаСервере(ИмяНастройки)
	
	ПараметрыНастроек = Обработки.ПанельНастроекЗарплатаКадры.ЗаполнитьСтруктуруПараметровНастроек(ИмяНастройки);
	ПараметрыНастроек.НастройкиКадровогоУчета = ОбщегоНазначения.СтруктураПоМенеджеруЗаписи(НастройкиКадровогоУчета, Метаданные.РегистрыСведений.НастройкиКадровогоУчета);
	ПараметрыНастроек.НастройкиВоинскогоУчета = ОбщегоНазначения.СтруктураПоМенеджеруЗаписи(НастройкиВоинскогоУчета, Метаданные.РегистрыСведений.НастройкиВоинскогоУчета);
	ПараметрыНастроек.НастройкиШтатногоРасписания = ОбщегоНазначения.СтруктураПоМенеджеруЗаписи(НастройкиШтатногоРасписания, Метаданные.РегистрыСведений.НастройкиШтатногоРасписания);
	ПараметрыНастроек.ИспользоватьКадровыйУчет = ИспользоватьКадровыйУчет;
	ПараметрыНастроек.ИспользоватьНачислениеЗарплаты = ИспользоватьНачислениеЗарплаты;
	ПараметрыНастроек.ИспользоватьАттестацииСотрудников = ИспользоватьАттестацииСотрудников;
	ПараметрыНастроек.ИспользоватьДистанционнуюРаботу = ИспользоватьДистанционнуюРаботу;
	ПараметрыНастроек.ИспользоватьМедицинскоеСтрахованиеСотрудников = ИспользоватьМедицинскоеСтрахованиеСотрудников;
	ПараметрыНастроек.ИспользоватьУдержанияВМедицинскомСтрахованииСотрудников = ИспользоватьУдержанияВМедицинскомСтрахованииСотрудников;
	ПараметрыНастроек.ИспользоватьРабочиеМестаОхраныТруда = ИспользоватьРабочиеМестаОхраныТруда;
	ПараметрыНастроек.ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии = ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии > 0;
	ПараметрыНастроек.ИспользоватьСпециальностиФизическихЛиц = ИспользоватьСпециальностиФизическихЛиц;
	ПараметрыНастроек.ИспользоватьПодработки = ИспользоватьПодработки;
	ПараметрыНастроек.УчитыватьПрерываниеСтажейАвтоматически = УчитыватьПрерываниеСтажейАвтоматически;
	ПараметрыНастроек.ИспользоватьОбщийПериодОтпускаВДокументах = ИспользоватьОбщийПериодОтпускаВДокументах;
	ПараметрыНастроек.ПолнаяКомпенсацияОтпускаПриУвольненииПоВыбраннымОснованиям = ПолнаяКомпенсацияОтпускаПриУвольненииПоВыбраннымОснованиям;
	ПараметрыНастроек.НастройкиЭлектронныхТрудовыхКнижек = ОбщегоНазначения.СтруктураПоМенеджеруЗаписи(НастройкиЭлектронныхТрудовыхКнижек, Метаданные.РегистрыСведений.НастройкиЭлектронныхТрудовыхКнижек);
	ПараметрыНастроек.СервисКабинетСотрудникаВЛокальнойСети = ВариантИспользованияСервиса > 0;
	ПараметрыНастроек.Приложение1СПерсоналВЛокальнойСети = ВариантИспользования1СПерсонал > 0;
	ПараметрыНастроек.ИспользоватьИнтеграциюСПриложением1СПерсонал = ИспользоватьИнтеграциюСПриложением1СПерсонал;
	ПараметрыНастроек.ИспользоватьАвтоматическуюОтправкуСотрудниковБронированияКомандировок = ИспользоватьАвтоматическуюОтправкуСотрудниковБронированияКомандировок;
		
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.Медицина") Тогда
		МодульМедицина = ОбщегоНазначения.ОбщийМодуль("Медицина");
		МодульМедицина.ЗначенияСохраняемыхРеквизитовФормыНастройкаПрограммы(ЭтотОбъект, ПараметрыНастроек);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда 
		МодульТрудоустройствоПоКвотам = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотам");
		МодульТрудоустройствоПоКвотам.ПанельУправлениеПерсоналомЗаполнитьНастройки(ЭтотОбъект, ПараметрыНастроек);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ПроцессыНаграждения") Тогда 
		МодульПроцессыНаграждения = ОбщегоНазначения.ОбщийМодуль("ПроцессыНаграждения");
		МодульПроцессыНаграждения.ПанельУправлениеПерсоналомЗаполнитьНастройки(ЭтотОбъект, ПараметрыНастроек);
	КонецЕсли;
	
	Если ИспользоватьПодробныеФормыСотрудников() Тогда
		ПараметрыНастроек.ИспользоватьУниверсальнуюФормуСпискаСотрудников = ИспользоватьУниверсальнуюФормуСпискаСотрудников;
	КонецЕсли;
	
	НаименованиеЗадания = НСтр("ru = 'Сохранение настроек кадрового учета'");
	Если ИмяНастройки = "НастройкиВоинскогоУчета" Тогда
		НаименованиеЗадания = НСтр("ru = 'Сохранение настроек воинского учета'");
	КонецЕсли;
	
	Результат = ДлительныеОперации.ЗапуститьВыполнениеВФоне(
		УникальныйИдентификатор,
		"Обработки.ПанельНастроекЗарплатаКадры.ЗаписатьНастройки",
		ПараметрыНастроек,
		НаименованиеЗадания);
	
	АдресХранилища = Результат.АдресХранилища;
	
	Если Результат.ЗаданиеВыполнено Тогда
		ОбновитьПовторноИспользуемыеЗначения();
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

&НаКлиенте
Процедура ЗаписатьНастройкиНаКлиенте(ИмяНастройки)
	
	Результат = ЗаписатьНастройкиНаСервере(ИмяНастройки);
	
	Если Не Результат.ЗаданиеВыполнено Тогда
		ИдентификаторЗадания = Результат.ИдентификаторЗадания;
		АдресХранилища		 = Результат.АдресХранилища;
		
		ДлительныеОперацииКлиент.ИнициализироватьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
		ПодключитьОбработчикОжидания("Подключаемый_ПроверитьВыполнениеЗадания", 1, Истина);
		ФормаДлительнойОперации = ДлительныеОперацииКлиент.ОткрытьФормуДлительнойОперации(ЭтаФорма, ИдентификаторЗадания);
	Иначе
		ОбновитьПравилоФормированияПредставленияСправочникаСотрудникиНаКлиенте();
		
		// ERP начало: 00-00052344
		ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
		// ERP конец
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьТекстПояснениеИспользоватьПереносОстатковОтпуска(Форма)
	Текст = НСтр("ru = 'На предприятии разрешается переносить остатки отпусков при переводе сотрудников между организациями'");
	Форма.ПояснениеИспользоватьПереносОстатковОтпускаПриУвольненииПереводом = Текст;	
КонецПроцедуры

#Область ОбновлениеИнтерфейса

&НаКлиенте
Процедура ПодключитьОбработчикОжиданияОбновленияИнтерфейса()
	
	ТребуетсяОбновлениеИнтерфейса = Истина;
	ПодключитьОбработчикОжидания("ОбработчикОжиданияОбновленияИнтерфейса", 1, Истина);
	
КонецПроцедуры

&НаКлиенте 
Процедура ОбработчикОжиданияОбновленияИнтерфейса()
	
	ЗарплатаКадрыРасширенныйВызовСервера.ПередОбновлениемИнтерфейса();
	
	ОбновитьИнтерфейс();
		
	ЭтаФорма.ТребуетсяОбновлениеИнтерфейса = Ложь;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовФормы(Форма)
	
	ДоступностьНастроек = Форма.ИспользоватьКадровыйУчетИРасчетЗарплаты;
	
	Форма.Элементы.НастройкаШтатногоРасписания.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаНеполнаяСтавка.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаПереносОстатковОтпуска.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаВоинскийУчет.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаАттестацииСотрудников.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаДистанционнаяРабота.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаМедицинскоеСтрахованиеСотрудников.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаРабочиеМестаОхраныТруда.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаТрудоустройствоПоКвотам.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаПроцессыНаграждения.Доступность = ДоступностьНастроек;
	УстановитьДоступностьЭлементовФормыНастройкиВоинскогоУчета(Форма.Элементы, Форма.НастройкиВоинскогоУчета);
	УстановитьДоступностьЭлементовФормыНастройкиРаботыСКоронавирусом(Форма.Элементы, Форма.НастройкиКадровогоУчета);
	УстановитьДоступностьЭлементовФормыАттестацииСотрудников(Форма);
	
	// ERP начало
	Форма.Элементы.ГруппаКонтролироватьУникальностьТабельныхНомеров.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаИспользоватьПодработки.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаИспользоватьСпециальностиФизическихЛиц.Доступность = ДоступностьНастроек;
	Форма.Элементы.ГруппаНастройкиКадровогоУчетаПравилоФормированияПредставленияЭлементовСправочникаСотрудники.Доступность = ДоступностьНастроек;
	// Конец
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементовФормы(Форма)
	
	УстановитьВидимостьЭлементовФормыАттестацииСотрудников(Форма);
	УстановитьВидимостьЭлементовФормыДистанционнойРаботы(Форма);
	УстановитьВидимостьЭлементовФормыМедицинскогоСтрахованияСотрудников(Форма);
	УстановитьВидимостьЭлементовФормыРабочихМестОхраныТруда(Форма);
	УстановитьВидимостьЭлементовФормыУчитыватьПрерываниеСтажейАвтоматически(Форма);
	УстановитьВидимостьСпособовФормированияИнтервальныхРегистров(Форма);
	УстановитьДоступностьЭлементовФормыМедицинскоеСтрахование(Форма);
	УстановитьДоступностьЭлементовФормыРабочиеМестаОхраныТруда(Форма);
	УстановитьВидимостьЭлементовФормыТрудоустройстваПоКвотам(Форма);
	УстановитьВидимостьЭлементовФормыПроцессыНаграждения(Форма);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовФормыНастройкиВоинскогоУчета(Элементы, НастройкиВоинскогоУчета)

	Элементы.ГруппаНастройкиВоинскогоУчета.Доступность = НастройкиВоинскогоУчета.ИспользоватьВоинскийУчет;
	Элементы.ГруппаВоинскийУчетСоставы.Доступность     = НастройкиВоинскогоУчета.ИспользоватьБронированиеГраждан;

КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовФормыНастройкиРаботыСКоронавирусом(Элементы, НастройкиКадровогоУчета)

	Элементы.ПолучательСтимулирующихВыплатФСС.Доступность = НастройкиКадровогоУчета.ИспользуетсяРаботаСКоронавирусом;

КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовФормыАттестацииСотрудников(Форма)
	
	Если НЕ ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыПриложения.АттестацииСотрудников") Тогда
		Возврат;	
	КонецЕсли;
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ИспользоватьОтдельныйДокументДляФормированияАттестационнойКомиссии", "Доступность", Форма.ИспользоватьАттестацииСотрудников);
	
КонецПроцедуры

&НаСервере
Процедура ПрочитатьУчитыватьПрерываниеСтажейАвтоматически()
	
	Если НЕ ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АвтоматическийРасчетСтажейФизическихЛиц") Тогда
		Возврат;
	КонецЕсли;
	
	МодульАвтоматическийРасчетСтажейФизическихЛиц = ОбщегоНазначения.ОбщийМодуль("АвтоматическийРасчетСтажейФизическихЛиц");
	УчитыватьПрерываниеСтажейАвтоматически = МодульАвтоматическийРасчетСтажейФизическихЛиц.УчитыватьПрерываниеСтажейАвтоматически();
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьЭлементовФормыУчитыватьПрерываниеСтажейАвтоматически(Форма)
	
	Если ОбщегоНазначенияБЗККлиентСервер.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.АвтоматическийРасчетСтажейФизическихЛиц") Тогда
		ВидимостьНастроек = Истина;
	Иначе
		ВидимостьНастроек = Ложь;
	КонецЕсли;
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы,
		"ГруппаУчитыватьПрерываниеСтажейАвтоматически",
		"Видимость",
		ВидимостьНастроек);
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементовФормыАттестацииСотрудников(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ГруппаАттестацииСотрудников", "Видимость", ДоступныАттестацииСотрудников());
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементовФормыДистанционнойРаботы(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ГруппаДистанционнаяРабота", "Видимость",
		ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.КадровыйУчет.ДистанционнаяРабота"));
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьВидимостьСпособовФормированияИнтервальныхРегистров(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы,
		"СпособФормированияИнтервальныхРегистровГруппа",
		"Видимость",
		ЗначениеЗаполнено(Форма.СпособФормированияИнтервальныхРегистров));
		
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементовФормыМедицинскогоСтрахованияСотрудников(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(Форма.Элементы, "ГруппаМедицинскоеСтрахованиеСотрудников", "Видимость", ДоступноМедицинскоеСтрахованиеСотрудников());
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементовФормыРабочихМестОхраныТруда(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы, "ГруппаРабочиеМестаОхраныТруда", "Видимость", Не ДоступнаОхранаТруда());
	
КонецПроцедуры

&НаСервере
Процедура УстановитьВидимостьЭлементовФормыТрудоустройстваПоКвотам(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы,
		"ГруппаТрудоустройствоПоКвотам",
		"Видимость",
		ИспользоватьТрудоустройствоПоКвотам());
	
КонецПроцедуры

&НаСервереБезКонтекста
Функция ЗаданиеВыполнено(ИдентификаторЗадания)
	
	Возврат ДлительныеОперации.ЗаданиеВыполнено(ИдентификаторЗадания);
	
КонецФункции

&НаСервереБезКонтекста
Функция СообщенияФоновогоЗадания(ИдентификаторЗадания)
	
	СообщенияПользователю = Новый Массив;
	ФоновоеЗадание = ФоновыеЗадания.НайтиПоУникальномуИдентификатору(ИдентификаторЗадания);
	Если ФоновоеЗадание <> Неопределено Тогда
		СообщенияПользователю = ФоновоеЗадание.ПолучитьСообщенияПользователю();
	КонецЕсли;
	
	Возврат СообщенияПользователю;
	
КонецФункции

&НаКлиенте
Процедура Подключаемый_ПроверитьВыполнениеЗадания()
	
	Попытка
		Если ФормаДлительнойОперации.Открыта() 
			И ФормаДлительнойОперации.ИдентификаторЗадания = ИдентификаторЗадания Тогда
			Если ЗаданиеВыполнено(ИдентификаторЗадания) Тогда
				ОбновитьПовторноИспользуемыеЗначения();
				ОбновитьПравилоФормированияПредставленияСправочникаСотрудникиНаКлиенте();
				ДлительныеОперацииКлиент.ЗакрытьФормуДлительнойОперации(ФормаДлительнойОперации);
				// ERP начало: 00-00052344
				ПодключитьОбработчикОжиданияОбновленияИнтерфейса();
				// конец
			Иначе
				ДлительныеОперацииКлиент.ОбновитьПараметрыОбработчикаОжидания(ПараметрыОбработчикаОжидания);
				ПодключитьОбработчикОжидания(
					"Подключаемый_ПроверитьВыполнениеЗадания",
					ПараметрыОбработчикаОжидания.ТекущийИнтервал,
					Истина);
			КонецЕсли;
		КонецЕсли;
	Исключение
		ДлительныеОперацииКлиент.ЗакрытьФормуДлительнойОперации(ФормаДлительнойОперации);
		
		СообщенияПользователю = СообщенияФоновогоЗадания(ИдентификаторЗадания);
		Если СообщенияПользователю <> Неопределено Тогда
			Для каждого СообщениеФоновогоЗадания Из СообщенияПользователю Цикл
				СообщениеФоновогоЗадания.Сообщить();
			КонецЦикла;
		КонецЕсли;
		
		ВызватьИсключение;
	КонецПопытки;
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовФормыМедицинскоеСтрахование(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы,
		"ГруппаИспользуютсяУдержанияВМедицинскомСтрахованииСотрудников",
		"Доступность",
		Форма.ИспользоватьМедицинскоеСтрахованиеСотрудников);
	
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьДоступностьЭлементовФормыРабочиеМестаОхраныТруда(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы,
		"ПояснениеИспользоватьРабочиеМестаОхраныТруда",
		"Доступность",
		Форма.ИспользоватьРабочиеМестаОхраныТруда);
	
КонецПроцедуры
	
&НаСервере
Процедура УстановитьВидимостьЭлементовФормыПроцессыНаграждения(Форма)
	
	ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
		Форма.Элементы,
		"ГруппаПроцессыНаграждения",
		"Видимость",
		ИспользоватьТрудоустройствоПоКвотам());
	
КонецПроцедуры

#КонецОбласти

&НаКлиенте
Процедура ОбновитьПравилоФормированияПредставленияСправочникаСотрудникиНаКлиенте()
	
	Если ОбновитьПравилоФормированияПредставленияЭлементовСправочникаСотрудники Тогда
			
		ОбновитьПравилоФормированияПредставленияСправочникаСотрудники();
		ОбновитьПравилоФормированияПредставленияЭлементовСправочникаСотрудники = Ложь;
			
	КонецЕсли;
		
КонецПроцедуры

&НаСервере
Процедура ОбновитьПравилоФормированияПредставленияСправочникаСотрудники()
	
	КадровыйУчетРасширенный.УстановитьПараметрСеансаПравилоФормированияПредставленияЭлементовСправочникаСотрудники();
		
КонецПроцедуры

&НаСервере
Функция ДоступныАттестацииСотрудников()
	
	Возврат ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.АттестацииСотрудников");
	
КонецФункции

&НаСервере
Функция ДоступноМедицинскоеСтрахованиеСотрудников()
	
	Возврат ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.МедицинскоеСтрахование")
		И ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы");
	
КонецФункции

&НаСервере
Функция ДоступнаОхранаТруда()
	
	Возврат ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда")
		И ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы");
	
КонецФункции

&НаСервере
Функция ИспользоватьПодробныеФормыСотрудников()
	
	Возврат ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы")
		И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровыйУчет.СпискиСотрудников");
	
КонецФункции

&НаСервере
Функция ИспользоватьТрудоустройствоПоКвотам()
	
	Возврат ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы")
		И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам");
	
КонецФункции

&НаСервере
Процедура ПрочитатьНастройкиТрудоустройствоПоКвотам()
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда 
		
		МодульТрудоустройствоПоКвотам = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотам");
		
		НастройкаДоступна = МодульТрудоустройствоПоКвотам.ДоступноИзменениеИспользованияКвотДляТрудоустройства();
		
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаТрудоустройствоПоКвотам",
			"Видимость",
			НастройкаДоступна);
		
		Если Не НастройкаДоступна Тогда
			Возврат;
		КонецЕсли;
		
		МодульТрудоустройствоПоКвотам.ПанельЗарплатаКадрыПрочитатьНастройки(ЭтаФорма);
		
	КонецЕсли;
	
КонецПроцедуры

&НаСервере
Процедура ПрочитатьНастройкиПланированиеКвотДляТрудоустройства()
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ТрудоустройствоПоКвотам") Тогда 
		
		МодульТрудоустройствоПоКвотам = ОбщегоНазначения.ОбщийМодуль("ТрудоустройствоПоКвотам");
		
		НастройкаДоступна = МодульТрудоустройствоПоКвотам.ДоступноИзменениеИспользованияПланированияКвотДляТрудоустройства();
		
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаПланированиеКвот",
			"Доступность",
			НастройкаДоступна);
		
		Если Не НастройкаДоступна Тогда
			Возврат;
		КонецЕсли;
		
		МодульТрудоустройствоПоКвотам.ПанельЗарплатаКадрыПрочитатьНастройки(ЭтаФорма);
		
	КонецЕсли;
	
КонецПроцедуры
	
&НаСервере
Функция ИспользоватьПроцессыНаграждения()
	
	Возврат ПолучитьФункциональнуюОпцию("ИспользоватьЗарплатаКадрыКорпоративнаяПодсистемы")
		И ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ПроцессыНаграждения");
	
КонецФункции

&НаСервере
Процедура ПрочитатьНастройкиПроцессыНаграждения()
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ПроцессыНаграждения") Тогда 
		
		МодульПроцессыНаграждения = ОбщегоНазначения.ОбщийМодуль("ПроцессыНаграждения");
		
		НастройкаДоступна = МодульПроцессыНаграждения.ДоступноИзменениеИспользованияПроцессовНаграждения();
		
		ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
			Элементы,
			"ГруппаПроцессыНаграждения",
			"Доступность",
			НастройкаДоступна);
		
		Если Не НастройкаДоступна Тогда
			Возврат;
		КонецЕсли;
		
		МодульПроцессыНаграждения.ПанельЗарплатаКадрыПрочитатьНастройки(ЭтаФорма);
		
	КонецЕсли;
	
КонецПроцедуры

&НаКлиенте
Процедура НастройкаЭДОБЗК(Команда)
	Оповещение = Новый ОписаниеОповещения("ПриИзмененииНастроекЭДОБЗК", ЭтотОбъект);
	ОткрытьФорму("Обработка.ПанельНастроекЭДОБЗК.Форма.Форма", , ЭтотОбъект, Истина, , , Оповещение);
КонецПроцедуры

&НаКлиенте
Процедура ПриИзмененииНастроекЭДОБЗК(Результат, ДополнительныеПараметры) Экспорт
	Если Результат <> Неопределено Тогда
		ОбновитьОписаниеНастроекЭДОБЗК(ЭтотОбъект, Результат);
	КонецЕсли;
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьОписаниеНастроекЭДОБЗК(УправляемаяФорма, НастройкиЭДОБЗК)
	
	ОписанияНастроек = Новый Массив;
	Если НастройкиЭДОБЗК.ИспользуетсяЭДОБЗККабинетСотрудника
		И Не НастройкиЭДОБЗК.ИспользуетсяЭДОБЗКРаботаВРоссии Тогда
		
		ОписанияНастроек.Добавить(НСтр("ru = 'ЭДО используется для обмена документами с сервисом ""1С:Кабинет сотрудника"".'"));
	ИначеЕсли Не НастройкиЭДОБЗК.ИспользуетсяЭДОБЗККабинетСотрудника
		И НастройкиЭДОБЗК.ИспользуетсяЭДОБЗКРаботаВРоссии Тогда
		
		ОписанияНастроек.Добавить(НСтр("ru = 'ЭДО используется для обмена документами с порталом ""Работа в России"".'"));
	ИначеЕсли НастройкиЭДОБЗК.ИспользуетсяЭДОБЗККабинетСотрудника
		И НастройкиЭДОБЗК.ИспользуетсяЭДОБЗКРаботаВРоссии Тогда
		
		ОписанияНастроек.Добавить(НСтр("ru = 'ЭДО используется для обмена документами с сервисом ""1С:Кабинет сотрудника"" и порталом ""Работа в России"".'"));
	Иначе
		ОписанияНастроек.Добавить(НСтр("ru = 'ЭДО не используется.'"));
	КонецЕсли;
	
	Если НастройкиЭДОБЗК.ИспользуетсяЭДОБЗККабинетСотрудника
		Или НастройкиЭДОБЗК.ИспользуетсяЭДОБЗКРаботаВРоссии Тогда
		
		Если НастройкиЭДОБЗК.УведомлениеЗадачами
			И Не НастройкиЭДОБЗК.УведомлениеСистемойВзаимодействия Тогда
			
			ОписанияНастроек.Добавить(НСтр("ru = 'Создаются задания с уведомлениями о необходимости подписания (ознакомления).'"));
		ИначеЕсли Не НастройкиЭДОБЗК.УведомлениеЗадачами
			И НастройкиЭДОБЗК.УведомлениеСистемойВзаимодействия Тогда
			
			ОписанияНастроек.Добавить(НСтр("ru = 'Используется система взаимодействия для уведомлений о необходимости подписания (ознакомления).'"));
		ИначеЕсли НастройкиЭДОБЗК.УведомлениеЗадачами
			И НастройкиЭДОБЗК.УведомлениеСистемойВзаимодействия Тогда
			
			ОписанияНастроек.Добавить(НСтр("ru = 'Создаются задания с уведомлениями о необходимости подписания (ознакомления), используются уведомления системы взаимодействия.'"));
		Иначе
			ОписанияНастроек.Добавить(НСтр("ru = 'Уведомления о необходимости подписания (ознакомления) не используются.'"));
		КонецЕсли;
		
	КонецЕсли;
	
	УправляемаяФорма.ОписаниеНастроекЭДОБЗК = СтрСоединить(ОписанияНастроек, Символы.ПС);
	
КонецПроцедуры

#КонецОбласти

Связанные материалы