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