Должности / Форма элемента / Модуль формы

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

&НаКлиенте
Процедура ИсключенаИзШтатногоРасписанияПриИзменении(Элемент)
	
	УстановитьДоступностьЭлементов(ЭтаФорма, Объект);
	
	Если Не Объект.ИсключенаИзШтатногоРасписания Тогда
		Объект.ДатаИсключения = '00010101';
	ИначеЕсли Объект.ДатаИсключения = '00010101' Тогда
		Объект.ДатаИсключения = КонецМесяца(ОбщегоНазначенияКлиент.ДатаСеанса()) + 1;
	КонецЕсли;	

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиенте
Процедура Подключаемый_СвойстваДолжностейГосударственнойСлужбыПриИзменении(Элемент)

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

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

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

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

&НаКлиенте
Процедура Подключаемый_ПриИзмененииСтрокиОтчетностиМониторинга(Элемент)
	
	Модифицированность = Истина;
	
КонецПроцедуры

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
	ПодключаемыеКомандыКлиент.ВыполнитьКоманду(ЭтотОбъект, Команда, Объект);
КонецПроцедуры

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

&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
	ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

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

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

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

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

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

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


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

&НаСервере
Процедура РеквизитыМедицинскогоРегистраЭлементПриИзмененииНаСервере(ИмяЭлемента)

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

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

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

// СтандартныеПодсистемы.Свойства

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

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

// Конец СтандартныеПодсистемы.Свойства

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

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

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

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Функция ДатаВводаПоУмолчанию(ДатаСеанса)
	
	Возврат НачалоГода(ДатаСеанса);
	
КонецФункции

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

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

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

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

#Область АдаптацияУвольнение

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

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

#Область ЗаписьЭлемента

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

&НаКлиенте
Процедура ЗаписатьНаКлиенте(ЗакрытьПослеЗаписи, ОповещениеЗавершения = Неопределено) Экспорт 

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

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

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

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

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

&НаСервере
Процедура ПриИзмененииТрудовойФункции()
	
	Объект.ОКПДТРКод       = "";
	Объект.ОКПДТРКЧ        = "";
	Объект.ОКПДТРКатегория = "";
	Объект.ОКЗКод          = "";
	
	ПрочитатьДанныеТрудовойФункции();
	
КонецПроцедуры

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

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

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

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

#Область ОбработчикиСобытийЭлементовТаблицыФормыНормыВыдачиСИЗ

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

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

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

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

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

#Область СредстваИндивидуальнойЗащиты

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

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

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

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

#Область СредстваИндивидуальнойЗащиты

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

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

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

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

&НаКлиенте
Процедура Подключаемый_СкопироватьНормыВыдачиЗавершение(Результат, ДополнительныеПараметры) Экспорт
	СредстваИндивидуальнойЗащитыСкопироватьНормыВыдачиНаСервере(Результат, ДополнительныеПараметры);	
КонецПроцедуры

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

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

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

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