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

файл

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

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

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

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

&НаСервере
Процедура ОбновитьФормуПоНастройкам(ПрочиеНастройки)

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

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

&НаСервере
Процедура ОбработкаОповещенияНаСервере()
	
	ПрочитатьНастройки();

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	Константы.УчитыватьОплачиваемоеНерабочееВремяИСуммыВСреднемЗаработке.Установить(ЗначениеНастройки);	

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	ЗаписатьНастройкиНаКлиенте("НастройкиБюджетныхУчреждений");

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыПоказателиСовокупнойТарифнойСтавки

&НаКлиенте
Процедура ПоказателиСовокупнойТарифнойСтавкиВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	ВыбратьПоказателейСовокупнойТарифнойСтавки();
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказателиСовокупнойТарифнойСтавкиВыбранныеВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	ОтменитьВыборПоказателейСовокупнойТарифнойСтавки();
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказателиСовокупнойТарифнойСтавкиОтменить(Команда)
	
	ОтменитьВыборПоказателейСовокупнойТарифнойСтавки();
	
КонецПроцедуры

&НаКлиенте
Процедура ПоказателиСовокупнойТарифнойСтавкиВыбрать(Команда)
	
	ВыбратьПоказателейСовокупнойТарифнойСтавки();
	
КонецПроцедуры

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

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

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

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

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

&НаСервере
Процедура ПрочитатьНастройки()

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура РедактированиеПрочихНастроекРасчетаЗарплаты(Команда)

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

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

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

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

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

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

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

#Область РедактированиеМесяцаСтрокой

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

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

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

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

&НаКлиенте
Процедура ДатаПримененияСтатейРасходовПо209нСтрокойАвтоПодбор(Элемент, Текст, ДанныеВыбора, Ожидание, СтандартнаяОбработка)
	ЗарплатаКадрыКлиент.ВводМесяцаАвтоПодборТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры

&НаКлиенте
Процедура ДатаПримененияСтатейРасходовПо209нСтрокойОкончаниеВводаТекста(Элемент, Текст, ДанныеВыбора, СтандартнаяОбработка)
	ЗарплатаКадрыКлиент.ВводМесяцаОкончаниеВводаТекста(Текст, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры

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

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

&НаКлиенте
Процедура ЗаписатьДатаПримененияСтатейРасходовПо209н()
	
	ЗаписатьНастройкиНаКлиенте("НастройкиБюджетныхУчреждений");
	
КонецПроцедуры

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

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

#Область ERP_КонтрольОстатковПриПеречисленииНДФЛ

&НаКлиенте
Процедура ДатаНачалаКонтроляОстатковПриПеречисленииНДФЛПриИзменении(Элемент)
	ДатаНачалаКонтроляОстатковПриПеречисленииНДФЛ = НачалоМесяца(ДатаНачалаКонтроляОстатковПриПеречисленииНДФЛ);
	ЗаписатьДатуНачалаКонтроляОстатковПриПеречисленииНДФЛ(ДатаНачалаКонтроляОстатковПриПеречисленииНДФЛ);
КонецПроцедуры

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

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

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

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