|
ЗУП 2.5.98.2 Изменить расчет основного начисления "Доплата за ночные часы" | ☑ | ||
---|---|---|---|---|
0
YurAnt
05.02.16
✎
08:14
|
Доброго времени суток, господа-форумчане.
Поступила хотелка в виде: сделать Доплату за ночные часы не дефолтной 1) "Результат = Тарифная ставка часовая * Процент доплаты * Ночное время в часах" А вида: 2) "Результат = (ТарифнаяСтавкаЧасовая + РегНадбавка + НадбавкаЗаДостиженияВТруде)* Процент доплаты * Ночное время в часах" Надо сказать с построением формул начислений в ЗУП как-то доселе сталкиваться не приходилось, потому сразу возник вопрос: Как хотя бы продублировать "руками" первую формулу? При редактировании произвольной формулы расчета среди показателей отсутствуют и "процент доплаты" и "Ночное время в часах"... Если их добавлять через "Добавить показатель" то каким образом он должен быть настроен? Или же "процент" и "ночное" могут быть "собраны" из имеющихся показателей ? Заранее благодарен за любые советы, С ув. YurAnt. |
|||
1
YurAnt
05.02.16
✎
08:15
|
*где в п. 2)
РегНадбавка и НадбавкаЗаДостиженияВТруде - есть основные начисления |
|||
2
Prog111
05.02.16
✎
08:33
|
(0) Я делал подобное через внешнюю обработку по заполнению документа "Регистрация разовых начислений", так как не смог придумать формулу:-)
|
|||
3
Prog111
05.02.16
✎
08:35
|
Можно ли в формуле вида расчета (ЗУП 2.5) получить количество ночных часов?
Вот тут может увидишь что полезное, в третьем сообщении. |
|||
4
dmpl
05.02.16
✎
09:04
|
(0) Показатель "ВремяВЧасах" даст ночные часы, надо только вид времени по табелю установить "Ночные часы".
|
|||
5
dmpl
05.02.16
✎
09:06
|
+(4) Ну а дальше все просто: зависимое первого уровня с расчетной базой.
|
|||
6
El_Duke
гуру
05.02.16
✎
09:36
|
(0) Я бы не городил монстра из 2), а разбил бы это на 3 слагаемых (начисления). Тогда каждый Вася Пупкин получив расч. листок видел бы сколько и за что ему начислили, да и бухгалтерам-расчетчикам аналитики больше было. А из общего котла не выгрести сведений ни человеку, ни бухгалтеру.
|
|||
7
YurAnt
08.02.16
✎
08:54
|
Итак, может кому-нибудь пригодится.
В типовой зп в модуле объекта есть ф-я: //**************************************************** Функция ВыполнитьАвтозаполнение(НачалоПериодаЗаполнения, ОкончаниеПериодаЗаполнения, Запрос = Неопределено, ЭтоПерерасчет = Ложь, СписокФизЛиц = Неопределено, МассивСотрудники = Неопределено) Экспорт //**************************************************** Собственно из неё, выдрал механизм заполнения, вынес во внешку, как вы, Prog111, и посоветовали. Конкретнее изменения коснулись расчета тарифной ствки кусок начиная с: //**************************************************** ОсновнойТекстЗапроса = ОсновнойТекстЗапроса + " |ПОМЕСТИТЬ ВТСведенияОНочныхВечерних //**************************************************** делаю свой запрос который собирает тарифную ставку не по окладу а по "оклад + обе_надбавки" цепляю его левым соединением к "СписокНачислений" по сотруднику, и далее заменяю там где используется //| ИНАЧЕ СписокНачислений.ОкладТариф / (СписокНачислений.ДлительностьРабочейНедели / 5 * (ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоРабочихДней, 0) + ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоПредпраздничныхДней, 0)) - ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоПредпраздничныхДней, 0)) * 12 | ИНАЧЕ ВТБазаТарифнойСтавки.Показатель1 / (СписокНачислений.ДлительностьРабочейНедели / 5 * (ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоРабочихДней, 0) + ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоПредпраздничныхДней, 0)) - ЕСТЬNULL(ДанныеПроизводственногоКалендаря.ЧислоПредпраздничныхДней, 0)) * 12 //******************************************************* Ну вроде как работает... все довольны. хотя то что это монстр и костыль не спорю =/ |
|||
8
YurAnt
08.02.16
✎
08:56
|
Т.е. СписокНачислений.ОкладТариф заменяю на свою расчитанную по сотру ВТБазаТарифнойСтавки.Показатель1 везде где в этом есть необходимость.
Огромная благодарность всем, кто участвовал и помогал. Тему, в общем-то, можно закрывать. |
|||
9
YurAnt
08.02.16
✎
08:59
|
(7) +
"В типовой зп в модуле объекта есть ф-я: " заменить на "В типовой зп в модуле объекта документа НачислениеЗарплатыСотрудникамОрганизации есть ф-я: " |
|||
10
YurAnt
08.02.16
✎
09:09
|
для полноты картины добавлю пример запроса собирающий "базу"
//************************************************** Запрос.Текст = "ВЫБРАТЬ | ВТРаботникиИНачисления.Сотрудник, | СУММА(ВЫБОР | КОГДА ВТРаботникиИНачисления.ВидРасчетаНаименование ПОДОБНО ""%Оклад%"" | ТОГДА ВТРаботникиИНачисления.Показатель1 | КОГДА ВТРаботникиИНачисления.ВидРасчетаНаименование ПОДОБНО ""%Надбавка за достижения%"" | ТОГДА ВТРаботникиИНачисления.Показатель1 | КОГДА ВТРаботникиИНачисления.ВидРасчетаНаименование ПОДОБНО ""%Региональная%"" | ТОГДА ВТРаботникиИНачисления.Показатель1 | ИНАЧЕ 0 | КОНЕЦ) КАК Показатель1 |ПОМЕСТИТЬ ВТБазаТарифнойСтавки |ИЗ | ВТРаботникиИНачисления КАК ВТРаботникиИНачисления | |СГРУППИРОВАТЬ ПО | ВТРаботникиИНачисления.Сотрудник"; Запрос.Выполнить(); |
|||
11
Гость из Мариуполя
гуру
08.02.16
✎
10:42
|
для полноты картинки рассмотрения различных вариантов:
http://forum.infostart.ru/forum46/topic61256/message672577/#message672577 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |