Глава 10. Реализация сложных периодических расчет | |||
Глава 10. Реализация сложных периодических расчетов ^ Основные понятия Вид расчета Одним из основных понятий механизма периодических расчетов является вид расчета. Любой расчет, выполняемый в системе, регистрируется с обязательным указанием вида расчета, под которым может пониматься как способ расчета данной записи, так и дополнительные свойства, характеризующие сущность именно этого расчета. Например, для целей расчета зарплаты различными видами расчета могут быть оклад, надбавка за вредность, оплата сверхурочных. В данном случае каждая из этих записей имеет свой алгоритм расчета, поэтому для каждого вида начисления сотрудникам вводится отдельный вид расчета. Тем не менее оплата дежурства, например, может иметь тот же алгоритм расчета, что и оклад, но при этом это будет отдельный вид расчета, так как у него другой смысл. В общем случае список видов расчета, используемых в системе, зависит от специфики решаемой задачи. Расчетные инструменты платформы 1С: Предприятия 8.0 устроены таким образом, что пользователь может самостоятельно создавать и настраивать виды расчета, которые ему необходимы для решения прикладной задачи, в режиме 1С:Предприятие. Для организации системы взаимосвязанных видов расчета в платформе предусмотрен объект конфигурации План видов расчета. План видов расчета определяет структуру хранения данных о видах расчета, используемых в прикладном решении для определенных целей. Разработчик может создать в конфигурации несколько планов видов расчета для различных целей, в каждый из которых пользователь в режиме 1С:Предприятие сможет внести неограниченное количество видов расчета, а также настроить их взаимосвязь. ^ Принципы регистрации записей Период регистрации Все записи о расчетах регистрируются в системе в привязке к периоду расчета и конкретному виду расчета. Для хранения записей о расчетах в системе предусмотрен объект метаданных Регистр расчета. Каждый регистр расчета имеет определенную периодичность (день, месяц, квартал или год) (рис. 10.1). В зависимости от периодичности записи в этом регистре имеют соответствующий период регистрации (подробнее о периоде регистрации ниже). Рис. 10.1. Периодичность регистров расчета Все записи регистра расчета, помимо периода регистрации, содержат информацию о виде расчета, примененном в данной записи. В одном регистре расчета могут содержаться виды расчетов только из одного плана видов расчетов. При этом регистров расчета, использующих один и тот же план видов расчета, может быть несколько. Например, виды расчета из плана видов расчета Начисления могут использоваться в двух разных регистрах Управленческие начисления и Регламентированные начисления (рис. 10.2). Все расчеты в системе фиксируются в привязке к периоду расчета, в котором они зарегистрированы. Этот период называется периодом регистрации расчета. В зависимости от специфики задачи расчеты могут фиксироваться с периодичностью день, месяц, квартал и год. Период регистрации всегда существует у любой записи о расчете. При этом запись не может быть зарегистрирована сразу в нескольких периодах расчета. Например, при ведении ежемесячных периодических расчетов привязка записей о расчетах периоду регистрации представлена на рис. 10.3. Рис. 10.3. Привязка записей расчета к периоду регистрации В данном примере периодом регистрации оклада, начисленного в январе, будет являться месяц январь. Важно понимать, что периодом регистрации квартальной премии будет тот месяц, в котором она начислена (в данном случае март), а не весь первый квартал. ^ Период действия Записи о расчетах, зарегистрированные в системе, могут быть как протяженными во времени, так и нет. Например, командировка является протяженной во времени, так как для ее расчета важен период, в течение которого сотрудник находился в отъезде (рис. 10.4). В то же время, например, начисленный штраф не является протяженным во времени, а относится в целом к периоду, в котором он был начислен. Интервал, в течение которого длится протяженная во времени запись, называется периодом действия этой записи. Рис. 10.2. Использование видов расчета в разных регистрах расчета В данном примере один и тот же план видов расчета Начисления используется как в регистре расчета Управленческие начисления для учета зарплаты работников в долларах для целей управленческого учета, так и в отдельном независимом регистре расчета Регламентированные начисления, предназначенном для учета начислений в рублях для целей регламентированного учета. Записи в регистрах расчета могут быть определенным образом взаимосвязаны между собой. Вид этой взаимосвязи определяется настройками используемых видов расчета. Взаимосвязь, установленная для видов расчета, действует во всех регистрах, где эти виды расчета используются. Структура регистров расчета будет подробно рассмотрена позднее. Рис. 10.4. Записи расчета, протяженные во времени Период действия представляет собой непрерывный интервал времени, определяемый датой начала периода и датой его окончания. В приведенном примере периода действия записи о командировке — это интервал с 8 по 24 февраля. Период действия одной записи регистра расчета может лежать только в рамках одного периода расчетов. В случае если необходимо ввести расчет, который длится в рамках нескольких расчетных периодов, его необходимо разбить на несколько записей (рис. 10.5). Рис. 10.5. Ввод расчета, который длится в нескольких периодах Так, если установлена периодичность расчетов месяц, то нельзя ввести командировку с периодом действия с 10 января по 15 февраля, так как такой период не лежит в рамках одного месяца. Вместо этого вводятся две записи, у одной из которых период действия с 10 по 31 января, у другой — с 1 по 15 февраля. У протяженных во времени записей период действия может не принадлежать периоду регистрации и лежать как в прошлом, так и в будущем относительно периода регистрации. Например, если работник болел в феврале, а оформленный больничный лист принес только в марте, то оплата больничного будет начислена в марте, так как за февраль зарплата уже рассчитана (рис. 10.6). В этом случае периодом регистрации этой записи будет март, хотя расчет длился с 10 по 22 февраля. Обратный случай возможен, например, когда начисление за предстоящую в следующем месяце командировку производится текущим месяцем (рис. 10.7). В этом случае периодом регистрации этого начисления будет февраль, а периодом действия — интервал с 9 по 25 марта. ^ Вытесняющие расчеты и фактический период действия Протяженные во времени записи регистров расчета могут конкурировать между собой за период действия. Это означает, что они не могут действовать одновременно. Такая конкуренция необходима, когда виды расчета являются, по сути, взаимоисключающими. Например, виды расчета Оклад и Командировка не могут действовать в один и тот же момент, так как сотрудник не может одновременно работать на основном месте и находиться в командировке. При вводе записи о командировке на определенный интервал времени система должна исключать действие оклада в этом интервале. Такие виды расчетов, которые исключают одновременное действие записей других видов расчетов, называются вытесняющими (рис. 10.8). Рис. 10.8. Вытеснение по периоду действия Рис 10.6. Период действия раньше периода регистрации В данном случае у записей о командировке и окладе возникает конкуренция за период действия в интервале с 10.03 по 15.03 (то есть в интервале действия командировки). Как уже было отмечено, эти записи не могут действовать одновременно, поэтому в указанном интервале происходит вытеснение оклада командировкой. Таким образом, вид расчета Командировка, по сути, является вытесняющим по отношению к виду расчета Оклад. Это означает, что записи с видом расчета Командировка будут вытеснять записи с видом расчета Оклад. При вытеснении одного расчета другим период действия вытесняемого расчета не изменяется. Результат вытеснения влияет на так называемый фактический период действия вытесняемого расчета. Под фактическим периодом действия записи понимается совокупность интервалов времени в рамках периода действия, на протяжении которых расчет действует с учетом всех вытеснений. Если никаких вытеснений не происходило, фактический период действия совпадает с периодом действия (рис. 10.9). Рис. 10.7. Период действия позже периода регистрации Таким образом, до вытеснений фактический период действия записи об окладе содержал только один интервал, совпадающий с периодом действия В результате вытеснения период действия оклада не изменился, а конкуренция выразилась в разбиении фактического периода действия оклада на три интервала. восстановить фактический период действия больничного, применяется механизм сторнирования, который будет описан позже. До вытеснения Послв вытеснения Рис. 10.9. Фактический период действия ПРИМЕЧАНИЕ При формировании фактического периода действия принимаются во внимание также сторно-записи, о которых будет сказано ниже. Поскольку конкуренция и вытеснение взаимоисключающих записей происходит на интервалах пересечения периодов действия, то фактический период действия таких расчетов никогда не будет пересекаться. Тем самым они никогда не будут действовать одновременно Важно учитывать, что вытеснение срабатывает только при вводе вытесняющих расчетов текущим или будущим периодом. При вводе расчетов за предыдущий период («задним числом») механизм вытеснения не действует. Это связано с тем, что записи, введенные в систему раньше (то есть с меньшим периодом регистрации), имеют больший приоритет в конкуренции за период действия, чем более поздние записи (с большим периодом регистрации), причем это не зависит от настройки списка вытесняющих расчетов (рис. 10.10). В данном случае больничный за февраль зарегистрирован в марте, то есть период регистрации больше периода действия. В такой ситуации вытеснения оклада не произойдет, так как запись об окладе имеет более ранний период регистрации, чем запись о больничном, поэтому механизм вытеснения не действует. В результате ввода такой записи фактический период действия больничного будет пустым, так как записи не могут действовать одновременно, а вытеснения не происходит. Для того чтобы Рис. 10.10. Записи ранних периодов не вытесняются ^ Зависимость по базовому периоду В определенных случаях результат одного расчета может зависеть от результата других расчетов, введенных в систему. Например, квартальная премия может зависеть от суммы начисленного за квартал заработка по окладу. В этом случае говорят, что оклад входит в базу расчета премии, а вид расчета Оклад является базовым по отношению к виду расчета Квартальная премия. При этом один вид расчета может иметь несколько базовых видов расчета, то есть зависеть одновременно от нескольких других расчетов. При расчете результата расчета по базе анализируется сумма базовых видов расчета за определенный период, который называется базовым периодом. Базовый период — это произвольный непрерывный интервал дат, который может покрывать несколько расчетных периодов. Например, при расчете оплачиваемого отпуска, как правило, производится расчет среднего заработка за 3 месяца, предшествующих отпуску. Этот интервал и будет базовым периодом расчета отпуска (рис. 10.11). В приведенном примере виды расчетов Оклад и Надбавка являются базовыми по отношению к отпуску. Если начисляется оплата отпуска за апрель, то базовым периодом этой записи будет интервал времени с 1 января по 31 марта (3 целых месяца, предшествующие отпуску). В этом случае в базу расчета отпуска войдут все базовые начисления, входящие в базовый период записи об отпуске. В данном случае база расчета отпуска составляет 33 000 рублей и состоит из суммы начислений по окладу за 3 месяца и начисленной в феврале надбавки. Исходя из этой базы будет производиться расчет начисления отпускных в соответствии с алгоритмом расчета. То есть расчетная база — это еще не результат расчета, а лишь исходные данные, которые участвуют в алгоритме расчета. В данном случае предположим, что отпускные рассчитываются как среднее арифметическое заработков за 3 предыдущих месяца. В этом случае расчет отпуска производится следующим образом: Результат расчета = База расчета/3 = 33 000/3 =11 000. Расчет по базе может применяться ко всем видам расчетов, независимо от того, являются они протяженными во времени или нет. Например, квартальная премия, которая не имеет периода действия, может иметь базовый период (например, I квартал). Рис 10.11. Базовый период Рис. 10.12. Необходимость перерасчета при изменении базового вида расчета |
|
||
Создать бесплатный сайт с uCoz |