17.05.2011, 14:07 | #1 |
Участник
|
Уважаемые коллеги!
Подскажите, пожалуйста, кто знает: работает ли в стандартной версии 5.0 расчет отпускных, в частности по переходящему отпуску (т.е.не расчет ЗП по отпуску, а именно расчет отпускных, которые выплачиваются до самого отпуска). Что-то пытаюсь сделать это в Cronus демо базе (NAV50SP1 RU FP3 ExpressHRP, накатаны LCU 1-5 - нумерация по блогу Алексея Финогенова) и не выходит у меня каменный цветок. Делаю через Расчет в межпериод и через расчет аванса. Как вообще в стандарте предполагается делать расчет отпускных? (я не аксакал зарплаты, не сталкивалась раньше) |
|
18.05.2011, 12:27 | #2 |
Участник
|
Да вроде работает в простейшем случае. А что именно не получается: вообще отпуск не рассчитывается, считается неправильно или что-то еще?
|
|
18.05.2011, 12:54 | #3 |
Участник
|
Цитата:
А у меня сейчас проблема с переходящим отпуском. Пытаюсь рассчитать переходящие отпускные (запускаю расчет в межпериод, r14880), подхватывается отпуск только за первый месяц, хотя приказ введен правильно, созданы 2 ставки с одинаковыми датами периода оплаты. |
|
18.05.2011, 14:24 | #4 |
Участник
|
А если посчитать не как межрасчет, а как обычный расчет, тогда считает обе строчки (за текущий и будущий период). Чего-то я там вроде бы правил в межрасчете.
|
|
18.05.2011, 14:31 | #5 |
Участник
|
А вот и измененный кусок из DataItem Payroll Calc Type Line
// -> - Заменен кусок кода на код из отчета Payroll Calculation {BEGIN PayrollElement.RESET; PayrollElement.SETRANGE(Code,"Element Code"); IF NOT PayrollElement.FIND('-') THEN CurrReport.SKIP ELSE BEGIN EmployeeSalary.RESET; EmployeeSalary.SETRANGE("Employee No.",Employee."No."); EmployeeSalary.SETRANGE("Salary Code",PayrollElement."Wage Code"); EmployeeSalary.SETFILTER("Starting Date",'<%1',EndDateCalcPeriod); IF EmployeeSalary.FIND('+') THEN BEGIN EmployeeSalary.SETFILTER("Ending Date",'%1|>=%2',0D,CalcPeriodStartDate); IF NOT EmployeeSalary.FIND('-') THEN IF "Payroll Calc Type"."Definition Type" = 1 THEN CurrReport.SKIP; END ELSE IF "Payroll Calc Type"."Definition Type" = 1 THEN CurrReport.SKIP; EmployeePostGroup := EmployeeSalary."Payroll Posting Group"; END; } BEGIN PayrollElement.RESET; PayrollElement.SETRANGE(Code,"Element Code"); IF NOT PayrollElement.FIND('-') THEN CurrReport.SKIP ELSE BEGIN EmployeeSalary.RESET; EmployeeSalary.SETRANGE("Employee No.",Employee."No."); EmployeeSalary.SETRANGE("Salary Code",PayrollElement."Wage Code"); EmployeeSalary.SETRANGE("Starting Payment Date",CalcPeriodStartDate,EndDateCalcPeriod); IF NOT EmployeeSalary.FIND('-') THEN BEGIN EmployeeSalary.SETRANGE("Starting Payment Date"); EmployeeSalary.SETFILTER("Starting Date",'<=%1',EndDateCalcPeriod); IF NOT EmployeeSalary.FIND('-') THEN BEGIN IF "Payroll Calc Type"."Definition Type" = 1 THEN CurrReport.SKIP; END ELSE BEGIN IF EmployeeSalary.FIND('+') THEN BEGIN IF EmployeeSalary."Starting Payment Date" <> 0D THEN CurrReport.SKIP; EmployeeSalary.SETFILTER("Ending Date",'%1|>=%2',0D,CalcPeriodStartDate); IF NOT EmployeeSalary.FIND('-') THEN IF "Payroll Calc Type"."Definition Type" = 1 THEN CurrReport.SKIP; END; END; END; EmployeePostGroup := EmployeeSalary."Payroll Posting Group"; END; // <- |
|
19.05.2011, 09:20 | #6 |
Участник
|
|
|