Панель настроек зарплата кадры / Особенности государственного учреждения / Модуль формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ИспользоватьВыплатыПоДоговорамОпекиПриИзменении(Элемент)
	
	ОбновитьФормуПоНастройкам(ЭтаФорма);
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ЗаписатьНастройки(Команда)
	
	ЗаписатьНастройкиНаКлиенте();
	
КонецПроцедуры

&НаКлиенте
Процедура Отмена(Команда)
	
	Модифицированность = Ложь;
	Закрыть();
	
КонецПроцедуры

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

&НаКлиенте
Процедура НачисленияПреподавателейВыбрать(Команда)
	
	Если Элементы.НачисленияПреподавателей.ВыделенныеСтроки.Количество() > 0 Тогда
		УстановитьВыборНачисленияПреподавателей(Элементы.НачисленияПреподавателей.ВыделенныеСтроки, Истина);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

&НаКлиенте
Процедура ВыключитьНастройкиМуниципальнойСлужбы()

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

&НаКлиенте
Процедура ВыключитьНастройкиГосударственнойСлужбы()

	ИспользоватьГосударственнуюСлужбу = Ложь;
	ПорядокРасчетаОтпусковДолжностейГражданскойСлужбы = 0;
	ИспользоватьРасчетДенежногоСодержанияСудей = Ложь;
	ПорядокРасчетаОтпусковСудей = 0;
	ИспользоватьГосударственныеДолжности = Ложь;
	ПорядокРасчетаОтпусковГосударственныхДолжностей = 0;
	ИспользоватьРасчетДенежногоСодержанияПрокуроров = Ложь;
	ВыбиратьВариантРасчетаСреднегоГосслужащих = Ложь;
	ИспользоватьВыгрузкуВРеестрГосслужащих = Ложь;
	ВыплатыТерриториальнымОрганамФедеральныхГосударственныхОрганов = Ложь;
	ВыключитьНастройкуПротиводействиеКоррупции();

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

&НаКлиенте
Процедура ВыключитьНастройкиВоеннойСлужбы()

	ИспользоватьВоеннуюСлужбу = Ложь;
	РасчетДенежногоДовольствияВоеннослужащих = 0;
	ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИсполнительнойВласти = Ложь;
	ИспользоватьРасчетДенежногоДовольствияВоеннослужащих = Ложь;
	ИспользоватьРасчетДенежногоДовольствияВоеннослужащихПоПризыву = Ложь;
	ПремияЗаДВСОРассчитываетсяПоОкладуНаНачалоМесяца = Ложь;
	ОграничениеПособияВоеннослужащимВключаетРК = Ложь;
	РазрешеноСовместительствоВоеннослужащимПоКонтракту = Ложь;
	ВыплачиватьАвансыВоеннослужащимПоКонтракту = Ложь;
	ИспользоватьВыплатыБывшимВоеннослужащим = Ложь;

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

&НаКлиенте
Процедура ВыключитьНастройкуПротиводействиеКоррупции()
	Если Не ИспользоватьМуниципальнуюСлужбу И Не ИспользоватьГосударственнуюСлужбу Тогда
		ИспользоватьПротиводействиеКоррупции = Ложь;
	КонецЕсли;
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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