Кадровый перевод / Модуль менеджера

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

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

#Область ДляВызоваИзДругихПодсистем

// СтандартныеПодсистемы.УправлениеДоступом

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

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

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

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

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

// Сторнирует документ по учетам. Используется подсистемой исправления документов.
//
// Параметры:
//  Движения				 - КоллекцияДвижений, Структура	 - Коллекция движений исправляющего документа в которую будут добавлены сторно стоки.
//  Регистратор				 - ДокументСсылка				 - Документ регистратор исправления (документ исправление).
//  ИсправленныйДокумент	 - ДокументСсылка				 - Исправленный документ движения которого будут сторнированы.
//  СтруктураВидовУчета		 - Структура					 - Виды учета, по которым будет выполнено сторнирование исправленного документа.
//  					Состав полей см. в ПроведениеСервер.СтруктураВидовУчета().
//  ДополнительныеПараметры	 - Структура					 - Структура со свойствами:
//  					* ИсправлениеВТекущемПериоде - Булево - Истина когда исправление выполняется в периоде регистрации исправленного документа.
//						* ОтменаДокумента - Булево - Истина когда исправление вызвано документом СторнированиеНачислений.
//  					* ПериодРегистрации	- Дата - Период регистрации документа регистратора исправления.
// 
// Возвращаемое значение:
//  Булево - "Истина" если сторнирование выполнено этой функцией, "Ложь" если специальной процедуры не предусмотрено.
//
Функция СторнироватьПоУчетам(Движения, Регистратор, ИсправленныйДокумент, СтруктураВидовУчета, ДополнительныеПараметры) Экспорт
	
	УправлениеШтатнымРасписанием.СторнироватьДвиженияДокумента(Движения, ИсправленныйДокумент);
	
	Возврат Истина;
	
КонецФункции

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

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

// Возвращает описание состава документа
//
// Возвращаемое значение:
//  Структура - см. ЗарплатаКадрыСоставДокументов.НовоеОписаниеСоставаОбъекта.
Функция ОписаниеСоставаОбъекта() Экспорт
	Возврат ЗарплатаКадрыСоставДокументов.ОписаниеСоставаОбъектаФизическоеЛицоВШапке();
КонецФункции

// Описывает реквизит документы, в котором хранится ссылка на кадровое решение. 
Функция ОписаниеРеквизитаКадровогоРешения() Экспорт
	Возврат Метаданные.Документы.КадровыйПеревод.Реквизиты.Решение;
КонецФункции

#Область ОбработчикиРегистрацииФизическихЛиц

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

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

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

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

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

#Область ОбменДанными

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

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

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

Функция ПараметрыИсправляемогоДокумента(ДокументСсылка) Экспорт
	
	Возврат ИсправлениеДокументовЗарплатаКадры.ПараметрыИсправляемогоДокумента(ДокументСсылка,
		СвойстваИсправляемогоДокумента(ДокументСсылка));
	
КонецФункции

Функция ОбъектЗаблокирован(СсылкаНаОбъект) Экспорт
	
	Возврат Ложь;
	
КонецФункции

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Функция РеквизитыДляПроведенияПустаяСтруктура()
	
	РеквизитыДляПроведенияПустаяСтруктура = Новый Структура("Ссылка, ИсправленныйДокумент, ДатаНачала");	
	
	Возврат РеквизитыДляПроведенияПустаяСтруктура;
	
КонецФункции

Функция ОписаниеПодписейДокумента() Экспорт 

	ОписаниеПодписей = ПодписиДокументов.ОписаниеТаблицыПодписей();

	ОписаниеПодписиРуководитель = ПодписиДокументов.ОписаниеРеквизитовПодписанта();
	ОписаниеПодписиРуководитель.ФизическоеЛицо = "Руководитель";
	ОписаниеПодписиРуководитель.Должность = "ДолжностьРуководителя";
	ОписаниеПодписиРуководитель.ОснованиеПодписи = "ОснованиеПредставителяНанимателя";

	ПереопределяемыеИмена = Новый Соответствие;
	ПереопределяемыеИмена.Вставить("Руководитель", ОписаниеПодписиРуководитель);

	ПодписиДокументов.ДобавитьОписаниеПодписейОрганизации(
		ОписаниеПодписей,
		"Руководитель",
		ПереопределяемыеИмена);

	Возврат ОписаниеПодписей;

КонецФункции

#Область ПодготовкаДанныхДляПроведенияДокумента

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

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

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

#Область ОбработчикиСобытийМодуляДокумента

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

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

	Если ДанныеДляПроведения.СведенияОКонтрактахДоговорах.Количество() Тогда
		КонтрактыДоговорыСотрудников.СформироватьДвиженияОсновныхДанныхИСведенийОКонтрактахДоговорах(
			ДокументОбъект.Движения, ДанныеДляПроведения.СведенияОКонтрактахДоговорах, Ложь);
	КонецЕсли;

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

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

// Функция возвращает структуру с описанием данного вида документа.
//
Функция ОписаниеДокумента() Экспорт 

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

КонецФункции

Процедура СформироватьДвиженияМероприятийТрудовойДеятельности(НаборЗаписей, ДанныеДляПроведения) Экспорт
	
	ЭлектронныеТрудовыеКнижки.СформироватьДвиженияМероприятийТрудовойДеятельности(НаборЗаписей, ДанныеДляПроведения);
	
КонецПроцедуры

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

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

#КонецЕсли

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