Учетная политика / Модуль

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

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

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

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

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

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


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

&НаКлиенте
Процедура ВидТарифаПриИзменении(Элемент)
	
	УстановитьПодсказкуВидаТарифаПриИзменении(ЭтаФорма);
		
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

&НаКлиенте
Процедура ТарифСтраховыхВзносовИсторияЗавершение(Отказ, ДополнительныеПараметры) Экспорт 

	Если Не Отказ Тогда 
		ОткрытьФормуРедактированияИстории("ПрименяемыеТарифыСтраховыхВзносов", ГоловнаяОрганизация, ЭтотОбъект, ОбособленноеПодразделение);
	КонецЕсли; 
	
КонецПроцедуры


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

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

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

&НаКлиенте
Процедура СтавкаВзносаНаСтрахованиеОтНесчастныхСлучаевИсторияЗавершение(Отказ, ДополнительныеПараметры) Экспорт 

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


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

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


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

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

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

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


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

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

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

&НаКлиенте
Процедура СохранитьИЗакрытьНаКлиенте(ЗакрытьФорму = Истина) Экспорт 

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

&НаКлиенте
Процедура СохранитьИЗакрытьНаКлиентеЗавершение(Отказ, ДополнительныеПараметры) Экспорт 

	Если Не Отказ И Открыта() Тогда
		
		Модифицированность = Ложь;
		Если ДополнительныеПараметры.ЗакрытьФорму Тогда
			Закрыть();
		КонецЕсли; 
		
	КонецЕсли; 
	
КонецПроцедуры

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

&НаКлиенте
Процедура СохранитьДанныеЗавершение(Отказ, ОповещениеЗавершения) Экспорт  
	
	СохранитьДанныеНаСервере(Отказ);
	
	Если НЕ Отказ И ОповещениеЗавершения <> Неопределено Тогда 
		ВыполнитьОбработкуОповещения(ОповещениеЗавершения, Отказ);
	КонецЕсли;
	
КонецПроцедуры

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

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

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

	ОбновитьПовторноИспользуемыеЗначения();
	
	Модифицированность = Ложь;
	
КонецПроцедуры

&НаСервере
Процедура ЗаписатьНаСервере()

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

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

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

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

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

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

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

&НаКлиенте
Процедура СохранитьИЗакрыть(Результат, ДополнительныеПараметры) Экспорт 
	
	Отказ = Ложь;
	СохранитьДанныеНаСервере(Отказ);
	
	Если Не Отказ Тогда
		Закрыть();
	КонецЕсли;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

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

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

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