Утверждение тарифной группы / Модуль менеджера

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

#Область ПрограммныйИнтерфейс

// СтандартныеПодсистемы.ВерсионированиеОбъектов

// Определяет настройки объекта для подсистемы ВерсионированиеОбъектов.
//
// Параметры:
//  Настройки - Структура - настройки подсистемы.
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт

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

// Конец СтандартныеПодсистемы.ВерсионированиеОбъектов

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

#Область СлужебныйПрограммныйИнтерфейс

#Область ОбработчикиПравилРегистрации

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

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

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

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

#Область Печать

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	// Приказ об изменении тарифной сетки.
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
	КомандаПечати.Идентификатор = "ПФ_MXL_ПриказОбИзмененииТарифнойСетки";
	КомандаПечати.Представление = НСтр("ru = 'Печать'");
	КомандаПечати.Порядок = 10;
	КомандаПечати.ПроверкаПроведенияПередПечатью = Истина;
	
КонецПроцедуры

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

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

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

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

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

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

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

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

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

#КонецЕсли

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