Перевод к другому работодателю / Модуль менеджера

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

// Заполняет список команд печати.
// 
// Параметры:
//   КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
	
	Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизацийЗарплатаКадрыРасширенная")  Тогда
		Возврат;
	КонецЕсли;
	
	ИдентификаторыПФ = Новый Массив;
	
	// Согласование перевода (запрос).
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
	КомандаПечати.Идентификатор = "СогласованиеПереводаЗапрос";
	КомандаПечати.Порядок = 10;
	КомандаПечати.Представление = НСтр("ru = 'Согласование перевода (запрос)'");
	
	ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
	
	// Согласование перевода (ответ).
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
	КомандаПечати.Идентификатор = "СогласованиеПереводаОтвет";
	КомандаПечати.Порядок = 15;
	КомандаПечати.Представление = НСтр("ru = 'Согласование перевода (ответ)'");
	
	ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
	
	// Согласие работника на перевод.
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
	КомандаПечати.Идентификатор = "СогласиеРаботника";
	КомандаПечати.Порядок = 20;
	КомандаПечати.Представление = НСтр("ru = 'Согласие работника на перевод'");
	
	ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
	
	// Приказ об увольнении (Т-8)
	Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПечатнаяФормаТ8) Тогда
		
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
		КомандаПечати.Идентификатор = "ПФ_MXL_Т8";
		КомандаПечати.Порядок = 25;
		КомандаПечати.Представление = НСтр("ru = 'Приказ об увольнении (Т-8)'");
		КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
		КомандаПечати.Картинка = БиблиотекаКартинок.СторонняяПечатнаяФорма;
		КомандаПечати.ДополнительныеПараметры.Вставить("СторонняяПечатнаяФорма", Истина);
		
		ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
		
	КонецЕсли;
	
	Обработки.ПечатьКадровыхПриказовРасширенная.ДобавитьКомандуПечатиЗапискаРасчетПриУвольненииТ61(
		КомандыПечати, ИдентификаторыПФ, "Документ.ПереводКДругомуРаботодателю", 30);
	
	Если Пользователи.РолиДоступны("ДобавлениеИзменениеНачисленнойЗарплатыРасширенная,ЧтениеНачисленнойЗарплатыРасширенная", , Ложь) 
		И ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") Тогда
		
		// Печать справки о среднем заработке для расчета пособий.
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
		КомандаПечати.Идентификатор = Документы.ИсходящаяСправкаОЗаработкеДляРасчетаПособий.ИмяМакетаПечатнойФормыСправки();
		КомандаПечати.Порядок = 35;
		КомандаПечати.Представление = НСтр("ru = 'Справка о среднем заработке для расчета пособий'");
		КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
		КомандаПечати.Картинка = БиблиотекаКартинок.СторонняяПечатнаяФорма;
		КомандаПечати.ДополнительныеПараметры.Вставить("СторонняяПечатнаяФорма", Истина);
		
		ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
		
	КонецЕсли;
	
	Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПечатнаяФормаТ1) Тогда
		
		// Приказ о приеме на работу (Т-1).
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
		КомандаПечати.Идентификатор = "ПФ_MXL_Т1";
		КомандаПечати.Порядок = 40;
		КомандаПечати.Представление = НСтр("ru = 'Приказ о приеме на работу (Т-1)'");
		КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
		КомандаПечати.Картинка = БиблиотекаКартинок.СторонняяПечатнаяФорма;
		КомандаПечати.ДополнительныеПараметры.Вставить("СторонняяПечатнаяФорма", Истина);
		
		ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
		
	КонецЕсли;
	
	Если ПравоДоступа("Просмотр", Метаданные.Отчеты.УнифицированнаяФормаТ2) Тогда
		
		// Личная карточка (Т-2)
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
		КомандаПечати.Идентификатор = "ПФ_MXL_Т2";
		КомандаПечати.Порядок = 45;
		КомандаПечати.Представление = НСтр("ru = 'Личная карточка (Т-2)'");
		КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
		
		ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
		
	КонецЕсли;
	
	Если ИдентификаторыПФ.Количество() > 1 Тогда
		
		КомандаПечати = КомандыПечати.Добавить();
		КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
		КомандаПечати.Идентификатор = СтрСоединить(ИдентификаторыПФ, ",");
		КомандаПечати.Порядок = 100;
		КомандаПечати.Представление = НСтр("ru = 'Комплект документов для перевода'");
		КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
		КомандаПечати.Картинка = БиблиотекаКартинок.ПечатьПакетаДокументов;
		
	КонецЕсли;
	
	// Проверить соответствие согласованных и учетных данных.
	КомандаПечати = КомандыПечати.Добавить();
	КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
	КомандаПечати.Идентификатор = "ОтчетОСоответствииДанныхУчетаДокументу";
	КомандаПечати.Порядок = 110;
	КомандаПечати.Представление = НСтр("ru = 'Анализ соответствия согласованных и учетных данных'");
	
КонецПроцедуры

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

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

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

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

	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	Запрос.УстановитьПараметр("МассивСсылок", МассивОбъектов);
	
	Запрос.УстановитьПараметр("ТекстУвольнениеНеВведено", 	НСтр("ru = 'Увольнение не введено'"));
	Запрос.УстановитьПараметр("ТекстУвольнение", 			НСтр("ru = 'Увольнение'"));
	Запрос.УстановитьПараметр("ТекстПриемНаРаботу", 		НСтр("ru = 'ПриемНаРаботу'"));
	Запрос.УстановитьПараметр("ТекстПриемНаРаботуНеВведен", НСтр("ru = 'Прием на работу не введен'"));
	
	Запрос.УстановитьПараметр("ПредставлениеПоказателяДатаУвольнения", 				НСтр("ru = 'Дата увольнения'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяСтатьяТКРФ", 					НСтр("ru = 'Статья ТК РФ'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяОрганизация",					НСтр("ru = 'Организация'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяДатаПриема", 					НСтр("ru = 'Дата приема'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяПодразделение", 				НСтр("ru = 'Подразделение'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяДолжность", 					НСтр("ru = 'Должность'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяПозицияШтатногоРасписания", 	НСтр("ru = 'Позиция штатного расписания'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяГрафикРаботы", 				НСтр("ru = 'График работы'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяКоличествоСтавок", 			НСтр("ru = 'Количество ставок'"));
	Запрос.УстановитьПараметр("ПредставлениеПоказателяАванс", 						НСтр("ru = 'Аванс'"));
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	ПереводКДругомуРаботодателю.Сотрудник КАК Сотрудник,
	|	ПереводКДругомуРаботодателю.ДатаУвольнения КАК Период
	|ПОМЕСТИТЬ ВТСотрудники
	|ИЗ
	|	Документ.ПереводКДругомуРаботодателю КАК ПереводКДругомуРаботодателю
	|ГДЕ
	|	ПереводКДругомуРаботодателю.Ссылка В(&МассивСсылок)";
	Запрос.Выполнить();
	ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников(Запрос.МенеджерВременныхТаблиц, "ВТСотрудники");
	КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, "ПриказОбУвольнении");
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|	Увольнение.Сотрудник,
	|	Увольнение.ДатаУвольнения,
	|	Увольнение.СтатьяТКРФ,
	|	ПРЕДСТАВЛЕНИЕ(Увольнение.Ссылка) КАК СсылкаПредставление,
	|	Увольнение.Ссылка КАК Ссылка,
	|	ПереводКДругомуРаботодателю.Ссылка КАК СсылкаПеревод
	|ПОМЕСТИТЬ ВТУвольнение
	|ИЗ
	|	Документ.ПереводКДругомуРаботодателю КАК ПереводКДругомуРаботодателю
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК ВТКадровыеДанныеСотрудников
	|		ПО ПереводКДругомуРаботодателю.Сотрудник = ВТКадровыеДанныеСотрудников.Сотрудник
	|			И ПереводКДругомуРаботодателю.ДатаУвольнения = ВТКадровыеДанныеСотрудников.Период
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.Увольнение КАК Увольнение
	|		ПО (ВТКадровыеДанныеСотрудников.ПриказОбУвольнении = Увольнение.Ссылка)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПриемНаРаботу.Организация,
	|	ПриемНаРаботу.Подразделение,
	|	ПриемНаРаботу.ДолжностьПоШтатномуРасписанию,
	|	ПриемНаРаботу.Должность,
	|	ПриемНаРаботу.КоличествоСтавок,
	|	ПриемНаРаботу.ДатаПриема,
	|	ПриемНаРаботу.ГрафикРаботы,
	|	ПриемНаРаботу.Аванс,
	|	ПриемНаРаботу.Ссылка КАК Ссылка,
	|	ПРЕДСТАВЛЕНИЕ(ПриемНаРаботу.Ссылка) КАК СсылкаПредставление,
	|	СрезКадровойИстории.Ссылка КАК СсылкаПеревод
	|ПОМЕСТИТЬ ВТПриемНаРаботу
	|ИЗ
	|	РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
	|			МИНИМУМ(КадроваяИсторияСотрудников.Период) КАК Период,
	|			КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
	|			КадроваяИсторияСотрудников.Организация КАК Организация,
	|			ПереводКДругомуРаботодателю.Ссылка КАК Ссылка
	|		ИЗ
	|			Документ.ПереводКДругомуРаботодателю КАК ПереводКДругомуРаботодателю
	|				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
	|				ПО ПереводКДругомуРаботодателю.ФизическоеЛицо = КадроваяИсторияСотрудников.ФизическоеЛицо
	|					И ПереводКДругомуРаботодателю.НоваяОрганизация = КадроваяИсторияСотрудников.Организация
	|					И ПереводКДругомуРаботодателю.ДатаУвольнения < КадроваяИсторияСотрудников.Период
	|					И (КадроваяИсторияСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием))
	|		
	|		СГРУППИРОВАТЬ ПО
	|			КадроваяИсторияСотрудников.ФизическоеЛицо,
	|			КадроваяИсторияСотрудников.Организация,
	|			ПереводКДругомуРаботодателю.Ссылка) КАК СрезКадровойИстории
	|		ПО КадроваяИсторияСотрудников.ФизическоеЛицо = СрезКадровойИстории.ФизическоеЛицо
	|			И КадроваяИсторияСотрудников.Организация = СрезКадровойИстории.Организация
	|			И КадроваяИсторияСотрудников.Период = СрезКадровойИстории.Период
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу КАК ПриемНаРаботу
	|		ПО КадроваяИсторияСотрудников.Регистратор = ПриемНаРаботу.Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ПереводКДругомуРаботодателю.Организация,
	|	ПереводКДругомуРаботодателю.Сотрудник,
	|	ПереводКДругомуРаботодателю.ФизическоеЛицо,
	|	ПереводКДругомуРаботодателю.ДатаУвольнения,
	|	ПереводКДругомуРаботодателю.НоваяОрганизация,
	|	ПереводКДругомуРаботодателю.ДатаПриема,
	|	ПереводКДругомуРаботодателю.Подразделение,
	|	ПереводКДругомуРаботодателю.Должность,
	|	ПереводКДругомуРаботодателю.ГрафикРаботы,
	|	ПереводКДругомуРаботодателю.КоличествоСтавок,
	|	ПереводКДругомуРаботодателю.ДолжностьПоШтатномуРасписанию,
	|	ПереводКДругомуРаботодателю.Аванс,
	|	ПереводКДругомуРаботодателю.СтатьяТКРФ,
	|	ПереводКДругомуРаботодателю.Ссылка КАК СсылкаПеревод
	|ПОМЕСТИТЬ ВТСогласованныеДанные
	|ИЗ
	|	Документ.ПереводКДругомуРаботодателю КАК ПереводКДругомуРаботодателю
	|ГДЕ
	|	ПереводКДругомуРаботодателю.Ссылка В(&МассивСсылок)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПереводКДругомуРаботодателюНачисления.Начисление,
	|	ПереводКДругомуРаботодателюПоказатели.Показатель,
	|	ВЫРАЗИТЬ(ПереводКДругомуРаботодателюПоказатели.Значение КАК ЧИСЛО(15, 2)) КАК Значение,
	|	ПереводКДругомуРаботодателюНачисления.Ссылка КАК СсылкаПеревод
	|ПОМЕСТИТЬ Согласовано
	|ИЗ
	|	Документ.ПереводКДругомуРаботодателю.Начисления КАК ПереводКДругомуРаботодателюНачисления
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПереводКДругомуРаботодателю.Показатели КАК ПереводКДругомуРаботодателюПоказатели
	|		ПО ПереводКДругомуРаботодателюНачисления.ИдентификаторСтрокиВидаРасчета = ПереводКДругомуРаботодателюПоказатели.ИдентификаторСтрокиВидаРасчета
	|			И ПереводКДругомуРаботодателюНачисления.Ссылка = ПереводКДругомуРаботодателюПоказатели.Ссылка
	|ГДЕ
	|	ПереводКДругомуРаботодателюНачисления.Ссылка В(&МассивСсылок)
	|
	|СГРУППИРОВАТЬ ПО
	|	ПереводКДругомуРаботодателюНачисления.Начисление,
	|	ПереводКДругомуРаботодателюПоказатели.Показатель,
	|	ПереводКДругомуРаботодателюПоказатели.Значение,
	|	ПереводКДругомуРаботодателюНачисления.Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ПриемНаРаботуНачисления.Начисление,
	|	ПриемНаРаботуПоказатели.Показатель,
	|	ПриемНаРаботуПоказатели.Значение,
	|	ПриемНаРаботуНачисления.Ссылка,
	|	ВТПриемНаРаботу.СсылкаПеревод
	|ПОМЕСТИТЬ УчетныеДанные
	|ИЗ
	|	ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу.Начисления КАК ПриемНаРаботуНачисления
	|			ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриемНаРаботу.Показатели КАК ПриемНаРаботуПоказатели
	|			ПО ПриемНаРаботуНачисления.ИдентификаторСтрокиВидаРасчета = ПриемНаРаботуПоказатели.ИдентификаторСтрокиВидаРасчета
	|				И ПриемНаРаботуНачисления.Ссылка = ПриемНаРаботуПоказатели.Ссылка
	|		ПО ВТПриемНаРаботу.Ссылка = ПриемНаРаботуНачисления.Ссылка
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.ДатаУвольнения КАК СогласованныйПоказатель,
	|	ВТУвольнение.ДатаУвольнения КАК УчетныйПоказатель,
	|	ЕСТЬNULL(ВТУвольнение.СсылкаПредставление, &ТекстУвольнениеНеВведено) КАК ПредставлениеСсылки,
	|	ЕСТЬNULL(ВТУвольнение.Ссылка, &ТекстУвольнение) КАК Ссылка,
	|	&ПредставлениеПоказателяДатаУвольнения КАК ПредставлениеПоказателя,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	10 КАК ПорядокПоказателя,
	|	NULL КАК ДляШтатногоРасписания,
	|	NULL КАК ДляРасчетаЗарплаты
	|ПОМЕСТИТЬ ВТСравнениеДокументов
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТУвольнение КАК ВТУвольнение
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТУвольнение.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.СтатьяТКРФ,
	|	ВТУвольнение.СтатьяТКРФ,
	|	ЕСТЬNULL(ВТУвольнение.СсылкаПредставление, &ТекстУвольнениеНеВведено),
	|	ЕСТЬNULL(ВТУвольнение.Ссылка, &ТекстУвольнение),
	|	&ПредставлениеПоказателяСтатьяТКРФ,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	20,
	|	NULL,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТУвольнение КАК ВТУвольнение
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТУвольнение.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.НоваяОрганизация,
	|	ВТПриемНаРаботу.Организация,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяОрганизация,
	|	ВТПриемНаРаботу.СсылкаПеревод,
	|	30,
	|	NULL,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.ДатаПриема,
	|	ВТПриемНаРаботу.ДатаПриема,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяДатаПриема,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	40,
	|	NULL,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.Подразделение,
	|	ВТПриемНаРаботу.Подразделение,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяПодразделение,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	50,
	|	ЛОЖЬ,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.Должность,
	|	ВТПриемНаРаботу.Должность,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяДолжность,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	60,
	|	ЛОЖЬ,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.ДолжностьПоШтатномуРасписанию,
	|	ВТПриемНаРаботу.ДолжностьПоШтатномуРасписанию,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяПозицияШтатногоРасписания,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	70,
	|	ИСТИНА,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.ГрафикРаботы,
	|	ВТПриемНаРаботу.ГрафикРаботы,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяГрафикРаботы,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	80,
	|	NULL,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.КоличествоСтавок,
	|	ВТПриемНаРаботу.КоличествоСтавок,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяКоличествоСтавок,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	90,
	|	NULL,
	|	NULL
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	ВТСогласованныеДанные.Аванс,
	|	ВТПриемНаРаботу.Аванс,
	|	ЕСТЬNULL(ВТПриемНаРаботу.СсылкаПредставление, &ТекстПриемНаРаботуНеВведен),
	|	ЕСТЬNULL(ВТПриемНаРаботу.Ссылка, &ТекстПриемНаРаботу),
	|	&ПредставлениеПоказателяАванс,
	|	ВТСогласованныеДанные.СсылкаПеревод,
	|	100,
	|	NULL,
	|	ИСТИНА
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТПриемНаРаботу КАК ВТПриемНаРаботу
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТПриемНаРаботу.СсылкаПеревод
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ВТСравнениеДанных.СогласованныйПоказатель,
	|	ВТСравнениеДанных.УчетныйПоказатель,
	|	ВТСравнениеДанных.ПредставлениеСсылки КАК ПредставлениеРегистратора,
	|	ВТСравнениеДанных.Ссылка КАК Регистратор,
	|	ВТСравнениеДанных.ПредставлениеПоказателя,
	|	ВТСравнениеДанных.СсылкаПеревод КАК СсылкаПеревод,
	|	ВТСогласованныеДанные.Организация КАК Организация,
	|	ВТСогласованныеДанные.ФизическоеЛицо КАК Сотрудник,
	|	ВТСогласованныеДанные.НоваяОрганизация КАК НоваяОрганизация,
	|	ВТСравнениеДанных.ПорядокПоказателя КАК ПорядокПоказателя,
	|	ВТСравнениеДанных.ДляШтатногоРасписания,
	|	ВТСравнениеДанных.ДляРасчетаЗарплаты
	|ИЗ
	|	ВТСогласованныеДанные КАК ВТСогласованныеДанные
	|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСравнениеДокументов КАК ВТСравнениеДанных
	|		ПО ВТСогласованныеДанные.СсылкаПеревод = ВТСравнениеДанных.СсылкаПеревод
	|
	|УПОРЯДОЧИТЬ ПО
	|	СсылкаПеревод,
	|	ПорядокПоказателя,
	|	Регистратор
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|	ЕСТЬNULL(УчетныеДанные.Ссылка, &ТекстПриемНаРаботу) КАК Регистратор,
	|	ЕСТЬNULL(Согласовано.Начисление, УчетныеДанные.Начисление) КАК Начисление,
	|	ЕСТЬNULL(Согласовано.Показатель, УчетныеДанные.Показатель) КАК Показатель,
	|	ЕСТЬNULL(Согласовано.Значение, 0) КАК СогласованныйПоказатель,
	|	ЕСТЬNULL(УчетныеДанные.Значение, 0) КАК УчетныйПоказатель,
	|	ЕСТЬNULL(Согласовано.СсылкаПеревод, УчетныеДанные.СсылкаПеревод) КАК СсылкаПеревод
	|ИЗ
	|	Согласовано КАК Согласовано
	|		ПОЛНОЕ СОЕДИНЕНИЕ УчетныеДанные КАК УчетныеДанные
	|		ПО Согласовано.Начисление = УчетныеДанные.Начисление
	|			И Согласовано.Показатель = УчетныеДанные.Показатель
	|			И Согласовано.СсылкаПеревод = УчетныеДанные.СсылкаПеревод
	|
	|УПОРЯДОЧИТЬ ПО
	|	СсылкаПеревод,
	|	Начисление
	|ИТОГИ ПО
	|	СсылкаПеревод,
	|	Начисление";
	
	ВедетсяШтатноеРасписание = ПолучитьФункциональнуюОпцию("ИспользоватьШтатноеРасписание");
	ДоступенРасчетЗарплаты = ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") 
							И Пользователи.РолиДоступны("ЧтениеНачисленнойЗарплатыРасширенная, ДобавлениеИзменениеНачисленнойЗарплатыРасширенная");
							
	МассивРезультатов 		= Запрос.ВыполнитьПакет();
	КоличествоРезультатов 	= МассивРезультатов.Количество();
	Выборка 				= МассивРезультатов[КоличествоРезультатов - 2].Выбрать();
	ВыборкаНачислений 		= МассивРезультатов[КоличествоРезультатов - 1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
	
	ОтборНачислений = Новый Структура("СсылкаПеревод");
	
	ПервыйДокумент = Истина;
	Пока Выборка.СледующийПоЗначениюПоля("СсылкаПеревод") Цикл
		
		Если ПервыйДокумент Тогда
			ПервыйДокумент = Ложь;
		Иначе
			// Все документы нужно выводить на разных страницах.
			ДокументРезультат.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		// Запомним номер строки, с которой начали выводить текущий документ.
		НомерСтрокиНачало = ДокументРезультат.ВысотаТаблицы + 1;
		
		ЗаполнитьЗначенияСвойств(ОбластьМакетаШапка.Параметры, Выборка);
		ДокументРезультат.Вывести(ОбластьМакетаШапка);
		
		Пока Выборка.СледующийПоЗначениюПоля("Регистратор") Цикл
			ЗаполнитьЗначенияСвойств(ОбластьСсылка.Параметры, Выборка);
			ДокументРезультат.Вывести(ОбластьСсылка);
			
			Пока Выборка.СледующийПоЗначениюПоля("ПредставлениеПоказателя") Цикл
				
				Если ЗначениеЗаполнено(Выборка.ДляШтатногоРасписания) 
					И НЕ ВедетсяШтатноеРасписание = Выборка.ДляШтатногоРасписания Тогда
					Продолжить;
				КонецЕсли;
				
				Если ЗначениеЗаполнено(Выборка.ДляРасчетаЗарплаты) 
					И НЕ ДоступенРасчетЗарплаты = Выборка.ДляРасчетаЗарплаты Тогда
					Продолжить;
				КонецЕсли;
				
				ЗаполнитьЗначенияСвойств(ОбластьПоказатель.Параметры, Выборка);
				Область = ДокументРезультат.Вывести(ОбластьПоказатель);
				
				Если НЕ Выборка.СогласованныйПоказатель = Выборка.УчетныйПоказатель Тогда
					ДокументРезультат.Область(Область.Верх, 1, Область.Низ,3).ЦветФона = WebЦвета.СветлоКоралловый;
				КонецЕсли;
				
			КонецЦикла;
			
		КонецЦикла;
		
		Если ДоступенРасчетЗарплаты Тогда
			
			ВыборкаНачислений.Сбросить();
			ОтборНачислений.Вставить("СсылкаПеревод", Выборка.СсылкаПеревод);
			
			Если ВыборкаНачислений.НайтиСледующий(ОтборНачислений) Тогда   
				
				ДокументРезультат.Вывести(ОбластьШапкаНачислений);
				
				ВыборкаНачисленийПеревода = ВыборкаНачислений.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
				Пока ВыборкаНачисленийПеревода.Следующий() Цикл
					
					ЗаполнитьЗначенияСвойств(ОбластьНачисление.Параметры, ВыборкаНачисленийПеревода);
					ДокументРезультат.Вывести(ОбластьНачисление);
					
					ВыборкаПоказателейНачисления = ВыборкаНачисленийПеревода.Выбрать(); 
					Пока ВыборкаПоказателейНачисления.Следующий() Цикл
						ЗаполнитьЗначенияСвойств(ОбластьПоказательНачисления.Параметры, ВыборкаПоказателейНачисления);
						Область = ДокументРезультат.Вывести(ОбластьПоказательНачисления);	
						
						Если НЕ ВыборкаПоказателейНачисления.СогласованныйПоказатель = ВыборкаПоказателейНачисления.УчетныйПоказатель Тогда
							ДокументРезультат.Область(Область.Верх, 1, Область.Низ,3).ЦветФона = WebЦвета.СветлоКоралловый;
						КонецЕсли;

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

	Возврат ДокументРезультат;
	
КонецФункции

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

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

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

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

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

#КонецЕсли

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