|
v7: Индексация зарплаты. Помогите! | ☑ | ||
---|---|---|---|---|
0
Standart
02.03.16
✎
09:04
|
по новому Положению поменялись правила расчета индексации ЗП. Сейчас у меня считает за фактическое отработанное время. Не получается сделать по новому: надо чтоб считало от всех начислений за месяц, за исключением Единовременных премий, материальных помощей, больничные листы, вознаграждения, уволенных в течении месяца, по совместимости, временные работники.
Процедура ПровестиРасчет() Результат =0; Если Объект.ТипСотрудника.получить(ДатаОкончания) <> Перечисление.ТипСотрудника.Штатный Тогда Возврат; КонецЕсли; Если ОпределитьДатуНачалаРаботы(Объект) >= ДатаНачала Тогда Возврат; КонецЕсли; Если Документ.Вид()="ПриказНаДоплату" Тогда Величина=Документ.Величина; ИначеЕсли Документ.Вид()="НачислениеИндексацииЗП" Тогда Если СтрокаДока>0 Тогда Документ.ПолучитьСтрокуПоНомеру(СтрокаДока); Иначе Сообщить("Невозможно рассчитать "+ПредставлениеВР(ВидРасч)+" для сотрудника "+ФИО(Объект.Наименование)+" по документу ""Ввод премии/доплаты списком"" № "+СокрЛП(Документ.НомерДок)+" от "+Документ.ДатаДок +" - отсутствует привязка к строке документа", "!"); СтатусВозврата(0); Возврат; КонецЕсли; ЖрнЗп = СоздатьОбъект("ЖурналРасчетов.Зарплата"); дтИндПериода = Документ.ДатаАктуальности; ВесьДоход =0; ЖрнЗп.ВыбратьПериодПоОбъекту(Объект, дтИндПериода); Пока ЖрнЗп.ПолучитьЗапись()=1 Цикл //Если ЖрнЗп.ВидРасч.ВходитВГруппу(ГруппаРасчетов.ДляИндексации)=1 Тогда // ВесьДоход = ВесьДоход + ЖрнЗп.Результат; //КонецЕсли; Если ЖрнЗп.ВидРасч.ВходитВГруппу(ГруппаРасчетов.БольничныеЛисты)=1 Тогда Продолжить; ИначеЕсли ЖрнЗп.ВидРасч.ВходитВгруппу(ГруппаРасчетов.ВсеНачисления)=1 тогда ВесьДоход = ВесьДоход + ЖрнЗп.Результат; КонецЕсли; КонецЦикла; ИндексСумма = ?(ВесьДоход >= Документ.МаксИндексДоход, Документ.МаксИндексДоход, ВесьДоход); //Величина = ИндексСумма * Документ.ИндексПЦен / 100; //Округление(ИндексСумма * Документ.ИндексПЦен / 100, Константа.ОкруглениеРасчетовПоУмолчанию); Если Объект.графикРаботы.Получить(дтИндПериода).Выбран()=1 тогда Баланс = Объект.ГрафикРаботы.Получить(дтИндПериода).МесБалансРабВр.Получить(дтИндПериода); иначе Баланс = Константа.КалендарьПоУмолчанию.Часов(НачМесяца(дтИндПериода), дтИндПериода); КонецЕсли; Отр=глОтработанноеВремяЗаПериод(Объект,НачМесяца(дтИндПериода),КонМесяца(дтИндПериода)); ОтрЧасов=Отр.ПолучитьЗначение(2); ИндексСумма=ИндексСумма*ОтрЧасов/Баланс; Величина = Округление(ИндексСумма * Документ.ИндексПЦен / 100, Константа.ОкруглениеРасчетовПоУмолчанию); //Величина=Округление(Величина*ОтрЧасов/Баланс, Константа.ОкруглениеРасчетовПоУмолчанию); Иначе Если СтрокаДока>0 Тогда Документ.ПолучитьСтрокуПоНомеру(СтрокаДока); Величина = Документ.Сумма; Иначе Сообщить("Невозможно рассчитать "+ПредставлениеВР(ВидРасч)+" для сотрудника "+ФИО(Объект.Наименование)+" по документу ""Ввод премии/доплаты списком"" № "+СокрЛП(Документ.НомерДок)+" от "+Документ.ДатаДок +" - отсутствует привязка к строке документа", "!"); СтатусВозврата(0); Возврат; КонецЕсли; КонецЕсли; Результат = Величина; КонецПроцедуры |
|||
1
NikVars
03.03.16
✎
16:34
|
(0) Денег скока на кону?!
|
|||
2
Standart
04.03.16
✎
10:33
|
NikVars. Копейки, 25% от бюджета прожиточного минимума (1.500.000 бел. руб).
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |