Функції розрахунку зарплати
Шлях: Адміністрування / Функція розрахунку зарплати
Цей документ містить детальний опис усіх функцій розрахунку зарплати, які використовуються в налаштуваннях зарплатних елементів та зві тів у системі SMART Payroll. Кожна функція має унікальний номер і виконує конкретну розрахункову операцію під час обчислення зарплатного документа.
Як читати цей документ
Кожна функція описана за єдиною структурою:
- Що робить — загальний опис призначення функції
- Параметри — які дані функція приймає та з яких таблиць
- Результат — що повертає функція та які поля рядка зарплатного документа заповнює
- Логіка розрахунку — покроковий алгоритм обчислення
Групи функцій
| Діапазон номерів | Опис | Кодуніт |
|---|---|---|
| 100–550 | Час і календар, ліміти, базові суми, діапазони, розподіл, оклади | SMA Payroll Document Calculate |
| 2002–2301 | Оподаткування, утримання, суми з початку року, оклади за період, стаж, аванси | SMA Payroll Document Calculate |
| 21094000–21094050 | Оклади на дату, лікарняні, індексація, валюта, нарахування за період | SMA Payroll Document Calculate |
| 21094051–21094112 | Відпустки, резерви, перевірки даних, баланси, нетто-розрахунок | SMA Payroll Document Calculate |
| 21094900–21094924 | Діапазони, стаж, базові суми, дати дій, позиції | SMA Payroll Document Calculate |
| 21094500–21094518 | Функції для звітів: статистика, суми | SMA Payroll Report Calculation |
Примітка: Функції з позначкою ЗАСТАРІЛА збережені для зворотної сумісності. Для нових налаштувань використовуйте рекомендовані заміни.
Функції розрахунку заробітної плати (Частина 1): Час, ліміти, базові суми, оклади, аванси (100–550, 2002–2301)
Цей розділ містить функції для роботи з часом і календарем, лімітами, базовими сумами, діапазонами, окладами, оподаткуванням та авансами. Кожна функція використовується у рядках розрахунку зарплатного елемента і викликається під час обчислення зарплатного документа.
Час, календар, ліміти, базові суми, розподіл, оклади (100–550)
Функція 100 — Розрахунок тривалості часу (CalcTimeMeasure)
Що робить: Універсальна конфігурована функція, яка повертає планові або фактичні дні чи години за обраний період. Залежно від параметрів може звертатися до зарплатного календаря (планові значення) або до табеля обліку робочого часу (фактичні значення).
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код параметра | Рядок розрахунку (Parameter Code) | Обов'язковий. Визначає набір налаштувань функції у таблиці «Параметри функції розрахунку» |
| Тип тривалості часу | Параметр функції розрахунку (Time Measure Type) | Обов'язковий. Визначає, яке саме значення повертати. Можливі значення: Планові календарні дні, Планові робочі дні, Планові вихідні дні, Планові робочі години, Планові нічні години, Планові вечірні години, Планові святкові години, Офіційні версії цих же показників, Фактичні календарні дні, Фактичні години, Фактичні робочі дні, Фактичні календарні дні без свят, Планові робочі дні (за табелем) |
| Фільтр періоду | Параметр функції розрахунку (Period Filter) | Обов'язковий. Визначає діапазон дат. Можливі значення: За датами дії, За періодом оплати, За кодом періоду нарахування, За кодом періоду, За періодом премій, За датами входження, В поточному році, За періодом середнього заробітку |
| Використовувати фільтр вимірів | Параметр функції розрахунку (Use Dimensions Filter) | Необов'язковий. Якщо увімкнено, фільтрує дані табеля за вимірами (Код скороченого виміру 1, Код скороченого виміру 2) рядка ЗП документа |
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Використовується для фільтрації даних табеля за групою часових активностей |
Результат:
- Повертає: Decimal -- кількість днів або годин відповідно до обраного типу міри часу
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує параметр функції за кодом параметра з рядка розрахунку.
- Перевіряє обов'язковість полів «Тип тривалості часу» та «Фільтр періоду».
- Визначає діапазон дат (FromDate, ToDate) залежно від фільтра періоду:
- «За датами дії» -- бере дати дії з рядка документа.
- «За періодом оплати» -- бере початок та кінець періоду оплати документа.
- «За кодом періоду нарахування» -- бере дати періоду нарахування.
- «За кодом періоду» -- бере дати поточного зарплатного періоду.
- «За періодом премій» -- бере дати преміального періоду.
- «За датами входження» -- бере перетин дат дії з датами періоду.
- «В поточному році» -- від початку першого періоду року до кінця року.
- «За періодом СЗ» -- бере дати періоду середнього заробітку.
- Залежно від типу тривалості часу:
- Для планових значень -- викликає CalendarMgt.GetPeriodInfo() з календарем працівника або офіційним календарем (для типів «Off.»).
- Для фактичних значень -- викликає TimesheetMgt.GetTimesheetInfo() або TimesheetMgt.GetTimesheetInfoWithDimension() (якщо увімкнено фільтр вимірів).
- Повертає отримане числове значення.
Функція 150 — Отримання ліміту зарплати (GetPayrollLimit)
Що робить: Повертає значення зарплатного ліміту із таблиці «Ліміти зарплати» за заданим типом ліміту та періодом.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код параметра | Рядок розрахунку (Parameter Code) | Обов'язковий. Визначає налаштування функції |
| Тип ліміту зарплати | Параметр функції розрахунку (Payroll Limit Type) | Визначає, який ліміт повертати. Можливі значення: МРОТ, Ліміт ЄСВ, Поріг індексації, Прожитковий мінімум, МРОТ погодинний, Комп енсаційний коефіцієнт, Норма добових, Норма добових за кордоном |
| Фільтр періоду | Параметр функції розрахунку (Period Filter) | Обов'язковий. Визначає, який період використовувати для пошуку ліміту. Можливі значення: За кодом періоду, За кодом періоду нарахування, За періодом оплати, В поточному році, За датами дії, За датами входження, За періодом премій |
Результат:
- Повертає: Decimal -- сума ліміту з таблиці «Ліміти зарплати»
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує параметр функції та перевіряє обов'язковість фільтра періоду.
- Визначає код періоду залежно від фільтра:
- «За кодом періоду» -- бере Period Code рядка документа.
- «За кодом періоду нарахування» -- бере Wage Period From.
- «За періодом оплати» -- бере період оплати документа.
- «В поточному році» -- бере код першого періоду року.
- «За датами дії» -- знаходить період за датою початку дії.
- «За датами входження» -- знаходить пері од за датою початку документа.
- «За періодом премій» -- бере код періоду премій.
- Шукає в таблиці «Ліміти зарплати» останній запис з типом ліміту та кодом періоду
<=визначеного. - Повертає поле Amount знайденого запису або 0, якщо запис не знайдено.
Функція 220 — Базова сума з поточного документа (BaseAmount)
Що робить: Підсумовує суми з рядків поточного зарплатного документа відповідно до налаштувань таблиці «Базова сума зарплати». Це основна функція для визначення бази нарахування або утримання.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Обов'язковий. Визначає набір фільтрів у таблиці «Базова сума зарплати» |
Налаштування фільтрів у таблиці «Базова сума зарплати»:
| Параметр | Опис |
|---|---|
| Фільтр працівника (Employee Filter) | За працівником / За особою / За іншими працівниками |
| Фільтр періоду (Period Filter) | За кодом періоду / За кодом періоду нарахування / За преміальним періодом / За датами дії / За датами входження / За періодом оплати |
| Тип суми (Amount Type) | Сума зарплати / Корег. сума / Оподатковувана сума / Податковий відрахунок та інші |
| Фільтр коду елемента (Element Code Filter) | Фільтр за кодом зарплатного елемента |
| Фільтр типу елемента (Element Type Filter) | Фільтр за типом елемента |
| Фільтр групи елементів (Element Group Filter) | Фільтр за групою елементів |
| Фільтр бази ПДФО (Income Tax Base Filter) | Фільтр за базою оподаткування ПДФО |
| Фільтр бази ЄСВ (SSC Base Filter) | Фільтр за базою ЄСВ |
Результат:
- Повертає: Decimal -- сума відповідно до налаштованого типу суми
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує налаштування базово ї суми за кодом елемента та кодом базової суми.
- Перевіряє обов'язковість поля «Тип суми».
- Визначає фільтр по працівнику:
- «За працівником» -- фільтрує за номером документа поточного рядка.
- «За особою» -- фільтрує за кодом особи серед усіх документів. Якщо група розрахунку має тип «Міжрозрахунковий» (Between), додатково агрегує дані з проведених документів інших розрахункових груп.
- «За іншими працівниками» -- фільтрує за кодом особи, виключаючи поточного працівника.
- Встановлює фільтри за базовою сумою (коди елементів, типи, групи тощо).
- Встановлює фільтр періоду згідно з налаштуванням.
- Підсумовує відповідний тип суми з відфільтрованих рядків документа.
- Повертає результат.
Функція 230 — Деталізована базова сума (DetailedBaseAmount)
Що робить: Повертає деталізовану базову суму для податків. На відміну від функції 220, працює з таблицею «Деталізована база для податку» та створює в ній записи для подальшого розподілу суми податку між джерелами.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Обов'язковий. Визначає фільтри у таблиці «Базова сума зарплати» |
Результат:
- Повертає: Decimal -- деталізована базова сума відповідно до типу суми (Сума зарплати, Корег. сума або Податковий відрахунок)
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує налаштування базової суми та перевіряє обов'язковість типу суми.
- Фільтрує таблицю «Деталізована база для податку» за номером документа бази та номером документа податку.
- Встановлює фільтр за кодом елемента зарплати та кодом елемента податку.
- Залежно від типу суми підсумовує відповідне поле (Корег. сума, Сума зарплати або Сума відрахування).
- Повертає підсумок.
Функція 247 — Базовий баланс з книги операцій (BaseBalance)
Що робить: Повертає суму з проведених операцій зарплати (таблиця «Книга операцій зарплати»). На відміну від функції 220, яка працює з поточним документом, ця функція читає дані з уже проведених документів.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Обов'язковий. Визначає фільтри у таблиці «Базова сума зарплати» |
Фільтри аналогічні функції 220, але застосовуються до таблиці «Книга операцій зарплати».
Результат:
- Повертає: Decimal -- сума з проведених операцій зарплати
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує налаштування базової суми та перевіряє обов'язковість типу суми.
- Встановлює фільтри базової суми на таблицю «Книга операцій зарплати».
- Визначає фільтр по працівнику (За працівником / За особою / За іншими працівниками).
- Визначає фільтр періоду:
- «За кодом періоду» -- може використовувати попередній період (якщо увімкнено прапорець «Використовувати попередній період»).
- «За кодом періоду нарахування» -- фільтрує за Wage Period From.
- Інші фільтри аналогічні функції 220.
- Підсумовує відповідний тип суми з відфільтрованих операцій.
- Повертає результат.
Функція 249 — Утримання за діапазоном (Deduction)
Що робить: Розраховує суму утримання на основі рядків діапазону (шкали). Функція використовується для розрахунку утримань, що залежать від суми та мають прогресивну або табличну структуру.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Заголовок діапазону | Визначається автоматично (GetRangeHeader) | Завантажується за кодом елемента, типом діапазону та кодом діапазону з рядка розрахунку |
| Тип діапазону | Р ядок розрахунку (Range Type) | Тип діапазону зарплати |
| Код діапазону | Рядок розрахунку (Range Code) | Код конкретного діапазону |
Результат:
- Повертає: Decimal -- сума утримання, розрахована за рядками діапазону
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує кількість пільг із книги операцій елементів зарплати працівника.
- Фільтрує рядки діапазону за кодом елемента, кодом діапазону, кодом періоду.
- Додатково фільтрує за статтю працівника (якщо дозволено в заголовку), датою народження та статусом інвалідності.
- Перебирає рядки діапазону (від найбільшого до найменшого):
- Якщо рядок містить «Суму понад» -- перевіряє, чи перевищено цей поріг.
- Розраховує суму утримання = Сума + (Річна база * Відсоток / 100).
- Якщо увімкнено «На пільгу» -- множить на кількість пільг.
- Перевіряє мінімальну та максимальну суми рядка.
- Приводить результат до місячного значення (ділить на 12).
- Повертає підсумкову суму утримання.
Функція 250 — Базова сума з початку року (YTDBaseAmount)
Що робить: Повертає суму з книги операцій зарплати (проведених документів) з початку календарного року. Використовує ті ж самі фільтри базової суми, що і функція 220, але читає з проведених даних за період від першого періоду року.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Обов'язковий. Визначає фільтри у таблиці «Базова сума зарплати» |
Результат:
- Повертає: Decimal -- сума з початку року з книги операцій зарплати
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує налаштування базової суми та перевіряє тип суми.
- Встановлює фільтри базової суми на таблицю «Книга операцій зарплати».
- Визначає фільтр по працівнику (За працівником / За особою / За іншими).
- Визначає фільтр періоду:
- «За кодом періоду» -- від першого періоду року до поточного (або попереднього, якщо увімкнено).
- «За кодом періоду нарахування» -- аналогічно.
- «За періодом премій» -- фільтрує за преміальним періодом.
- «За датами дії» -- за діапазоном дат дії.
- «За датами входження» -- за вкладеними датами.
- «За періодом оплати» -- від першого періоду року до періоду оплати.
- Підсумовує відповідний тип суми та повертає результат.
Функція 252 — Мінімальне значення діапазону (Brackets Min)
Що робить: Повертає мінімальну суму з першого відповідного рядка діапазону зарплати. Використовується для отримання порогових значень з довідника діапазонів.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Заголовок діапазону | Визначається автоматично (GetRangeHeader) | Завантажується за кодом елемента, типом та кодом діапазону |
| Тип діапазону | Рядок розрахунку (Range Type) | Тип діапазону |
| Код діапазону | Рядок розрахунку (Range Code) | Код діапазону |
Результат:
- Повертає: Decimal -- значення поля «Мін. сума» першого відповідного рядка діапазону
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує заголовок діапазону (GetRangeHeader).
- Фільтрує рядки діапазону за кодом діапазону, кодом елемента, кодом періоду.
- Додатково фільтрує за статтю (якщо дозволено) та датою народження працівника.
- Знаходить перший рядок та повертає значення поля «Min Amount».
- Якщо рядок не знайдено, повертає 0.
Функція 253 — Максимальне значення діапазону (Brackets Max)
Що робить: Повертає максимальну суму з першого відповідного рядка діапазон у зарплати. Аналогічна функції 252, але повертає інше поле.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Заголовок діапазону | Визначається автоматично (GetRangeHeader) | Завантажується за кодом елемента, типом та кодом діапазону |
| Тип діапазону | Рядок розрахунку (Range Type) | Тип діапазону |
| Код діапазону | Рядок розрахунку (Range Code) | Код діапазону |
Результат:
- Повертає: Decimal -- значення поля «Макс. сума» першого відповідного рядка діапазону
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує заголовок діапазону (GetRangeHeader).
- Фільтрує рядки діапазону за кодом діапазону, кодом елемента, кодом періоду.
- Додатково фільтрує за статтю та датою народження працівника.
- Знаходить перший рядок та повертає значення поля «Max Amount».
- Якщо рядок не знайдено, повертає 0.
Функція 255 — Кількість з діапазону (Brackets Quantity)
Що робить: Повертає значення поля «Кількість» з першого відповідного рядка діапазону зарплати.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Заголовок діапазону | Визначається автоматично (GetRangeHeader) | Завантажується за кодом елемента, типом та кодом діапазону |
| Тип діапазону | Рядок розрахунку (Range Type) | Тип діапазону |
| Код діапазону | Рядок розрахунку (Range Code) | Код діапазону |
Результат:
- Повертає: Decimal -- значення поля «Quantity» першого відповідного рядка діапазону
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує заголовок діапазону (GetRangeHeader).
- Фільтрує рядки діапазону аналогічно функціям 252/253.
- Знаходить перший рядок та повертає значення поля «Quantity».
- Якщо рядок не знайдено, повертає 0.
Функція 261 — Баланс до дати (BalanceToDate)
Що робить: Повертає суму нарахувань зарплати з книги операцій для працівника та елемента з початку року до поточного періоду включно.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично з поточного рядка |
| Тип елемента | Рядок документа ЗП (Element Type) | Автоматично з поточного рядка |
| Код елемента | Рядок документа ЗП (Element Code) | Автоматично з поточного рядка |
| Код періоду | Рядок документа ЗП (Period Code) | Автоматично з поточного рядка |
Результат:
- Повертає: Decimal -- сума зарплати (Payroll Amount) з книги операцій
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Фільтрує книгу операцій за кодом працівника, типом та кодом елемента.
- Встановлює фільтр періоду від першого періоду року до поточного періоду рядка.
- Використовує FlowField «SMA Payroll Amount» картки працівника для підсумовування.
- Повертає підсумкову суму.
Функція 263 — Сума оподатковуваного податку з початку року (YTDTaxableIncomeTax)
Що робить: Повертає суму оподатковуваного доходу (Taxable Amount) з книги операцій зарплати для працівника, елемента та типу проведення з початку року до поточного періоду включно.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично з поточного рядка |
| Тип елемента | Рядок документа ЗП (Element Type) | Автоматично |
| Тип проведення | Рядок документа ЗП (Posting Type) | Автоматично |
| Код елемента | Рядок документа ЗП (Element Code) | Автоматично |
| Код періоду | Рядок документа ЗП (Period Code) | Автоматично |
Результат:
- Повертає: Decimal -- оподатковувана сума з початку року
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Фільтрує книгу операцій за працівником, типом елемента, типом проведення та кодом елемента.
- Встановлює фільтр періоду від першого періоду року до поточного періоду рядка (включно).
- Використовує FlowField «SMA Taxable Amount» для підсумовування.
- Повертає суму оподатковуваного доходу.
Функція 270 — Отримання ліміту МРОТ (GetFSILimit MROT)
ЗАСТАРІЛА. Замінена функцією 150 (GetPayrollLimit) з відповідним типом ліміту.
Що робить: Повертає значення МРОТ (мінімального розміру оплати праці) з таблиці «Ліміти зарплати» за поточний період.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код періоду | Рядок документа ЗП (Period Code) | Автоматично з поточного рядка |
Результат:
- Повертає: Decimal -- значення МРОТ
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Шукає в таблиці «Ліміти зарплати» запис з типом MROT та кодом періоду
<=поточного. - Повертає поле Amount або 0.
Функція 271 — Отримання ліміту ЄСВ (GetFSILimit SSC)
ЗАСТАРІЛА. Замінена функцією 150 (GetPayrollLimit) з відповідним типом ліміту.
Що робить: Повертає граничне значення бази нарахування ЄСВ з таблиці «Ліміти зарплати».
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код періоду | Рядок документа ЗП (Period Code) | Автоматично з поточного рядка |
Результат:
- Повертає: Decimal -- гранична сума для ЄСВ
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Шукає в таблиці «Ліміти зарплати» запис з типом SSC Limit та кодом періоду
<=поточного. - Повертає поле Amount або 0.
Функція 280 — Оновлення коду елемента (UpdatePayrollElementCode)
Що робить: Замінює код елемента зарплати, код базової суми та групу часових активностей на рядку зарплатного документа. Нові значення беруться з налаштувань базової суми та часової групи параметра функції.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Визначає новий код елемента через фільтр кодів елементів базової суми |
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Визначає нову часову активність |
Результат:
- Повертає: Integer (0)
- Заповнює поля рядка ЗП документа: Код елемента (Element Code), Код часової активності (Time Activity Code)
Логіка розрахунку:
- Завантажує налаштування базової суми за кодом елемента та кодом базової суми.
- Визначає новий код елемента з фільтра кодів елементів базової суми (бере перший до символу «|»).
- Визначає нову часову активність з фільтра часових активностей групи.
- Якщо код елемента відрізняється ві д поточного -- оновлює його через Validate.
- Якщо код часової активності відрізняється -- оновлює його.
- Оновлює записи табеля, замінюючи код часової активності в деталях табеля.
Функція 290 — Створення повідомлення (CreateAttention)
Що робить: Створює запис повідомлення (увага) у панелі фактів зарплатного документа. Текст повідомлення береться з поля «Текст повідомлення» рядка розрахунку. Зазвичай використовується після оператора IF для попередження про особливі умови.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Текст повідомлення | Рядок розрахунку зарплати (Attention Text) | Текст, що відображатиметься у панелі фактів. Підтримує підстановку коду елемента та номера рядка |
Результат:
- Повертає: Integer (0)
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Знаходить актуальний рядок розрахунку елемента з текстом повідомлення.
- Перевіряє, чи вже існує аналогічне повідомлення для цього рядка документа.
- Якщо повідомлення ще немає, створює новий запис у таблиці «Повідомлення документа» з відформатованим текстом.
Функція 300 — Група інвалідності (GetPersonGroupDisability)
Що робить: Повертає номер групи інвалідності працівника (1, 2 або 3) на визначену дату. Якщо працівник не має інвалідності, повертає 0.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код параметра | Рядок розрахунку (Parameter Code) | Обов'язковий. Визначає, яку дату використовувати для перевірки інвалідності |
| Фільтр періоду | Параметр функції розрахунку (Period Filter) | Визначає дату перевірки: За кодом періоду нарахування, За кодом періоду, За періодом оплати, В поточному році або За датами дії |
Результат:
- Повертає: Integer -- номер групи інвалідності (1, 2, 3) або 0
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує параметр функції та визначає дату перевірки залежно від фільтра періоду.
- Шукає в таблиці «Медична інформація особи» запис з типом «Інвалідність».
- Фільтрує за кодом особи, датою початку
<=поточної дати, датою закінчення>=поточної дати (або порожньою). - Фільтрує за непорожньою групою інвалідності.
- Повертає номер групи інвалідності або 0.
Функція 310 — Перерахунок рядка (RecalculateLine)
Що робить: Перераховує інші рядки в поточному документі. Використовується, коли зміна одного елемента потребує перерахунку інших залежних елементів.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Обов'язковий. Визначає, які рядки документа потрібно перерахувати через фільтри базової суми |
Результат:
- Повертає: Integer (0)
- Заповнює поля рядка ЗП документа: Перераховує залежні рядки (обнуляє та перераховує їхні суми)
Логіка розрахунку:
- Зберігає поточний рядок документа (Modify).
- Завантажує налаштування базової суми.
- Знаходить рядки документа, що відповідають фільтрам базової суми та мають номер рядка менший за поточний.
- Для кожного знайденого рядка:
- Видаляє пов'язані записи середнього заробітку та страхового стажу.
- Обнуляє всі суми та часові показники рядка.
- Запускає повний перерахунок рядка через codeunit «SMA Payroll Document Calculate».
- Зберігає перерахований рядок.
Функція 320 — Чиста сума (GetNetAmount)
Що робить: Повертає ознаку, чи є рядок нетто-су мою (чиста сума до виплати). Фактично перевіряє прапорець «Net Amount» на рядку документа.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Рядок документа ЗП | Автоматично |
Результат:
- Повертає: Integer -- 1, якщо рядок має ознаку «Net Amount» (нетто), 0 в іншому випадку
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Перевіряє поле «Net Amount» рядка документа.
- Якщо true, повертає 1; інакше -- 0.
Функція 330 — Суми з проведених міжперіодних документів (GetAmountsFromPostedInterperiodPayrollDocuments)
Що робить: Повертає суми з проведених міжперіодних зарплатних документів, які мають створену виплату. Використовується для врахування сум, нарахованих в інших розрахункових групах типу «Між».
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Обов'язковий. Визначає фільтри |
Результат:
- Повертає: Decimal -- сума з проведених міжперіодних документів
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Завантажує налаштування базової суми.
- Знаходить усі проведені документи з групами розрахунку типу «Між» (Between).
- Фільтрує за працівником, кодом періоду, ознакою створеної виплати.
- Виключає коригувальні та сторнувальні документи.
- Фільтрує рядки проведених документів за налаштуваннями базової суми та фільтром періоду.
- Підсумовує відповідний тип суми та повертає результат.
Функція 340 — Норма годин поточного місяця (SumOfNormHours current month)
Що робить: Повертає норму робочих годин для поточного місяця з нормат ивного календаря. Використовується для підсумованого обліку робочого часу.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Дата закінчення дії | Рядок документа ЗП (Action Ending Date) | Визначає поточний місяць |
Результат:
- Повертає: Decimal -- норма робочих годин з нормативного календаря
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує календар працівника на дату закінчення дії.
- Перевіряє, чи увімкнено підсумований облік робочого часу.
- Визначає діапазон дат згідно з типом облікового періоду (місяць, квартал, півріччя, рік, тиждень).
- Розраховує норму годин з нормативного календаря за допомогою CalendarMgt.GetPeriodInfo (робочі години).
- Повертає норму годин без усереднення.
Функція 345 — Норма годин за рік (SumOfNormHours entire year)
Що робить: Аналогічна функції 340, але повертає середньомісячну норму годин за обліковий період. Використовує той самий механізм підсумованого обліку робочого часу.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Дата закінчення дії | Рядок документа ЗП (Action Ending Date) | Визначає поточний місяць |
Результат:
- Повертає: Decimal -- середньомісячна норма годин за обліковий період
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Виконує кроки 1--4 функції 340.
- Додатково ділить результат на кількість місяців в обліковому періоді (3 для кварталу, 6 для півріччя, 12 для року).
- Повертає округлену середньомісячну норму.
Функція 400 — Розподіл суми при обліку (AllocatePEPayrollAmount)
Що робить: Розподіляє суму нарахування зарплати за вимірами проведення. Створює рядки розподілу для подальшого проведення відповідно до групи розподілу працівника.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код базової суми | Рядок розрахунку (Base Amount Code) | Необов'язковий. Якщо задано, визначає фільтр елемента через базову суму |
Результат:
- Повертає: Integer (0)
- Заповнює поля рядка ЗП документа: Створює записи у таблиці «Розподіл рядка ЗП документа» (SMA Payroll Doc. Line PE Alloc)
Логіка розрахунку:
- Видаляє існуючі рядки розподілу для цього рядка документа.
- Отримує код групи розподілу з картки працівника.
- Якщо група не задана -- виходить без дій.
- Знаходить тип групи розподілу за кодом елемента та періодом.
- Для кожного рядка групи розподілу створює запис розподілу з відсотком, групою проведення та набором вимірів.
Функція 500 — Середній оклад на дату (погодинний) (GetAESalaryByDate hourly)
Що робить: Повертає базовий оклад працівника на задану дату, перерахований у погодинну ставку.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Дата початку дії | Рядок документа ЗП (Action Starting Date) | Дата, на яку визначається оклад |
Результат:
- Повертає: Decimal -- погодинна ставка базового окладу
- Заповнює поля рядка ЗП документа: --
Логіка розр ахунку:
- Знаходить останній запис окладу в книзі операцій елементів зарплати, чинний на задану дату.
- Використовує фільтр елементів окладу з налаштувань кадрів (Код елемента оклад за днями, Код елемента оклад за годинами, Код елемента оклад сумою).
- Ділить суму окладу на кількість робочих годин за місяць із календаря працівника.
- Для елемента погодинної ставки множить на кількість годин з офіційного календаря.
- Для елемента денної ставки множить на кількість днів з офіційного календаря.
- Повертає погодинну ставку.
Функція 501 — Середня додаткова зарплата на дату (погодинна) (GetAEExtraSalaryByDate hourly)
Що робить: Повертає суму додаткових виплат (надбавок), які залежать від базового окладу, перерахованих у погодинну ставку.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Дата початку дії | Рядок документа ЗП (Action Starting Date) | Дата, на яку визначаються надбавки |
Результат:
- Повертає: Decimal -- погодинна ставка додаткових виплат
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Знаходить усі зарплатні елементи, у яких поле «Залежить від елемента окладу» посилається на елемент окладу.
- Для кожного такого елемента знаходить чинний запис у книзі операцій на задану дату.
- Ділить суму кожного елемента на кількість робочих годин за місяць із календаря.
- Підсумовує та повертає загальну погодинну ставку надбавок.
Функція 502 — Загальний заробіток на дату (погодинний) (Sum of 500+501)
Що робить: Повертає повний заробіток (базовий оклад + додаткові виплати) у вигляді погодинної ставки. Це сума результатів функцій 500 та 501.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Дата початку дії | Рядок документа ЗП (Action Starting Date) | Дата |
Результат:
- Повертає: Decimal -- сума погодинних ставок окладу та надбавок
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Викликає GetAESalaryByDate (з прапорцем ByHours = true) -- отримує погодинну ставку окладу.
- Викликає GetAEExtraSalaryByDate (з прапорцем ByHours = true) -- отримує погодинну ставку надбавок.
- Повертає суму двох значень.
Функція 550 — Базовий оклад на дату у місцевій валюті (GetSalaryByDateLCY)
Що робить: Повертає базовий оклад працівника на задану дату, конвертований у місцеву валюту. Підтримує оклади у іноземних валютах з автоматичним перерахунком за курсом.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Дата початку документа | Рядок документа ЗП (Document Starting Date) | Дата, на яку визначається оклад |
| Дата проведення | Рядок документа ЗП (Posting Date) | Дата для конвертації валюти |
Результат:
- Повертає: Decimal -- сума окладу у місцевій валюті
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Знаходить чинний запис окладу в книзі операцій елементів зарплати на задану дату.
- Якщо оклад у іноземній валюті -- перераховує через курс валют на дату проведення.
- Для елемента погодинної ставки -- множить на кількість робочих го дин з офіційного календаря за місяць.
- Для елемента денної ставки -- множить на кількість робочих днів з офіційного календаря за місяць.
- Повертає суму у місцевій валюті.
Оподаткування, утримання, оклади за період, стаж, аванси (2002–2301)
Функція 2002 — Утримання податку за шкалою (Withholding)
Що робить: Розраховує суму утримання податку за прогресивною шкалою (рядки діапазону зарплати). Основна функція для розрахунку ПДФО та інших податків, що використовують шкалу ставок.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Заголовок діапазону | Визначається автоматично (GetRangeHeader) | Заван тажується за кодом елемента, типом та кодом діапазону |
| Тип діапазону | Рядок розрахунку (Range Type) | Тип діапазону |
| Код діапазону | Рядок розрахунку (Range Code) | Код діапазону |
| Оподатковувана база | Рядок документа ЗП (Corr. Amount) | Корегована сума для розрахунку податку |
Результат:
- Повертає: Decimal -- сума утримання (повертається з від'ємним знаком; виклик функції інвертує знак)
- Заповнює поля рядка ЗП документа: Код довідника (Directory Code) -- якщо рядок діапазону містить код довідника
Логіка розрахунку:
- Визначає знак оподатковуваної бази (додатна чи від'ємна).
- Перевіряє, чи є елемент типом «Фонд» (SSC) -- впливає на порядок сортування.
- Фільтрує рядки діапазону за кодом елемента, кодом діапазону, кодом періоду.
- Додатково фільтрує за:
- Статтю працівника (якщо дозволено в заголовку діапазону).
- Датою народження (якщо дозволено фільтр за віком).
- Статусом інвалідності на дату початку дії.
- Знаходить останній рядок, де «Сума понад» менша за абсолютне значення бази.
- Якщо рядок не знайдено для інвалідів -- знімає фільтр інвалідності та шукає повторно.
- Якщо жодного рядка не знайдено -- повертає 0.
- Формула: Сума податку = Сума фіксованого податку + (Оподатковувана база - Знак Сума понад) Відсоток податку / 100
- Якщо результат < 0 і документ не є коригувальним -- повертає 0.
- Якщо задано максимальне утримання і результат його перевищує -- обмежує результат.
- Якщо рядок діапазону має код довідника -- оновлює поле «Код довідника» на рядку документа.
- Повертає суму утримання.
Функція 2003 — Оподатковувана сума з початку року (YTDTaxableAmount)
Що робить: Повертає оподатковувану суму (Taxable Amount) з книги операцій зарплати за період від першого періоду року до попереднього періоду.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Тип елемента | Рядок документа ЗП (Element Type) | Автоматично |
| Тип проведення | Рядок документа ЗП (Posting Type) | Автоматично |
| Код елемента | Рядок документа ЗП (Element Code) | Автоматично |
Результат:
- Повертає: Decimal -- оподатковувана сума з початку року до попереднього періоду
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Фільтрує книгу операцій за працівником, типом елемента, типом проведення та кодом елемента.
- Встановлює фільтр зарплатного періоду від першого періоду року до попереднього періоду (не включаючи поточний).
- Використовує FlowField «SMA Taxable Amount» для підсумовування.
- Повертає результат.
Функція 2005 — Сума зарплати з початку року (YTDPayrollAmount)
Що робить: Повертає суму нарахувань зарплати (Payroll Amount) з книги операцій за період від першого періоду року до попереднього періоду.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Тип елемента | Рядок документа ЗП (Element Type) | Автоматично |
| Тип проведення | Рядок документа ЗП (Posting Type) | Автоматично |
| Код елемента | Рядок документа ЗП (Element Code) | Автоматично |
Результат:
- Повертає: Decimal -- сума зарплати з початку року до попереднього періоду
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Фільтрує книгу операцій за працівником, типом елемента, типом проведення та кодом елемента.
- Встановлює фільтр зарплатного періоду від першого періоду року до попереднього періоду.
- Використовує FlowField «SMA Payroll Amount» для підсумовування.
- Повертає результат.
Функція 2036 — Скоригована сума за попередній період (YTDTypeAmount)
Що робить: Повертає скориговану суму (Corr. Amount) з книги операцій зарплати за попередній період. Використовується для отримання коригувальних сум, що потребують перенесення у поточний період.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Тип елемента | Рядок документа ЗП (Element Type) | Автоматично |
| Код елемента | Рядок документа ЗП (Element Code) | Автоматично |
Результат:
- Повертає: Decimal -- Скоригована сума за попередній період
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Фільтрує книгу операцій за працівником, типом елемента та кодом елемента.
- Встановлює фільтр зарплатного періоду точно на попередній період.
- Використовує FlowField «SMA Corr. Amount» для підсумовування.
- Повертає результат.
Функція 2070 — Початковий баланс (GetStartingBalance)
Що робить: Повертає заключне сальдо попереднього місяця, що відповідає залишку заборгованості або переплати працівника. Використовується для відстеження боргу/авансу працівника.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
Результат:
- Повертає: Decimal -- початковий баланс (з інвертованим знаком)
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує картку працівника.
- Встановлює фільтр дати від початку до дня, що передує початку поточного зарплатного періоду.
- Розраховує FlowField «SMA Net Change (LCY)» (чисте сальдо у місцевій валюті).
- Повертає від'ємне значення сальдо (інвертує знак): -Employee."SMA Net Change (LCY)".
Функція 2100 — Години з табеля за групою часових активностей (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Фактичні години».
Що робить: Повертає кількість годин з табеля для зазначеної групи часових акт ивностей за кодом періоду.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для фільтрації |
Результат:
- Повертає: Decimal -- кількість годин з табеля
- Заповнює поля рядка ЗП документа: --
Функція 2101 — Дні з табеля за групою часових активностей (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Фактичні робочі дні».
Що робить: Повертає кількість днів з табеля для зазначеної групи часових активностей за кодом періоду.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для фільтрації |
Результат:
- Повертає: Decimal -- кількість днів з табеля
- Заповнює поля рядка ЗП документа: --
Функція 2102 — Календарні дні у періоді (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові календарні дні» та фільтром «За кодом періоду».
Що робить: Повертає кількість календарних днів у зарплатному періоді з виробничого календаря.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Бере календар працівника та дати зарплатного періоду |
Результат:
- Повертає: Decimal -- кількість календарних днів у періоді
- Заповнює поля рядка ЗП документа: --
Функція 2103 — Робочі дні у році (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові робочі дні» та фільтром «В поточному році».
Що робить: Повертає кількість робочих днів з виробничого календаря за цілий рік.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Бере календар працівника, дати від першого періоду року до кінця року |
Результат:
- Повертає: Decimal -- кількість робочих днів у році
- Заповнює поля рядка ЗП документа: --
Функція 2104 — Робочі дні у періоді (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові робочі дні» та фільтром «За кодом періоду».
Що робить: Повертає кількість робочих днів з виробничого календаря за зарплатний період.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Бере календар працівника та дати зарплатного періоду |
Результат:
- Повертає: Decimal -- кількість робочих днів у періоді
- Заповнює поля рядка ЗП документа: --
Функція 2105 — Робочі години у періоді (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові робочі години» та фільтром «За кодом періоду».
Що робить: Повертає кількість робочих годин з виробничого календаря за зарплатний період.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Бере календар працівника та дати зарплатного періоду |
Результат:
- Повертає: Decimal -- кількість робочих годин у періоді
- Заповнює поля рядка ЗП документа: --
Функція 2106 — Робочі години у році (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові робочі години» та фільтром «В поточному році».
Що робить: Повертає кількість робочих годин з виробничого календаря за цілий рік.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Бере календар працівника, дати від першого періоду року до кінця року |
Результат:
- Повертає: Decimal -- кількість робочих годин у році
- Заповнює поля рядка ЗП документа: --
Функція 2107 — Календарні дні на перетині дат дії та періоду (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові календарні дні» та фільтром «За датами входження».
Що робить: Повертає кількість календарних днів на перетині дат дії рядка документа та дат зарплатного періоду.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Дата початку дії | Рядок документа ЗП (Action Starting Date) | Автоматично |
| Дата закінчення дії | Рядок документа ЗП (Action Ending Date) | Автоматично |
Результат:
- Повертає: Decimal -- кількість календарних днів на перетині
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Визначає початкову дату як максимум із дати початку дії та початку періоду.
- Визначає кінцеву дату як мінімум із дати закінчення дії та закінчення періоду.
- Повертає кількість календарних днів за цей діапазон.
Функція 2108 — Робочі години на перетині дат дії та періоду (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові робочі години» та фільтром «За датами входження».
Що робить: Повертає кількість робочих годин на перетині дат дії рядка документа та дат зарплатного періоду.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Дата початку дії | Рядок документа ЗП (Action Starting Date) | Автоматично |
| Дата закінчення дії | Рядок документа ЗП (Action Ending Date) | Автоматично |
Результат:
- Повертає: Decimal -- кількість робочих годин на перетині
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Визначає початкову дату як максимум із дати початку дії та початку періоду.
- Визначає кінцеву дату як мінімум із дати з акінчення дії та закінчення періоду.
- Повертає кількість робочих годин за цей діапазон (CalendarMgt.GetPeriodInfo, What=3).
Функція 2110 — Заповнення даних середнього заробітку (FillDocLineAEData)
Що робить: Головна точка входу для розрахунку середнього заробітку. Заповнює таблиці «Середній заробіток рядка документа ЗП» та «Період середнього заробітку ЗП». Визначає налаштування розрахунку СЗ залежно від типу документа (відпустка, лікарняний, відрядження тощо).
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код налаштування СЗ | Рядок розрахунку (AE Setup Code) | Необов'язковий. Код конкретного налаштування СЗ. Якщо не задано, визначається автоматично за типом документа |
Результат:
- Повертає: Decimal -- розрахований середній заробіток
- Заповнює поля рядка ЗП документа: Дані середнього заробітку (AE Daily Earnings, AE Hourly Earnings), Період СЗ (AE Period From, AE Period To)
Логіка розрахунку:
- Перевіряє обов'язковість дати початку дії та коду елемента.
- Видаляє попередні записи середнього заробітку та періодів СЗ для цього рядка.
- Визначає тип розрахунку СЗ за типом документа:
- Відпустка -- «Vacation» (або «Vacation Compensation» для компенсації).
- Лікарняний -- «Sick Leave», «Child Care 1», «Child Care 2» або «Pregnancy Leave» залежно від типу лікарняного.
- Інша відсутність або відрядження -- «Others».
- Знаходить останнє актуальне налаштування СЗ за типом та періодом.
- Заповнює періоди та суми середнього заробітку відповідно до налаштувань.
- Повертає розрахований середній заробіток.
Функція 2111 — Максимальн ий середній заробіток лікарняного (GetMaxDailyPayment)
Що робить: Повертає максимальне значення денного середнього заробітку для розрахунку лікарняного. Значення береться з налаштувань лікарняних.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Рядок документа ЗП | Автоматично | Використовується тип лікарняного та дата початку дії |
Результат:
- Повертає: Decimal -- максимальний середній заробіток
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Шукає в таблиці «Налаштування лікарняних» записи з типом «Salary Limits».
- Фільтрує за типом лікарняного та датою початку дії.
- Повертає значення поля «Maximal Average Earning».
Функція 2112 — Мінімальна сума нарахування лікарняного (GetMinWageAmount)
Що робить: Повертає максимальну суму нарахування лікарняного з урахуванням страхового стажу працівника. Значення береться з налаштувань лікарняних.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Рядок документа ЗП | Автоматично | Використовується тип лікарняного та тривалість стажу |
Результат:
- Повертає: Decimal -- максимальна (обмежувальна) сума нарахування
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Шукає в таблиці «Налаштування лікарняних» відповідний запис.
- Враховує страховий стаж працівника для визначення порога.
- Повертає значення поля «Maximal Wage Amount» (максимальна сума зарплати для лікарняного).
Функція 2113 — Оклад за попередній період (GetSalaryPrevPeriod)
Що робить: Повертає суму нарахувань за елементами окладу з попереднього зарплатного періоду. Використовується для порівняння або розрахунку індексації.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
Результат:
- Повертає: Decimal -- сума окладу за попередній період
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Визначає попередній зарплатний період (зсув на -1 від поточного).
- Фільтрує книгу операцій за працівником, попереднім періодом та фільтром елементів окладу.
- Фільтр елементів формується з налаштувань кадрів: «Код елемента оклад за днями» + «Код елемента оклад за годинами» + «Код елемента оклад сумою» + «Код елемента погодинна ставка» + «Код елемента денна ставка».
- Використовує FlowField «SMA Payroll Amount» для пі дсумовування.
- Повертає суму. Якщо попередній період не існує, повертає 0.
Функція 2114 — Календарні дні у періоді нарахування (ЗАСТАРІЛА)
ЗАСТАРІЛА. Замінена функцією 100 (CalcTimeMeasure) з типом «Планові календарні дні» та фільтром «За кодом періоду нарахування».
Що робить: Повертає кількість календарних днів у періоді нарахування (Wage Period) з виробничого календаря.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Бере календар працівника та дати періоду нарахування |
Результат:
- Повертає: Decimal -- кількість календарних днів у періоді нарахування
- Заповнює поля рядка ЗП документа: --
Функція 2220 — Базовий оклад за період (GetBaseSalary)
Що робить: Повертає середньозважений базовий оклад працівника за зарплатний період з урахуванням змін ставки протягом періоду. Якщо оклад змінювався в межах періоду, розраховує пропорційно робочим дням.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Зарплатний період | Системна змінна (PayrollPeriod) | Поточний зарплатний період |
Результат:
- Повертає: Decimal -- середньозважений оклад за період
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Формує фільтр елементів окладу з налаштувань кадрів: «Код елемента оклад за днями», «Код елемента оклад за годинами», «Код елемента оклад сумою».
- Знаходить усі записи книги операцій елементів зарплати, чинні протягом періоду.
- Для кожного запису визначає фактичний діапазон дат у межах періоду (бере максимум із дати початку дії та початку періоду; мінімум із дати закінчення дії та закінчення періоду).
- Розраховує кількість робочих днів для кожного запису (CalendarMgt.GetPeriodInfo, What=2).
- Підсумовує загальну кількість робочих днів.
- Формула: Оклад = Sum(Сума запису * Робочі дні запису / Загальні робочі дні)
- Повертає середньозважену суму окладу.
Функція 2221 — Додаткова зарплата за період (GetExtraSalary)
Що робить: Повертає середньозважену суму додаткових виплат (надбавок), які залежать від елемента окладу, за зарплатний період. Аналогічна функції 2220, але для елементів із полем «Залежить від елемента окладу».
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
| Зарплатний період | Системна змінна (PayrollPeriod) | Поточний зарплатний період |
Результат:
- Повертає: Decimal -- середньозважена сума надбавок за період
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Формує фільтр елементів окладу (аналогічно функції 2220).
- Знаходить усі зарплатні елементи, у яких поле «Залежить від елемента окладу» посилається на один із елементів окладу.
- Для кожного знайденого елемента-надбавки шукає чинні записи в книзі операцій.
- Розраховує середньозважену суму за робочими днями аналогічно функції 2220.
- Повертає результат.
Функція 2230 — Оклад пропорційно годинам (GetSalaryPay by Hours)
Що робить: Розраховує суму нарахування як місячний оклад, помножений на відношення фактично відпрацьованих годин до планових. Основна функція для нарахування погодинної зарплати.
Параметри:
| Параметр | Джерело | Опи с |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для визначення фактичних годин з табеля |
| Код параметра | Рядок розрахунку (Parameter Code) | Необов'язковий. Якщо задано, може активувати фільтрацію за вимірами |
Результат:
- Повертає: Decimal -- сума нарахування = Оклад * Фактичні години / Планові години
- Заповнює поля рядка ЗП документа: Планові години (Planned Hours), Фактичні години (Actual Hours)
Логіка розрахунку:
- Отримує суму окладу з книги операцій елементів зарплати за номером запису рядка.
- Розраховує планові години з виробничого календаря за період (CalendarMgt.GetPeriodInfo, What=3).
- Розраховує фактичні години з табеля за групою часових активностей та за датами дії рядка:
- Якщо увімкнено фільтр вимірів (Use Dimensions Filter) -- фільтрує за скороченими вимірами.
- Записує планові та фактичні години на рядок документа.
- Формула: Результат = Сума окладу * Фактичні години / Планові години
- Повертає розраховану суму.
Функція 2232 — Аванс пропорційно годинам (GetAdvancePay by Hours)
Що робить: Розраховує суму авансу як оклад, помножений на відношення фактичних годин до планових, але лише до дати авансу. Відрізняється від функції 2230 тим, що використовує дату авансу як верхню межу.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для визначення фактичних годин з табеля |
Результат:
- Повертає: Decimal -- сума авансу = Оклад * Фактичні години / Планові години
- Заповнює поля рядка ЗП документа: Дата початку дії (Action Starting Date), Дата закінчення дії (Action Ending Date), Фактичні дні (Actual Days), Фактичні години (Actual Hours)
Логіка розрахунку:
- Формує фільтр елементів окладу за годинами з налаштувань кадрів.
- Знах одить усі записи окладу, чинні протягом зарплатного періоду.
- Перевіряє наявність дати авансу в періоді (Advance Date).
- Для кожного запису визначає діапазон дат від початку дії (або початку періоду) до дати авансу (або дати закінчення дії).
- Розраховує фактичні години з табеля за цей діапазон.
- Розраховує планові години з календаря за повний період.
- Формула: Аванс = Sum(Сума окладу * Фактичні години / Планові години)
- Оновлює дати дії та фактичні часові показники на рядку документа.
- Повертає суму авансу.
Функція 2239 — Оклад пропорційно календарю (SalaryProRataCalendar)
Що робить: Розраховує суму нарахування з урахуванням змін ставки протягом періоду, пропорційно календарним годинам. Обробляє перекриття записів окладу, коригуючи дати закінчення.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| -- | Автоматично | Використовує код елемента, код працівника та дати зарплатного періоду |
Результат:
- Повертає: Decimal -- сума нарахування, розподілена за календарними годинами
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Знаходить усі записи окладу з книги операцій елементів зарплати, чинні протягом періоду.
- Обробляє перекриття записів: якщо попередній запис має дату закінчення
>=дати початку наступного, коригує дату закінчення на день до початку наступного. - Розраховує загальну кількість робочих годин за період з виробничого календаря (HoursWork).
- Для кожного запису у тимчасовому наборі:
- Визначає діапазон дат у межах періоду.
- Розраховує календарні години для цього діапазону (CalendarHours).
- Формула: Частка = (Сума запису / Загальні години) * Календарні години запису.
- Підсумовує всі частки та повертає результат.
Функція 2240 — Оклад пропорційно дням (GetSalaryPay by Days)
Що робить: Розраховує суму нарахування як місячний оклад, помножений на відношення фактично відпрацьованих днів до планових. Аналогічна функції 2230, але використовує дні замість годин.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для визначення фактичних днів з табеля |
| Код параметра | Рядок розрахунку (Parameter Code) | Необов'язковий. Може активувати фільтрацію за вимірами |
Результат:
- Повертає: Decimal -- сума нарахування = Оклад * Фактичні дні / Планові дні
- Заповнює поля рядка ЗП документа: Планові дні (Planned Days), Фактичні дні (Actual Days)
Логіка розрахунку:
- Отримує суму окладу з книги операцій.
- Розраховує планові дні з виробничого календаря (CalendarMgt.GetPeriodInfo, What=2).
- Розраховує фактичні дні з табеля за групою часових активностей та за датами дії:
- Якщо увімкнено фільтр вимірів -- фільтрує за скороченими вимірами.
- Записує планові та фактичні дні на рядок документа.
- Формула: Результат = Сума окладу * Фактичні дні / Планові дні
- Повертає розраховану суму.
Функція 2241 — Доплата за часовою групою (GetExtraPay)
Що робить: Розраховує суму доплати на основі ставки окладу та фактично відпрацьованих годин у заданій групі часових активностей. Використовується для нічних, вечірніх, святкових та інших доплат.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для визначення фактичних годин (наприклад, нічні години) |
Результат:
- Повертає: Decimal -- сума доплати = Оклад * Фактичні години групи / Загальні планові години
- Заповнює поля рядка ЗП документа: Планові години (Planned Hours), Фактичні години (Actual Hours)
Логіка розрахунку:
- Розраховує загальні планові години з табеля за групою робочого часу з налаштувань кадрів (Work Time Group Code).
- Записує планові години на рядок документа.
- Для кожного запису окладу, чинного протягом періоду:
- Визначає діапазон дат у межах періоду.
- Розраховує фактичні години з табеля за вказаною групою часових активностей (наприклад, нічні).
- Формула: Доплата += Сума окладу * Фактичні години групи / Планові години.
- Накопичує фактичні години групи.
- Записує фактичні години на рядок документа.
- Повертає підсумкову суму доплати.
Функція 2242 — Аванс пропорційно дням (GetAdvancePay by Days)
Що робить: Розраховує суму авансу пропорційно фактично відпрацьованим дням до дати авансу. Аналогічна функції 2232, але використовує дні замість г один.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Група часових активностей | Рядок розрахунку (Time Activity Group) | Група для визначення фактичних днів з табеля |
Результат:
- Повертає: Decimal -- сума авансу = Оклад * Фактичні дні / Планові дні
- Заповнює поля рядка ЗП документа: Дата початку дії (Action Starting Date), Дата закінчення дії (Action Ending Date), Фактичні дні (Actual Days), Фактичні години (Actual Hours)
Логіка розрахунку:
- Формує фільтр елементів окладу за днями з налаштувань кадрів.
- Знаходить усі записи окладу, чинні протягом зарплатного періоду.
- Для кожного запису визначає діапазон дат від початку до дати авансу.
- Розраховує фактичні дні з табеля за цей діапазон.
- Розраховує планові дні з календаря за повний період.
- Формула: Аванс = Sum(Сума окладу * Фактичні дні / Планові дні)
- Оновлює дати дії та фактичні часові показники на рядку документа.
- Повертає суму авансу.
Функція 2300 — Стаж роботи (ServiceYears)
Що робить: Повертає кількість повних років стажу працівника від дати працевлаштування до робочої дати. Якщо стаж менше 5 років, повертає 0.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
Результат:
- Повертає: Decimal -- кількість повних років стажу (або 0, якщо менше 5 років)
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує картку працівника та перевіряє наявність дати працевлаштування (Employment Date).
- Розраховує різницю між робочою датою (WorkDate) та датою працевлаштування:
- Кількість років = Рік робочої дати - Рік працевлаштування.
- Кількість місяців = Місяць робочої дати - Місяць працевлаштування.
- Кількість днів = День робочої дати - День працевлаштування.
- Коригує від'ємні значення місяців та днів (з переносом у попередню одиницю).
- Якщо кількість повних років < 5 -- повертає 0.
- Інакше повертає кількість повних років.
Функція 2301 — Тип трудового договору (LaborContractType)
Що робить: Перевіряє тип трудового договору працівника. Повертає 1 для цивільно-правового договору (ЦПД / ГПХ) або 0 для трудового договору.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код працівника | Рядок документа ЗП (Employee No.) | Автоматично |
Результат:
- Повертає: Decimal -- 1, якщо тип договору «Цивільно-правовий» (Civil Contract); 0 -- якщо трудовий договір
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Отримує картку працівника та зчитує номер трудового договору (Contract No.).
- Знаходить запис трудового договору.
- Перевіряє поле «Тип договору» (Contract Type).
- Якщо тип = «Civil Contract» -- повертає 1.
- Інакше повертає 0.
Функції розрахунку зарплати (Частина 2): Оклади, лікарняні, індексація (21094000–21094050)
Детальний опис функцій розрахунку зарплати для окладів, лікарняних, індексації та валютних операцій. Ці функції використовуються у налаштуваннях розрахункових типів зарплатних елементів.
Кодуніт: PayrollDocumentCalculate Діапазон номерів: 21094000 -- 21094050
Зміст
- 21094000 -- Оклад на дату
- 21094001 -- Середній оклад за період
- 21094002 -- Середній оклад на дату (для СЗ)
- 21094003 -- Середня додаткова зарплата на дату
- 21094004 -- Заробіток на дату
- 21094005 -- Планові робочі дні
- 21094006 -- Середньомісячна кількість днів
- 21094007 -- МРОТ за датою документа (DEPRECATED)
- 21094008 -- Макс. середній заробіток лікарняного
- 21094009 -- Макс. сума нарахування за стажем
- 21094010 -- Страховий стаж за місяцями
- 21094011 -- 31 для лікарняного
- 21094012 -- Коефіцієнт індексації (за зміною окладу)
- 21094013 -- Курс валюти
- 21094014 -- Оклад за період нарахування (погодинно)
- 21094015 -- Оклад за період нарахування (поденно)
- 21094016 -- Години з табелю за період нарахування (DEPRECATED)
- 21094017 -- Дні з табелю за період нарахування (DEPRECATED)
- 21094018 -- Оподатковувана сума з початку року за ЗП періодом
- 21094019 -- Сума зарплати з початку року за ЗП періодом
- 21094020 -- Утримання за шкалою по коду періоду
- 21094021 -- Утримання за шкалою по ЗП періоду
- 21094022 -- Сума з діапазону по коду періоду
- 21094023 -- Сума з діапазону по ЗП періоду
- 21094024 -- Оподатковувана сума з документа (DEPRECATED)
- 21094025 -- Встановити джерело оплати ПФУ
- 21094026 -- МРОТ за ЗП періодом (DEPRECATED)
- 21094027 -- Ліміт ПФУ за ЗП періодом (DEPRECATED)
- 21094028 -- Зміна окладу
- 21094029 -- Коефіцієнт індексації
- 21094030 -- Базова сума з деталізацією
- 21094031 -- Оновлення коду податкового відрахування
- 21094032 -- Розподіл суми податку (Payroll Amount)
- 21094033 -- Розподіл корр. суми (Corr. Amount)
- 21094034 -- Заповнення страхового стажу
- 21094035 -- Стаж з урахуванням страхових даних
- 21094036 -- Оподатковувана сума для фіз. особи за ЗП періодом
- 21094037 -- Стаж за даними страхового періоду (DEPRECATED)
- 21094038 -- Перевірка дат працевлаштування
- 21094039 -- Перевірка типу договору
- 21094040 -- Перевірка медичної інформації
- 21094041 -- Корр. сума для фіз. особи з початку року (DEPRECATED)
- 21094042 -- Корр. сума з документа (DEPRECATED)
- 21094043 -- Порівняння періодів
- 21094044 -- Поріг індексації (DEPRECATED)
- 21094045 -- Прожитковий мінімум
- 21094046 -- Ставка позиції
- 21094047 -- Сума індексації погодинно
- 21094048 -- Сума індексації поденно
- 21094049 -- Фіксований коефіцієнт індексації
- 21094050 -- Оклад на кінець періоду
Функція 21094000 -- Оклад на дату
Що робить: Повертає суму місячного окладу співробітника, актуальну на дату початку документа. Знаходить діючий запис у Книзі операцій по зарплатних елементах (Payroll Element Ledger Entry) для елементів окладу, визначених у Налаштуваннях модуля персонал та зарплата.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код співробітника | Рядок ЗП документа: «Код співробітника» | Код співробітника, для якого шукається оклад |
| Дата початку | Рядок ЗП документа: «Дата початку документа» (Document Starting Date) | Дата, на яку визначається актуальний оклад |
Результат:
- Повертає: Суму окладу (Decimal). Для погодинної ставки - суму, помножену на кількість планових годин за місяць. Для поденної ставки - суму, помножену на кількість робочих днів за місяць.
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Зчитує налаштування модуля персонал та зарплата (HR Setup).
- У таблиці «Книга операцій по зарплатних елементах» шукає запис для співробітника з фільтром по елементах окладу (код елемента окладу по днях / по годинах / сумою / ставка погодинна / ставка поденна з HR Setup).
- Фільтрує записи: «Дата початку дії»
<=параметр дати, «Дата закінчення дії»>=параметр дати або не заповнена. - Повертає поле «Сума» (Amount) зі знайденого запису.
- Якщо елемент є погодинною ставкою, множить суму на кількість планових робочих годин місяця за Державним календарем.
- Якщо елем ент є поденною ставкою, множить суму на кількість робочих днів місяця за Державним календарем.
Функція 21094001 -- Середній оклад за період
Що робить: Розраховує середній оклад за вказаний діапазон дат. Для кожного робочого дня за виробничим календарем викликає функцію GetSalaryByDate та обчислює середнє арифметичне.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код співробітника | Рядок ЗП документа: «Код співробітника» | Код співробітника |
| Дата початку | Рядок ЗП документа: «Актуальна дата початку» (Action Starting Date) | Початок діапазону дат |
| Дата закінчення | Рядок ЗП документа: «Актуальна дата закінчення» (Action Ending Date) | Кінець діапазону дат |
Результат:
- Повертає: Середній оклад за періо д (Decimal). Формула: сума окладів за всі робочі дні / кількість робочих днів.
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Визначає виробничий календар співробітника через таблицю «Трудова книжка співробітника» (Employee Job Entry).
- Фільтрує рядки календаря (Payroll Calendar Line) у діапазоні дат, тільки робочі дні (Nonworking = false).
- Для кожного робочого дня викликає GetSalaryByDate (функція 21094000) та підсумовує суми окладів.
- Якщо робочих днів = 0, повертає 0.
- Повертає: загальна сума / кількість робочих днів.
Функція 21094002 -- Середній оклад на дату (для СЗ)
Що робить: Повертає середньоденний оклад на зазначену дату для розрахунку середнього заробітку. Ділить місячний оклад на кількість робочих днів місяця за виробничим календарем співробітника.
Параметри:
| Параметр | Дж ерело | Опис |
|---|---|---|
| Код співробітника | Рядок ЗП документа: «Код співробітника» | Код співробітника |
| Дата початку | Рядок ЗП документа: «Актуальна дата початку» (Action Starting Date) | Дата, на яку розраховується середньоденний оклад |
Результат:
- Повертає: Середньоденний оклад (Decimal). Формула: Сума окладу / Кількість робочих днів місяця за календарем співробітника.
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Зчитує HR Setup та знаходить актуальний запис окладу з Книги операцій по зарплатних елементах.
- Ділить суму окладу на кількість робочих днів місяця за виробничим календарем співробітника (CalendarMgt.GetPeriodInfo з типом 2 -- робочі дні).
- Для погодинної ставки: множить результат на кількість планових годин за Державним календарем.
- Для поденної ставки: множить результат на кількість робочих днів за Державним календарем.
Функція 21094003 -- Середня додаткова зарплата на дату
Що робить: Повертає суму середньоденних додаткових виплат (надбавок), які залежать від основного окладу, на зазначену дату. Використовується для розрахунку середнього заробітку.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код співробітника | Рядок ЗП документа: «Код співробітника» | Код співробітника |
| Дата початку | Рядок ЗП документа: «Актуальна дата початку» (Action Starting Date) | Дата, на яку визначаються надбавки |
Результат:
- Повертає: Сума додаткових виплат (надбавок) у перерахунку на один робочий день (Decimal).
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Зчитує HR Setup та формує фільтр ел ементів окладу.
- У таблиці «Зарплатні елементи» (Payroll Element) знаходить усі елементи, у яких заповнено поле «Залежить від елемента окладу» (Depends on Salary Element) з кодами елементів окладу.
- Формує фільтр зі знайдених кодів елементів.
- У таблиці «Книга операцій по зарплатних елементах» знаходить актуальні записи для цих елементів на дату.
- Для кожного знайденого запису: ділить суму на кількість робочих днів місяця за виробничим календарем.
- Підсумовує всі середньоденні суми та повертає результат.
Функція 21094004 -- Заробіток на дату
Що робить: Повертає загальний середньоденний заробіток на зазначену дату -- сума середнього окладу та середніх додаткових виплат. Еквівалент суми функцій 21094002 + 21094003.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код співробітника | Рядок ЗП документа: «Код співробітника» | Ко д співробітника |
| Дата початку | Рядок ЗП документа: «Актуальна дата початку» (Action Starting Date) | Дата, на яку визначається заробіток |
Результат:
- Повертає: Загальний середньоденний заробіток (Decimal) = середньоденний оклад + середньоденні надбавки.
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- Викликає GetAESalaryByDate (функція 21094002) для отримання середньоденного окладу.
- Викликає GetAEExtraSalaryByDate (функція 21094003) для отримання середньоденних надбавок.
- Повертає суму двох значень.
Функція 21094005 -- Планові робочі дні
Що робить: Розраховує кількість планових робочих днів за вказаний період з урахуванням періодів працевлаштування співробітника.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код співробітника | Рядок ЗП документа: «Код співробітника» | Код співробітника |
| Дата початку | Рядок ЗП документа: «Актуальна дата початку» (Action Starting Date) | Початок діапазону дат |
| Дата закінчення | Рядок ЗП документа: «Актуальна дата закінчення» (Action Ending Date) | Кінець діапазону дат |
Результат:
- Повертає: Кількість планових робочих днів (Decimal).
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- У таблиці «Трудова книжка співробітника» (Employee Job Entry) шукає записи для співробітника з фільтром «Позиція змінена» (Position Changed = true).
- Фільтрує за датами: «Дата початку»
<=кінець діапазону, «Дата закінчення»>=початок діапазону або не заповнена. - Для кожного знайденого запису визначає перетин дат із заданим діапазоном.
- Зчитує кількість робочих днів за виробничим календарем (CalendarMgt.GetPeriodInfo, тип 2) для кожного перетину.
- Підсумовує та повертає загальну кількість робочих днів.
Функція 21094006 -- Середньомісячна кількість днів
Що робить: Повертає значення «Середня кількість календарних днів у місяці» з таблиці «Налаштування лікарняного» (Sick Leave Setup). Використовується при розрахунку лікарняних.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Рядок ЗП документа | Рядок ЗП документа | Використовується «Актуальна дата початку» (Action Starting Date) для пошуку актуального налаштування |
Результат:
- Повертає: Середня кількість календарних днів у місяці (Decimal), наприклад 30.44.
- Заповнює поля рядка ЗП документа: --
Логіка розрахунку:
- У таблиці «Налаштування лікарняного» (Sick Leave Setup) фільтрує записи: Тип = «Ліміти зарплати» (Salary Limits), «Тип лікарняного» = Усі (All).
- Фільтрує за «Дата початку»
<=«Актуальна дата початку» з рядка документа. - Знаходить останній актуальний запис.
- Повертає значення поля «Середня кількість календарних днів» (Average Calendar Days).
Функція 21094007 -- МРОТ за датою документа (DEPRECATED)
Увага: Ця функція є застарілою (DEPRECATED). Рекомендується використовувати функцію 150 з відповідним параметром.
Що робить: Повертає розмір мінімальної заробітної плати (МРОТ) з таблиці «Ліміти зарплати» на дату початку документа.
Параметри:
| Параметр | Джерело | Опис |
|---|---|---|
| Код періоду | Визначається автоматично за датою початку документа (Document Starting Date) |