ЗиК 7.7. Как сделать вид расчета ?
27.12.2005
12:32
#1
Часть работников(окладники) получают доплату за исполнение в течение месяца каких-то дополнительных обязанностей. Например 'Дежурство на дому': расчитывается процентом от базы, но не за все отработанное в течение месяца время, а за учтенное количество часов.
Пример:
за 22 рабочих дня оплата по окладу - 4000 руб, Дежурство на дому - 20 часов, процент за дежурство - 50%,месячная норма часов-176
Сумма доплаты=4000/176*20*50/100=227.27 руб.
Вопрос: Как создать такой вид расчета?
Пример:
за 22 рабочих дня оплата по окладу - 4000 руб, Дежурство на дому - 20 часов, процент за дежурство - 50%,месячная норма часов-176
Сумма доплаты=4000/176*20*50/100=227.27 руб.
Вопрос: Как создать такой вид расчета?
29.12.2005
07:34
#3
"вводим новый документ, по начислению этих вот дежурств.
Делаем новый вид расчёта, а в модуле будет нечто такое:
Процедура ПровестиРасчет()
ГрафикРаботы = Объект.ГрафикРаботы.Получить(ДатаОкончания);
Ставка = Объект.Ставка.Получить(ДатаОкончания);
Если ПустоеЗначение(ГрафикРаботы)=1 Тогда
ГрафикРаботы = Константа.ОсновнойГрафик;
КонецЕсли;
Если ПустоеЗначение(ГрафикРаботы)=1 Тогда
Сообщить("Не задан график работы");
Возврат;
КонецЕсли;
Если глФормаТрудаПоТарифуОкладу(Объект.ФормаТруда) <> "Оклад" тогда
Сообщить("У сотрудника " + Объект + " нет оклада!");
Возврат;
КонецЕсли;
МесячнаяСтавка = глПолучитьСуммуИзРеквизита(Объект.Оклад.Получить(ДатаОкончания), ДатаОкончания);
Документ.ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
Календарь = ГрафикРаботы.ОсновныеЧасы;
всегоЧасов = Календарь.Часов(НачалоПериодаПоДате(ДатаНачала), КонецПериодаПоДате(ДатаОкончания));
часовДежурства = Документ.КолвоЧасовДежурства;
Результат = МесячнаяСтавка / всегоЧасов * часовДежурства * 50 / 100;
КонецПроцедуры"
Делаем новый вид расчёта, а в модуле будет нечто такое:
Процедура ПровестиРасчет()
ГрафикРаботы = Объект.ГрафикРаботы.Получить(ДатаОкончания);
Ставка = Объект.Ставка.Получить(ДатаОкончания);
Если ПустоеЗначение(ГрафикРаботы)=1 Тогда
ГрафикРаботы = Константа.ОсновнойГрафик;
КонецЕсли;
Если ПустоеЗначение(ГрафикРаботы)=1 Тогда
Сообщить("Не задан график работы");
Возврат;
КонецЕсли;
Если глФормаТрудаПоТарифуОкладу(Объект.ФормаТруда) <> "Оклад" тогда
Сообщить("У сотрудника " + Объект + " нет оклада!");
Возврат;
КонецЕсли;
МесячнаяСтавка = глПолучитьСуммуИзРеквизита(Объект.Оклад.Получить(ДатаОкончания), ДатаОкончания);
Документ.ПолучитьСтрокуПоНомеру(НомерСтрокиДокумента);
Календарь = ГрафикРаботы.ОсновныеЧасы;
всегоЧасов = Календарь.Часов(НачалоПериодаПоДате(ДатаНачала), КонецПериодаПоДате(ДатаОкончания));
часовДежурства = Документ.КолвоЧасовДежурства;
Результат = МесячнаяСтавка / всегоЧасов * часовДежурства * 50 / 100;
КонецПроцедуры"
29.12.2005
11:20
#5
Тут просто надо смотреть сколько часов в день будет обрабатываться. Если например, количество часов вот этого дежурство на дому будет равняться количеству часов в рабочем дне, тогда можно ввести "процентом от базы"
Читают тему
(гостей: 1)