Сотрудники / Форма элемента / Модуль формы

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

&НаКлиенте
Перем ОткрытыеФормы Экспорт;

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


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

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

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

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

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

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

	СотрудникиКлиент.СотрудникиПриЗакрытии(ЭтотОбъект);

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

&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)

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

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

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

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

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

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

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

&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)

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

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

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

&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
	
	СотрудникиКлиент.СотрудникиПослеЗаписи(ЭтотОбъект, ПараметрыЗаписи);
	
КонецПроцедуры

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

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ЭЛЕМЕНТОВ ФОРМЫ

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

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

&НаКлиенте
Процедура ДекорацияКолокольчикАктивныйНажатие(Элемент)
	ОткрытьФормуНапоминаниеОДнеРождения();
КонецПроцедуры

&НаКлиенте
Процедура ДекорацияКолокольчикНеАктивныйНажатие(Элемент)
	ОткрытьФормуНапоминаниеОДнеРождения();
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_ПолеФормыНажатие(Элемент, СтандартнаяОбработка = Ложь)

	СотрудникиКлиентРасширенный.ОбработатьСобытиеДополнительногоПоляФормыНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);

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

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

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ПОДСИСТЕМЫ "КОНТАКТНАЯ ИНФОРМАЦИЯ"

&НаКлиенте
Процедура Подключаемый_ПояснениеНажатие(Элемент, СтандартнаяОбработка = Ложь)

	СотрудникиКлиент.ПояснениеНажатие(Элемент, СтандартнаяОбработка);

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

////////////////////////////////////////////////////////////////////////////////
// Работа с другими сотрудниками.

&НаКлиенте
Процедура Подключаемый_ОткрытьФормуСотрудника(Команда)

	СотрудникиКлиент.ОткрытьФормуСотрудника(ЭтотОбъект, Команда);

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

&НаКлиенте
Процедура Подключаемый_ДругиеМестаРаботы(Команда)

	СотрудникиКлиент.ОткрытьФормуСпискаМестРаботыФизическогоЛица(ФизическоеЛицоСсылка, ЭтотОбъект);

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

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


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

// ИнтеграцияС1САрхивом

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

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

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

// Конец ИнтеграцияС1САрхивом

&НаКлиенте
Процедура ОформитьПриемНаРаботу(Команда)

	СотрудникиКлиент.ОформитьНаОсновании(ЭтотОбъект, СотрудникСсылка, "Документы.ПриемНаРаботу");

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

&НаКлиенте
Процедура ОформитьДоговорРаботыУслуги(Команда)

	СотрудникиКлиент.ОформитьНаОсновании(ЭтотОбъект, СотрудникСсылка, "Документы.ДоговорРаботыУслуги");

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

&НаКлиенте
Процедура ОформитьДоговорАвторскогоЗаказа(Команда)

	СотрудникиКлиент.ОформитьНаОсновании(ЭтотОбъект, СотрудникСсылка, "Документы.ДоговорАвторскогоЗаказа");

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

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

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

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

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

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

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

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


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

// СтандартныеПодсистемы.КонтрольВеденияУчета

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

// Конец СтандартныеПодсистемы.КонтрольВеденияУчета

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

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

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

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

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

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

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

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

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

// ТехнологияСервиса.ИнформационныйЦентр
&НаКлиенте
Процедура Подключаемый_НажатиеНаИнформационнуюСсылку(Элемент)
	ИнформационныйЦентрКлиент.НажатиеНаИнформационнуюСсылку(ЭтотОбъект, Элемент);
КонецПроцедуры

&НаКлиенте
Процедура Подключаемый_НажатиеНаСсылкуВсеИнформационныеСсылки(Элемент)
	ИнформационныйЦентрКлиент.НажатиеНаСсылкуВсеИнформационныеСсылки(ИмяФормы);
КонецПроцедуры
// Конец ТехнологияСервиса.ИнформационныйЦентр

&НаСервере
Функция ПравилоФормированияПредставления() Экспорт
	Возврат ПараметрыСеанса.ПравилоФормированияПредставленияЭлементовСправочникаСотрудники;
КонецФункции

&НаСервере
Процедура ПрочитатьДанныеСвязанныеСФизлицом() Экспорт

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

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

	СотрудникиКлиент.ДополнитьПредставлениеСотрудникаПриИзменении(ЭтотОбъект);

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

&НаСервере
Процедура ОбработкаИзмененияДанныхОРабочемМестеНаСервере(ПараметрСотрудник) Экспорт

	СотрудникиФормы.ОбработкаИзмененияДанныхОРабочемМесте(ЭтотОбъект, ПараметрСотрудник, "ДругиеРабочиеМеста");

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

&НаСервере
Процедура ТекущаяОрганизацияПриИзмененииНаСервере() Экспорт

	СотрудникиФормы.ПриИзмененииОрганизации(ЭтотОбъект);

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

&НаСервере
Процедура ОбновитьДанныеФизическогоЛицаНаСервере() Экспорт

	СотрудникиФормы.ОбновитьДанныеФизическогоЛица(ЭтотОбъект);

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

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

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

&НаКлиенте
Процедура НазначениеПодработкиНажатие(Элемент, СтандартнаяОбработка)
	ПоказатьЗначение(, НазначениеПодработки);
КонецПроцедуры

////////////////////////////////////////////////////////////////////////////////
// При изменении данных физлица / сотрудника.

&НаКлиенте
Процедура ТекущаяОрганизацияПриИзменении(Элемент)

	ТекущаяОрганизацияПриИзмененииНаСервере();

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

&НаКлиенте
Процедура ФизлицоИННПриИзменении(Элемент)

	СотрудникиКлиент.СотрудникиИННПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура ФизлицоСтраховойНомерПФРПриИзменении(Элемент)

	СотрудникиКлиент.СотрудникиСтраховойНомерПФРПриИзменении(ЭтотОбъект, Элемент);

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

&НаКлиенте
Процедура ВАрхивеПриИзменении(Элемент)

	СотрудникиКлиентСервер.УстановитьИнфоНадпись(ЭтотОбъект, ОбщегоНазначенияКлиент.ДатаСеанса());

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

&НаКлиенте
Процедура ДатаПриемаПриИзменении(Элемент)

	СотрудникиКлиентСервер.УстановитьИнфоНадпись(ЭтотОбъект, ОбщегоНазначенияКлиент.ДатаСеанса());

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

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

	СотрудникиКлиентСервер.УстановитьИнфоНадпись(ЭтотОбъект, ОбщегоНазначенияКлиент.ДатаСеанса());

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

&НаКлиенте
Процедура ТекущаяТарифнаяСтавкаПриИзменении(Элемент)

	СотрудникиКлиентСервер.УстановитьИнфоНадпись(ЭтотОбъект, ОбщегоНазначенияКлиент.ДатаСеанса());

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

&НаКлиенте
Процедура УточнениеНаименованияПриИзменении(Элемент)

	СотрудникиКлиент.СформироватьНаименованиеСотрудника(ЭтотОбъект);

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

&НаКлиенте
Процедура ВидЗанятостиПриИзменении(Элемент)

	СотрудникиКлиент.ПроверитьКонфликтыВидаЗанятостиССуществующимиСотрудниками(Сотрудник.Ссылка, Сотрудник.ФизическоеЛицо, ТекущаяОрганизация, Сотрудник.ВидЗанятости, ДатаПриема);

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

////////////////////////////////////////////////////////////////////////////////
// Редактирование ФИО

&НаКлиенте
Процедура ИзменитьФИО(Команда)

	СотрудникиКлиент.СотрудникИзменилФИОНажатие(ЭтотОбъект);

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

&НаКлиенте
Процедура ФИОФизическихЛицИстория(Команда)

	СотрудникиКлиент.СотрудникиОткрытьФормуРедактированияИстории("ФИОФизическихЛиц", ЭтотОбъект);

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

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

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

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

&НаКлиенте
Процедура ФизлицоПолПриИзменении(Элемент)

	СотрудникиКлиент.ЗаблокироватьФизическоеЛицоПриРедактировании(ЭтотОбъект);

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

////////////////////////////////////////////////////////////////////////////////
// Редактирование места рождения.

&НаКлиенте
Процедура ФизлицоДатаРожденияПриИзменении(Элемент)

	СотрудникиКлиент.ЗаблокироватьФизическоеЛицоПриРедактировании(ЭтотОбъект);
	СотрудникиКлиентСервер.УстановитьПодсказкуКДатеРождения(ЭтотОбъект);
	
КонецПроцедуры

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

	СотрудникиКлиент.ЗаблокироватьФизическоеЛицоПриРедактировании(ЭтотОбъект);

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

////////////////////////////////////////////////////////////////////////////////
// Расширенные подсистемы

// Места работы

&НаКлиенте
Процедура ИсторияИзмененийМестаРаботы(Команда)

	ПараметрыОткрытия = Новый Структура("СсылкаНаСотрудника", СотрудникСсылка);
	ОткрытьФорму("Справочник.Сотрудники.Форма.ФормаИсторииИзмененияМестаРаботы", ПараметрыОткрытия, ЭтотОбъект);

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

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

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

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

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

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

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

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

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

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

////////////////////////////////////////////////////////////////////////////////
// Работа с дополнительными формами.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#Область НапоминанияСотрудника

&НаКлиенте
Процедура ОткрытьФормуНапоминаниеОДнеРождения()

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

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

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

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

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

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

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

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

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

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

// СтандартныеПодсистемы.СклонениеПредставленийОбъектов
&НаКлиентеНаСервереБезКонтекста
Функция ПараметрыСклонения(ФизическоеЛицо)
	ПараметрыСклонения = СклонениеПредставленийОбъектовКлиентСервер.ПараметрыСклонения();
	ПараметрыСклонения.ЭтоФИО = Истина;
	ПараметрыСклонения.Пол    = ?(
		ЗначениеЗаполнено(ФизическоеЛицо.Пол),
		?(ФизическоеЛицо.Пол = ПредопределенноеЗначение("Перечисление.ПолФизическогоЛица.Мужской"), 1, 2),
		Неопределено);
	Возврат ПараметрыСклонения;
КонецФункции
// Конец СтандартныеПодсистемы.СклонениеПредставленийОбъектов

////////////////////////////////////////////////////////////////////////////////
// ПРОЦЕДУРЫ ПОДСИСТЕМЫ "АНАЛИЗ ТЕКУЧЕСТИ ПЕРСОНАЛА"

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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