1. Krey__ 07.12.18 16:02 Сейчас в теме

Как вывести определенное начисление

Помогите вывести начисление ПроцентНадбавкиЗаВредность.
Оклад получается отдельно, но он есть в общем модуле
Функция ПечатнаяФормаТ5(Макет, МассивОбъектов, ОбъектыПечати)
	
	ДокументРезультат = Новый ТабличныйДокумент;
	НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;
	
	ДокументРезультат.КлючПараметровПечати = "ПараметрыПечати_ПриказОПереводе";
	
	//
	// тАЬЛИЦА НАЧИСЛЕНИЙ - ИНИЦИАЛИЗАЦИЯ
	ТаблицаНачислений = Новый ТаблицаЗначений;
	ТаблицаНачислений.Колонки.Добавить("Сотрудник", Новый ОписаниеТипов("СправочникСсылка.Сотрудники")); 
	ТаблицаНачислений.Колонки.Добавить("Начисление", Новый ОписаниеТипов("Строка"));
	ТаблицаНачислений.Колонки.Добавить("Размер", , Новый ОписаниеТипов("Строка"));
	
	// Ура ! получилось вывести в ТЗ плановые начислений в нормальном виде!!! начисления в но
	
	МассивДанныхЗаполнения = ПолучитьДанныеДляПечатиКадровогоПриказаТ5(МассивОбъектов);	
	
	ВывестиДанныеКадровогоПриказаВТабличныйДокумент(Макет, ДокументРезультат, МассивДанныхЗаполнения, ОбъектыПечати);
	
	Возврат ДокументРезультат;
	
КонецФункции
Показать


Функция ПолучитьДанныеДляПечатиКадровогоПриказаТ5(МассивОбъектов)
	
	НастройкиПечатныхФорм  = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм();
	
	Выборка = СформироватьЗапросДляТ5(МассивОбъектов).Выбрать();
	
	МассивПараметров = Новый Массив;
	
	Пока  Выборка.Следующий() Цикл
		
		Параметры = ПараметрыПриказаТ5();		
		
		КадровыйУчет.ЗаполнитьПараметрыКадровогоПриказа(Параметры, Выборка);
		
		РезультатСклонения = "";
		Если ФизическиеЛицаЗарплатаКадры.Просклонять(Параметры.Работник, 4, РезультатСклонения, Параметры.Пол) Тогда
			Параметры.Работник	= РезультатСклонения
		КонецЕсли;
		
		Если НастройкиПечатныхФорм.ВыводитьПолнуюИерархиюПодразделений
			И ЗначениеЗаполнено(Параметры.НовоеПодразделение) Тогда
			
			Параметры.НовоеПодразделение = Параметры.НовоеПодразделение.ПолноеНаименование();
			
		КонецЕсли;
		
		ЦелаяЧасть = Цел(Выборка.ТарифнаяСтавка);
		Параметры.ОкладТарифнаяСтавкаЦелаяЧасть = ЦелаяЧасть;
		ДробнаяЧасть = Выборка.ТарифнаяСтавка - ЦелаяЧасть;
		Параметры.ОкладТарифнаяСтавкаДробнаяЧасть = ?(ДробнаяЧасть = 0, "00", ДробнаяЧасть*100);
		
		
		Если ЗначениеЗаполнено(Параметры.НовыйРазрядКатегория) Тогда
			Параметры.НовыйРазрядКатегория = ", " + Параметры.НовыйРазрядКатегория;
		КонецЕсли; 
		
		МассивПараметров.Добавить(Параметры);
		
	КонецЦикла;
	
	Возврат МассивПараметров;

КонецФункции
Показать


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


	Возврат Параметры;
	
КонецФункции
Показать


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

			

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


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

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


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

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


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

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


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

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

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

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

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

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

Функция ОписаниеСоставаНачислений() Экспорт
	
	ОписаниеСостава = Новый Структура("ПоказательТариф,Тариф,ОписаниеОклада,ОписаниеНадбавок");
	ОписаниеСостава.Вставить("ПоказательОкладТариф", "");
	ОписаниеСостава.Вставить("ОкладТариф", 0);
	ОписаниеСостава.Вставить("ОписаниеОклада", "");
	ОписаниеСостава.Вставить("ОписаниеНадбавок", "");

	Возврат ОписаниеСостава;
	
КонецФункции
Показать


Простите если что-то не так или не то. Не ругайтесь только тк новичок.
Ответы
Избранное Подписка Сортировка: Древо
2. user614822 22 07.12.18 16:23 Сейчас в теме
Ты начни выводить , мы тебя поправим....
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Москва
зарплата от 80 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Senior 1C Developer ЛЮБОЙ ГОРОД
Москва
зарплата от 80 000 руб.
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству