#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ( ЗначениеРазрешено(ФизическоеЛицо)
| И ( ЗначениеРазрешено(Организация)
| ИЛИ ЗначениеРазрешено(НоваяОрганизация)
| )) ";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
Функция ОписаниеСоставаОбъекта() Экспорт
Возврат ЗарплатаКадрыСоставДокументов.ОписаниеСоставаОбъектаФизическоеЛицоВШапке();
КонецФункции
Функция ОписаниеПодписейДокумента() Экспорт
ОписаниеПодписей = ПодписиДокументов.ОписаниеТаблицыПодписей();
ПодписиДокументов.ДобавитьОписаниеПодписейОрганизации(ОписаниеПодписей, "Руководитель");
ПереопределяемыеИменаРеквизитов = Новый Соответствие;
ОписаниеИменРеквизитовПодписейНовойОрганизации = ПодписиДокументов.ОписаниеРеквизитовПодписанта();
ОписаниеИменРеквизитовПодписейНовойОрганизации.ФизическоеЛицо = "РуководительНовойОрганизации";
ОписаниеИменРеквизитовПодписейНовойОрганизации.Должность = "ДолжностьРуководителяНовойОрганизации";
ОписаниеИменРеквизитовПодписейНовойОрганизации.ОснованиеПодписи = "ОснованиеПодписиРуководителяНовойОрганизации";
ПереопределяемыеИменаРеквизитов.Вставить("Руководитель", ОписаниеИменРеквизитовПодписейНовойОрганизации);
ПодписиДокументов.ДобавитьОписаниеПодписейОрганизации(
ОписаниеПодписей,
"Руководитель",
ПереопределяемыеИменаРеквизитов,
"НоваяОрганизация");
Возврат ОписаниеПодписей;
КонецФункции
#Область ОбработчикиРегистрацииФизическихЛиц
Функция ПринадлежностиОбъекта() Экспорт
МассивРеквизитов = ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве("Организация");
МассивРеквизитов.Добавить("НоваяОрганизация");
Возврат МассивРеквизитов;
КонецФункции
#КонецОбласти
#Область ОбработчикиПравилРегистрации
Процедура ПриЗаполненииНастроекОбработчиковПравилРегистрации(Настройки) Экспорт
ЗарплатаКадрыРасширенныйСинхронизацияДанных.ДляОтбораПоОрганизации(Настройки,
ОбщегоНазначенияБЗККлиентСервер.ЗначенияВМассиве(
Метаданные.Документы.ПереводКДругомуРаботодателю.Реквизиты.Организация,
Метаданные.Документы.ПереводКДругомуРаботодателю.Реквизиты.НоваяОрганизация));
ЗарплатаКадрыРасширенныйСинхронизацияДанных.ДляОбъектаСПрисоединеннымиФайлами(Настройки);
ЗарплатаКадрыРасширенныйСинхронизацияДанных.ДляРегистрацииДвижений(Настройки);
ЗарплатаКадрыРасширенныйСинхронизацияДанных.ДляСовместноРегистрируемыхОбъектов(Настройки);
КонецПроцедуры
#КонецОбласти
#Область ОбменДанными
Процедура ЗарегистрироватьЗависимыеОбъектыПослеЗагрузкиОбменаДанными(МассивДокументов) Экспорт
Для Каждого ДокументОбъект Из МассивДокументов Цикл
Если ЗначениеЗаполнено(ДокументОбъект.Сотрудник) И ОбщегоНазначения.СсылкаСуществует(ДокументОбъект.Сотрудник) Тогда
ПланыОбмена.ЗарегистрироватьИзменения(ДокументОбъект.ОбменДанными.Получатели, ДокументОбъект.Сотрудник);
КонецЕсли;
Если ЗначениеЗаполнено(ДокументОбъект.НовыйСотрудник) И ОбщегоНазначения.СсылкаСуществует(ДокументОбъект.НовыйСотрудник) Тогда
ПланыОбмена.ЗарегистрироватьИзменения(ДокументОбъект.ОбменДанными.Получатели, ДокументОбъект.НовыйСотрудник);
КонецЕсли;
СинхронизацияДанныхЗарплатаКадры.ПринадлежностьФизлицаОрганизацииПриЗаписи(ДокументОбъект);
СинхронизацияДанныхЗарплатаКадры.ОрганизацииСотрудниковПриЗаписи(ДокументОбъект);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
Функция ДобавитьКомандыСозданияДокументов(КомандыСозданияДокументов, ДополнительныеПараметры) Экспорт
ЗарплатаКадрыРасширенный.ДобавитьВКоллекциюКомандуСозданияДокументаПоМетаданнымДокумента(
КомандыСозданияДокументов, Метаданные.Документы.ПереводКДругомуРаботодателю);
КонецФункции
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
Если НЕ ПолучитьФункциональнуюОпцию("ИспользоватьНесколькоОрганизацийЗарплатаКадрыРасширенная") Тогда
Возврат;
КонецЕсли;
ИдентификаторыПФ = Новый Массив;
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = "СогласованиеПереводаЗапрос";
КомандаПечати.Порядок = 10;
КомандаПечати.Представление = НСтр("ru = 'Согласование перевода (запрос)'");
ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = "СогласованиеПереводаОтвет";
КомандаПечати.Порядок = 15;
КомандаПечати.Представление = НСтр("ru = 'Согласование перевода (ответ)'");
ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = "СогласиеРаботника";
КомандаПечати.Порядок = 20;
КомандаПечати.Представление = НСтр("ru = 'Согласие работника на перевод'");
ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПечатнаяФормаТ8) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = "ПФ_MXL_Т8";
КомандаПечати.Порядок = 25;
КомандаПечати.Представление = НСтр("ru = 'Приказ об увольнении (Т-8)'");
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
КомандаПечати.Картинка = БиблиотекаКартинок.СторонняяПечатнаяФорма;
КомандаПечати.ДополнительныеПараметры.Вставить("СторонняяПечатнаяФорма", Истина);
ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
КонецЕсли;
Обработки.ПечатьКадровыхПриказовРасширенная.ДобавитьКомандуПечатиЗапискаРасчетПриУвольненииТ61(
КомандыПечати, ИдентификаторыПФ, "Документ.ПереводКДругомуРаботодателю", 30);
Если Пользователи.РолиДоступны("ДобавлениеИзменениеНачисленнойЗарплатыРасширенная,ЧтениеНачисленнойЗарплатыРасширенная", , Ложь)
И ПолучитьФункциональнуюОпцию("ИспользоватьРасчетЗарплатыРасширенная") Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = Документы.ИсходящаяСправкаОЗаработкеДляРасчетаПособий.ИмяМакетаПечатнойФормыСправки();
КомандаПечати.Порядок = 35;
КомандаПечати.Представление = НСтр("ru = 'Справка о среднем заработке для расчета пособий'");
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
КомандаПечати.Картинка = БиблиотекаКартинок.СторонняяПечатнаяФорма;
КомандаПечати.ДополнительныеПараметры.Вставить("СторонняяПечатнаяФорма", Истина);
ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
КонецЕсли;
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.ПечатнаяФормаТ1) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.Идентификатор = "ПФ_MXL_Т1";
КомандаПечати.Порядок = 40;
КомандаПечати.Представление = НСтр("ru = 'Приказ о приеме на работу (Т-1)'");
КомандаПечати.ДополнительныеПараметры.Вставить("ТребуетсяЧтениеБезОграничений", Истина);
КомандаПечати.Картинка = БиблиотекаКартинок.СторонняяПечатнаяФорма;
КомандаПечати.ДополнительныеПараметры.Вставить("СторонняяПечатнаяФорма", Истина);
ЗарплатаКадры.ДобавитьИдентификаторКомандыДляПечатиВПакетномРежиме(ИдентификаторыПФ, КомандаПечати);
КонецЕсли;
Если ПравоДоступа("Просмотр", Метаданные.Отчеты.УнифицированнаяФормаТ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
| ДокументыБезСотрудников.Ссылка КАК Ссылка
|ИЗ
| ВТДокументыБезСотрудников КАК ДокументыБезСотрудников";
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Истина);
Иначе
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.УстановитьПараметрОбновления(ПараметрыОбновления, "ОбработкаЗавершена", Ложь);
ПараметрыПолучения = КадровыйУчет.ПараметрыПолученияСотрудниковОрганизацийПоВременнойТаблице();
ПараметрыПолучения.ИмяВТФизическиеЛица = "ВТДокументыБезСотрудников";
ПараметрыПолучения.КадровыеДанные = "ГоловнаяОрганизация";
КадровыйУчет.СоздатьВТСотрудникиОрганизации(Запрос.МенеджерВременныхТаблиц, Ложь, ПараметрыПолучения);
Запрос.Текст =
"ВЫБРАТЬ
| ДокументыБезСотрудников.Ссылка КАК Ссылка,
| МИНИМУМ(СотрудникиОрганизации.Сотрудник) КАК НовыйСотрудник
|ИЗ
| ВТДокументыБезСотрудников КАК ДокументыБезСотрудников
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСотрудникиОрганизации КАК СотрудникиОрганизации
| ПО ДокументыБезСотрудников.НоваяГоловнаяОрганизация = СотрудникиОрганизации.ГоловнаяОрганизация
| И ДокументыБезСотрудников.ФизическоеЛицо = СотрудникиОрганизации.ФизическоеЛицо
|
|СГРУППИРОВАТЬ ПО
| ДокументыБезСотрудников.Ссылка";
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если Не ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ПодготовитьОбновлениеДанных(
ПараметрыОбновления, "Документ.ПереводКДругомуРаботодателю", "Ссылка", Выборка.Ссылка) Тогда
Продолжить;
КонецЕсли;
ОбъектДокумента = Выборка.Ссылка.ПолучитьОбъект();
ОбъектДокумента.НовыйСотрудник = Выборка.НовыйСотрудник;
ОбъектДокумента.ДополнительныеСвойства.Вставить("ОтключитьПроверкуДатыЗапретаИзменения", Истина);
ОбновлениеИнформационнойБазы.ЗаписатьОбъект(ОбъектДокумента);
ОбновлениеИнформационнойБазыЗарплатаКадрыБазовый.ЗавершитьОбновлениеДанных(ПараметрыОбновления);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецЕсли