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С НОВОСИБИРСК
Новосибирск
зарплата до 130 000 руб.
Полный день

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



Руководитель проектов 1С
Санкт-Петербург
По совместительству