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