Обновлено 26.08.2019

Основной расчет зарплаты

Основной расчет зарплаты - это алгоритм, который автоматически выполняется всякий раз, когда вы вносите какие-либо изменения по сотруднику. Причем это могут быть изменения, связанные с начислениями-удержаниями по конкретному сотруднику, или связанные с изменениями в личной карточке.

Основной расчет зарплаты - обязательный алгоритм. Если при запуске приложения выходит сообщение:

Не нахожу основной расчет зарплаты

Это серьезная ошибка и вам нужно обратиться к организации, которая вас обслуживает.

В основной расчет зарплаты, как правило, вынесены те виды оплат, которые автоматически должны пересчитываться при любых изменениях:

  • пояс
  • надбавка
  • подоходный налог
  • алименты и т.д.

Пример основного расчета зарплаты с комментариями:

********************************************************************
** Расчитываем поясной коэфициент (PARM.POIS - % поясного из параметров)
********************************************************************
Пояс=Сумма('Пояс')*PARM.POIS/100
=ФОРМИРОВАТЬ(Пояс,239)
*******************************************************************
* Расчитываем надбавку за стаж
*******************************************************************
СтажЛет=КолЛет(SR.NEPR,Дата)
do case
case СтажЛет<1
Коэф=0
case СтажЛет>=1 and СтажЛет<3
Коэф=10
case СтажЛет>3 and СтажЛет<=5
Коэф=20
case СтажЛет>5
Коэф=30
endcase
Надбавка=Сумма('Надб')*Коэф/100
=ФОРМИРОВАТЬ(Надбавка,iif(Коэф=10,271,iif(Коэф=20,272,273)))
*******************************************************************
* Расчитываем подоходный налог
*******************************************************************
ТекМес=Month(Дата)
=УстДат(gomonth(Дата,-ТекМес+1),Дата)
* Сумма, облагаемая НДФЛ с начала года по расчетный месяц
СумОблНал=Сумма('Подох')
* Расчитываем скидку на себя и на иждивенцев в зависимости от дохода
*Здесь подсчитываем кол-во иждивенцев по 1000 и по 3000 руб скидок
СкидСебя=SR.SKIDSVO
КолИжд=SR.KOLIJD
КолИждИнв=SR.KOLIJDINV
КолИждНеИнв=КолИжд-КолИждИнв
КолИжд1000=min(max(2-КолИждИнв,0),КолИждНеИнв)
Кол3000=(КолИждНеИнв-КолИжд1000)+КолИждИнв
Кол1000=КолИжд-Кол3000
*Вычеты на первых 2-х детей за 2011 и 2012 годы
if Year(Дата)=2011
НаИжд=1000
НаСебя=iif(СкидСебя=1,400,0)
else
НаИжд=1400
НаСебя=0
endif
do case
case СумОблНал<=40000
ВычетыС=iif(СкидСебя>4,СкидСебя*100,НаСебя)
ВычетыИ=Кол1000*НаИжд+Кол3000*3000
case СумОблНал>40000 and СумОблНал<=280000
ВычетыС=iif(СкидСебя>4,СкидСебя*100,0)
ВычетыИ=Кол1000*НаИжд+Кол3000*3000
case СумОблНал>280000
ВычетыС=iif(СкидСебя>4,СкидСебя*100,0)
ВычетыИ=0
endcase
*Удваиваем вычеты на иживенцев для единственного родителя
if SR.ONEPAR
ВычетыИ=ВычетыИ*2
endif
Вычеты=ВычетыС+ВычетыИ
replace SR.SHN with Вычеты
replace SR.NALSVOY with ВычетыС
replace SR.NALIJD with ВычетыИ
* Необлагаемый минимум по материальной помощи и подаркам (берем из параметром организации)
МатНеоблМин=PARM.NSMAT
ПодНеоблМин=PARM.NSPOD
* Материальная помощь
СумМатер=Сумма('SPRVOP.MAT')
* Подарки
СумПодар=Сумма('SPRVOP.POD')
* Сумма, облагаемая для материальной помощи и подарков
СумОблМатер=max(СумМатер-МатНеоблМин,0)
СумОблПодар=max(СумПодар-ПодНеоблМин,0)
* Сумма уже удержанного НДФЛ
=УстДат(gomonth(Дата,-ТекМес+1),gomonth(Дата,-1))
СумУдерНал=СумВоп(302,251)
* Расчитываем сумму скидок на себя и на иждивенцев с начала года по расчетный месяц
СумУменНал=Архив('ARCHIV.SHN')+SR.SHN
* Сумма, облагаемая НДФЛ с начала года с учетом всех вычетов и скидок
СумОблНал=СумОблНал-СумМатер-СумПодар-СумУменНал+СумОблМатер+СумОблПодар
* НДФЛ за год (PARM.PODPROC - % НДФЛ из параметров)
НалогГод=СумОблНал*PARM.PODPROC/100
* НДФЛ за месяц, за минусом уже удержанного НДФЛ
НалогМес=round(max(НалогГод,0)+СумУдерНал,0)
if НалогМес<>0
=ФОРМИРОВАТЬ(НалогМес,302)
endif
*******************************************************************
* Расчитываем алименты, SR.ALIM - % алиментов из карточки сотрудника
*******************************************************************
=УстДат(Дата)
if SR.ALIM>0
Алименты=Round(Сумма('АлимП')*SR.ALIM/100,0)
=ФОРМИРОВАТЬ(Алименты,306)
endif
*******************************************************************
* Расчитываем профсоюзный взнос, SR.PRF - признак "член профсоюза" из карточки сотрудника
*******************************************************************
if SR.PRF
=ФОРМИРОВАТЬ(Сумма('ПрофП')*0.01,318)
endif
*******************************************************************
* Остаток за конторой (кто-то это использует, кто-то нет) PARM.KOP - признак "переносить копейки на следующий месяц" из параметров
*******************************************************************
if PARM.KOP=.t.
СуммаНаРуки=max(0,СумНач()-СумУдер())
СумОст=СуммаНаРуки-int(СуммаНаРуки)
if СумОст>0
=ФОРМИРОВАТЬ(СумОст,375)
endif
endif
Наверх Задать вопрос