Имя: Пароль:
1C
 
зуп (3.1.4.169) помогите понять как доработать формулу?
,
0 evorle145
 
06.02.18
08:52
У нас есть начисление "доплата в командировке до оклада". Если в табеле введена командировка, то это начисление автоматически срабатывает. И формула, которая приведена ниже вариант 1 верная! и все хорошо работает, но для сотрудников, у которых нет северной надбавки эта формула не работает из-за показателя "СевернаяНадбавка ". То есть доплата не рассчитывается и даже в начисление не попадает!
Я сделал для чистоты эксперимента 2 вариант формулы, и он тоже не работает. Иными словами, проблема в том что я не могу понять, как в формуле разграничить сотрудников с серверной надбавкой и без нее?
Ведь начисление срабатывает само по призкаку "К" (признак что введена командировка).

1 вариант
Макс(
(Оклад*ДоляНеполногоРабочегоВремени/НормаДней)*ВремяВДнях+
((СевернаяНадбавка / 100)*(Оклад*ДоляНеполногоРабочегоВремени/НормаДней)*ВремяВДнях)+
((Макс(РайонныйКоэффициент, 1) - 1)*(Оклад*ДоляНеполногоРабочегоВремени/НормаДней)*ВремяВДнях)

-РасчетнаяБаза,0)

2 вариант:

Макс(
(Оклад*ДоляНеполногоРабочегоВремени/НормаДней)*ВремяВДнях+
((?(1=1, 0 , СевернаяНадбавка) / 100)*(Оклад*ДоляНеполногоРабочегоВремени/НормаДней)*ВремяВДнях)+
((Макс(РайонныйКоэффициент, 1) - 1)*(Оклад*ДоляНеполногоРабочегоВремени/НормаДней)*ВремяВДнях)

-РасчетнаяБаза,0)
1 Джо-джо
 
06.02.18
08:54
Просто жесть
2 evorle145
 
06.02.18
08:58
(1) Да в формулу можно не вникать, она работает так как просил клиент, все проверено! но проверено на сотрудниках, где в организации применяется серверная надбавка, а где ее нет - ничего не происходит, до тех пор пока из формулы я не викину показатель "Северная надбавка".
3 vde69
 
06.02.18
09:07
(Оклад + Оклад*СевернаяНадбавка/100 + Оклад*РайонныйКоэффициент/100)

*ДоляНеполногоРабочегоВремени/НормаДней*ВремяВДнях

-РасчетнаяБаза


в данной формуле меня смущает последняя строка, зачем вычитать базу?
4 evorle145
 
06.02.18
09:12
(3) это доплата до среднего по окладу. Расчетная база тут равна сумме выплаченой по командировке. Формула верна, тут все ок, помогите понять как разграничить тех кто с северной надбавкой и без...
5 vde69
 
06.02.18
09:14
(4) я тебе написал в (3)... сначало считаешь базу с учетом оклада+надбавки+районки а потом умножаешь на дни
6 evorle145
 
06.02.18
09:19
(5) Спасибо, но это не то. Формула верна. Вот ее аналог на ИТС https://its.1c.ru/db/staff1c#content:34825:zup30

разница в том, что в моей еще есть показатель "серверная надбавка".
7 Джо-джо
 
06.02.18
09:22
(6) Разница в том, что нормальные люди начисляют СК и РК на доплату
8 Джо-джо
 
06.02.18
09:23
А не пихают в формулу все зависимые начисления
9 evorle145
 
06.02.18
09:30
(7) да знаю, но это заказчику объяснить не удалось.
10 vde69
 
06.02.18
09:40
(6) если формула верна - почему она не работает?

значит формула НЕ ВЕРНА
11 evorle145
 
06.02.18
09:43
(10) формула верна для случая если сотрудник работает в организации, где есть "Северная надбавка".
12 dezss
 
06.02.18
10:05
(3) оклад тоже можно вынести за скобки
13 dezss
 
06.02.18
10:07
(0) покажи в числах, что было, что ожидалось, что получилось...
14 evorle145
 
06.02.18
10:59
Благодарю всех за помощь. Но на такой запрос заказчика можно ответить только изменением конфигурации. Что и сделал:

В обработку "МенеджерРасчетаЗарплаты" в Процедуру "ЗаполнитьЗначенияПоказателейПоВыборкеЗапроса" поставлено условие:
Если Выборка.Показатель = Справочники.ПоказателиРасчетаЗарплаты.СевернаяНадбавка Тогда
    //Удалять не надо
    Продолжить;
КонецЕсли;

Еще раз большое спасибо всем, кто вник и пытался помочь!
15 El_Duke
 
гуру
06.02.18
12:10
(14) Есть подозрение что не только изменением конфы

Если задействовать справочник Территории, то там можно описАть территории с нулевой и ненулевой северной надбавкой. Каждому сотру придется проставить территорию на  которой он работает. Тогда есть шанс что первая формула из (0) заработает как хочет заказчик.
Сейчас под рукой нет базы в которой действуют северные надбавки, проверить не на чем.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан