Штатное расписание / Модуль объекта

файл
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОписаниеПеременных

Перем ОтчетИнициализирован;
	
#КонецОбласти

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

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

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

		КонецЕсли;
	
		Данные = Новый ДеревоЗначений;

		МакетКомпоновки = ЗарплатаКадрыОтчеты.МакетКомпоновкиДанныхДляКоллекцииЗначений(СхемаКомпоновкиДанных, НастройкиОтчета);
		
		ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
		ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , , Истина);

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

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

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

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


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

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

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

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

////////////////////////////////////////////////////////////////////////////////
// Штатное расписание на подпись.

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

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

Процедура УстановитьЗначениеПараметраКоличествоСтавок(Макет, КоличествоСтавок)
	
	Макет.Параметры.КоличествоСтавок = Формат(КоличествоСтавок, УправлениеШтатнымРасписанием.ФорматКоличестваСтавок());
	
КонецПроцедуры

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

#Область Инициализация

ОтчетИнициализирован = Ложь;

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

#Иначе
ВызватьИсключение НСтр("ru = 'Недопустимый вызов объекта на клиенте.'");
#КонецЕсли

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