Перевод к другому работодателю / Форма документа / Модуль формы

файл

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

&НаКлиенте
Процедура НоваяОрганизацияПриИзменении(Элемент)
	
	НоваяОрганизацияПриИзмененииНаСервере();
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

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

////////////////////////////////////////////////////////////////////////////////
// ОБРАБОТЧИКИ СОБЫТИЙ ТАБЛИЧНОЙ ЧАСТИ НАЧИСЛЕНИЯ

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

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

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

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

// ЗарплатаКадрыПодсистемы.ПодписиДокументов

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

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

// Конец ЗарплатаКадрыПодсистемы.ПодписиДокументов

// СтандартныеПодсистемы.УчетОригиналовПервичныхДокументов
&НаКлиенте
Процедура Подключаемый_ДекорацияСостояниеОригиналаНажатие()

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

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


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

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

#Область ОбработчикиСобытийПроцессыОбработкиДокументов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьНадписьСтроки(Надпись, НачалоНадписи, Строка, Тип)
	Если ЗначениеЗаполнено(Строка.Результат) Тогда
		ПредставлениеРезультата = ПредставлениеРезультата(Строка);
		ДополнениеПредставления = ДополнениеПредставленияРезультата(Строка, Тип);
		Надпись = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 %2 %3", НачалоНадписи, ПредставлениеРезультата, ДополнениеПредставления);	
	КонецЕсли;
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьОтветственногоСтроки(Ответственный, Строка)
	Если ЗначениеЗаполнено(Строка.Ответственный) Тогда
		Ответственный = НСтр("ru = 'Отв'") + ".: " + Строка.Ответственный;
	Иначе
		Ответственный = "";
	КонецЕсли;
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция ПредставлениеРезультата(Строка)
	
	Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("(%1 от %2)", Строка.НомерДокумента, Формат(Строка.ДатаДокумента, "ДФ='dd MMM yyyy'"))	
	
КонецФункции

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

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


#Область СоздатьУвольнение

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

&НаКлиенте
Функция МожноСоздатьУвольнение()
	
	Возврат ЗначениеЗаполнено(Объект.Сотрудник) И
			ЗначениеЗаполнено(Объект.Организация) И
			ЗначениеЗаполнено(Объект.ДатаУвольнения) И
			ЗначениеЗаполнено(Объект.СтатьяТКРФ);
			
КонецФункции

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

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

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


#Область СоздатьИсходящуюСправкуОЗаработке

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

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

&НаКлиенте
Функция МожноСоздатьИсходящуюСправкуОЗаработке()
	
	Возврат ЗначениеЗаполнено(Объект.Сотрудник) И
			ЗначениеЗаполнено(Объект.Организация) И
			ЗначениеЗаполнено(Объект.ДатаУвольнения);
			
КонецФункции

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

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

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


#Область СоздатьПриемНаРаботу

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

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

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

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

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

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

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


#Область СоздатьВходящуюСправкуОЗаработке

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

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

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

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

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

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

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

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

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


#Область СоздатьВводНачальныхОстатковОтпусков

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

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

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

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

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

&НаКлиенте
Процедура ДополнитьОстаткамиОтпусковСотрудника(ЗначенияЗаполненияВводаНачальныхОстатковОтпусков)
	
	ДатаОстатков = ДатаОстатковОтпусков(Объект.ДатаУвольнения, Объект.ДатаПриема);
	ЗначенияЗаполненияВводаНачальныхОстатковОтпусков.Вставить("АдресОстатковОтпускаВХранилище", ОстаткиОтпусковСотрудникаНаДату(Объект.Сотрудник, ДатаОстатков));
		
КонецПроцедуры

&НаКлиентеНаСервереБезКонтекста
Функция ДатаОстатковОтпусков(ДатаУвольнения, ДатаПриема)
	
	Возврат ?(ЗначениеЗаполнено(ДатаУвольнения), ДатаУвольнения, ДатаПриема - 86400);
	
КонецФункции

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

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


#Область ПодобратьНовыеКадровыеДанные

&НаСервере
Процедура ПодобратьНовыеКадровыеДанные()
	
	Поля = "Подразделение,Должность,КоличествоСтавок,ГрафикРаботы,Организация";
	ДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Ложь, Объект.Сотрудник, Поля, НачалоДня(Объект.ДатаУвольнения) - 1);
	Если ДанныеСотрудников.Количество() > 0 Тогда
		КадровыеДанныеСотрудника = ДанныеСотрудников[0];
		// Если дата приема не заполнена, установим следующую после даты увольнения.
		Если НЕ ЗначениеЗаполнено(Объект.ДатаПриема) И ЗначениеЗаполнено(Объект.ДатаУвольнения) Тогда
			Объект.ДатаПриема = КонецДня(Объект.ДатаУвольнения)+1;
		КонецЕсли;
		
		// Подберем по наименованию и заполним новое подразделение.
		Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.Подразделение) И НЕ ЗначениеЗаполнено(Объект.Подразделение) Тогда
			Объект.Подразделение = ПодобратьНовоеПодразделение(Объект.НоваяОрганизация, КадровыеДанныеСотрудника.Подразделение);
		КонецЕсли;
		
		// Заполним новую должность
		Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.Должность) И НЕ  ЗначениеЗаполнено(Объект.Должность) Тогда
			Объект.Должность = КадровыеДанныеСотрудника.Должность;
		КонецЕсли;
		
		// Заполним новую позицию штатного расписания.
		ИспользоватьШтатноеРасписание = ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание");
		Если ИспользоватьШтатноеРасписание И НЕ ЗначениеЗаполнено(Объект.ДолжностьПоШтатномуРасписанию) И ЗначениеЗаполнено(Объект.Подразделение) И ЗначениеЗаполнено(Объект.Должность) Тогда
			Объект.ДолжностьПоШтатномуРасписанию = ПодобратьНовуюДолжностьПоШтатномуРасписанию(Объект.Подразделение, Объект.Должность);
		КонецЕсли;
		
		// Заполним новый график
		Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ГрафикРаботы) И НЕ ЗначениеЗаполнено(Объект.ГрафикРаботы) Тогда
			Объект.ГрафикРаботы = КадровыеДанныеСотрудника.ГрафикРаботы;
		КонецЕсли;
		
		// Заполним новое количество ставок.
		Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.КоличествоСтавок) И НЕ ЗначениеЗаполнено(Объект.КоличествоСтавок) Тогда
			Объект.КоличествоСтавок = КадровыеДанныеСотрудника.КоличествоСтавок;
		КонецЕсли;
	КонецЕсли;
	
	ПодобратьНовыеНачисленияСотрудника();
	ПодобратьНовыйАвансСотрудника();
	
КонецПроцедуры	

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

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


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

&НаСервере
Процедура ПодобратьНовыйАвансСотрудника()
	Если ДоступныПлановыеНачисления Тогда
		
		УстановитьПривилегированныйРежим(Истина);
		
		ТаблицаСотрудников = ТаблицаСотрудников(Объект.ДатаУвольнения - 1);
		
		ДанныеОбАвансе = РасчетЗарплатыРасширенный.АвансыСотрудников(ТаблицаСотрудников, Объект.Ссылка);
		
		Если ДанныеОбАвансе.Количество() > 0 Тогда
			Объект.СпособРасчетаАванса = ДанныеОбАвансе[0].СпособРасчетаАванса;
			Объект.Аванс = ДанныеОбАвансе[0].Аванс;
		КонецЕсли;
		
	КонецЕсли
КонецПроцедуры	

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

&НаСервере
Процедура ЗаполнитьРазрядПоУмолчанию()

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

&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьПоказРазмераАванса(Форма)
	Если Форма.ОграниченияНаУровнеЗаписей.ЧтениеБезОграничений Тогда
		РасчетЗарплатыКлиентСервер.УстановитьПоказРазмераАванса(Форма);
	КонецЕсли;
КонецПроцедуры	

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

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

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

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

&НаСервере
Процедура УстановитьВидимостьРасчетныхПолей()

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

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

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

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

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

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

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

&НаСервере
Функция ОграничениеТипаОснованияУвольнения()
	
	ТипОснования = ТипОснованияУвольнения();
	ОграничениеТипа = Новый ОписаниеТипов(ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(ТипОснования));
	
	Возврат ОграничениеТипа;
	
КонецФункции

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

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

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

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

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

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

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