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