Регистры расчета в 1С для чайников(Часть 2)

В данной статье на примерах покажем принцип действия «механизма вытеснения по периоду действия«.

Для наглядности расчета Оклада добавим в структуру регистра расчета ресурс «ОтработаноЧасов» и реквизит «ЧасовПлан».

Следует понимать, что реквизиты регистра расчёта служат только для хранения справочных данных, ни в вытеснении, ни при получении базы для расчёта они не участвуют(мы не получаем базу для расчёта на основе реквизитов регистра расчета) поэтому «ЧасовПлан»(количество плановых рабочих часов в месяце) мы делаем реквизитом. На основе ресурсов регистра расчёта мы можем получать базу для расчета(скажем премии) поэтому «ОтработаноЧасов»(количество фактически отработанных работником часов в месяце) делаем ресурсом.

Будем заполнять добавленные поля при расчёте Оклада:

Перепроведём ранее созданный документ:

В движениях документа видно, что плановых часов в месяце 184, оклад сотрудника составляет 60000 рублей, отработанных часов в месяце 64, начисленная зарплата 20 869,57 рублей. Проверим, правильно ли рассчитался оклад: (60000/184) * 64 = 20 869,57 рублей.

В прошлой статье(см.Регистры расчета в 1С для чайников(Часть 1)) мы познакомились с виртуальной таблицей «ДанныеГрафика» регистра расчёта, сейчас изучим виртуальную таблицу «ФактическийПериодДействия«.

Виртуальная таблица «ФактическийПериодДействия» в результате выполнения запроса вернёт нам интервал(или интервалы т.к. их может быть несколько) времени на которых действовал вид расчёта Оклад.

Сформируем запрос к таблице «ФактическийПериодДействия» и выполним его в консоли запросов:

В качестве параметра «РегистраторДок» укажем ссылку на наш документ «Начисление зарплаты», в качестве параметра «Оклад» укажем вид расчёта «Оклад».

Результат выполнения запроса представлен ниже:

Как мы видим результат запроса выдал 1 строку с видом расчета «Оклад» и полями: «ПериодДействияНачало» равным 01.03.17, «ПериодДействияКонец» равным 10.03.17, «ОтработаноЧасов» равным 64. Таблица «ФактическийПериодДействия» вернула нам интервал действия вида расчёта Оклад до вытеснения командировкой.

Введём в плане видов расчёта «Основные начисления» новый вид расчёта «Командировка», командировка будет вытеснять «Оклад» по периоду действия.

В качестве вытесняющих видов расчёта для вида расчёта «Оклад» укажем вид расчёта «Командировка».

Дополним обработку проведения документа «Начисление зарплаты», для вида расчёта «Командировка» сразу же будем начислять фиксированную сумму:

Добавим в существующем документе вид расчёта командировка c 03.03.2017 по 05.03.2017 для сотрудника Иванов. Проведём документ.

В движениях документа видим 2 записи — по окладу и командировке.

По командировке сразу же начислена фиксированная сумма 5000 рублей. Так же мы видим, что поле «Отработано часов» по окладу также уменьшилось(было 64 часа, стало 56 часов). Произошло вытеснение вида расчёта «Оклад» видом расчёта «Командировка» по периоду действия т.к. период действия командировки расположен на периоде действия оклада и командировка имеет больший, чем оклад приоритет.

Примечание: Вытесняющий и вытесняемый виды расчетов должны принадлежать одному плану видов расчёта и обладать протяжённостью во времени. Механизм вытеснения не имеет смысла для видов расчётов не протяжённых во времени.

Командировкой был вытеснен 1 рабочий день(03.03.2017) вместо 3(03.03.2017-05.03.2017) так как даты 04.03.2017 и 05.03.2017 являются выходными днями исходя из графика работы.

Сформируем запрос к таблице «ФактическийПериодДействия» и выполним его в консоли запросов, мы получим результат после вытеснения оклада командировкой:

В результате выполнения запроса мы получили 2 записи по виду расчёта Оклад, 1 запись с периодом действия 01.03.2017-02.03.2017, 2 запись с периодом действия 06.03.2017-10.03.2017. Между этими 2 записями и действует вид расчёта «Командировка». P.S. Все остальные поля виртуальной таблицы «ФактическийПериодДействия» полностью аналогичны физической таблице регистра расчёта «Основные начисления».

 

 

Продолжение тут Регистры расчета в 1С для чайников(Часть 3)

 

 

 

Comments

So empty here ... leave a comment!

Добавить комментарий

Sidebar



X

Ищешь разработчика 1С?
Оставь заявку на консультацию

X

Ищешь разработчика?