Глава 10. Реализация сложных периодических расчет





Глава 10. Реализация сложных периодических расчетов

Введение

Помимо задач оперативного и бухгалтерского учета плат­форма 1С:Предприятие 8.0 предоставляет широкие воз­можности для создания решений, предполагающих вы­полнение сложных периодических расчетов. Наибольшее распространение механизмы периодических расчетов по­лучили в решениях по расчету заработной платы. Однако сфера применения этих возможностей платформы значи­тельно шире.

Задачи сложных периодических расчетов имеют ряд осо­бенностей, отличающих их от задач оперативного и бух­галтерского учета. Эти виды учета отличаются как по предназначению, так и по основным методам, используе­мым для их реализации. Так, оперативный учет служит для непрерывного учета состояния и движения средств в различных аналитических разрезах. Реализация подоб­ных задач предполагает четкую привязку всех регистри­руемых событий к непрерывной оси времени (каждое со­бытие имеет так называемый момент времени, то есть точку на оси времени). Задачи бухгалтерского учета в це­лом схожи с оперативным учетом, но предполагают более сложную систему регистрации событий с возможностью использования корреспонденции счетов. Бухгалтерский учет также является по сути непрерывным.

Отличительной особенностью периодических расчетов является отсутствие однозначной привязки событий к точке на оси времени. Регистрируемые события в этом

виде учета имеют отношение не к моменту времени, а к периоду в целом. При этом периодом расчета может быть день, месяц, квартал или год в зависимости от спе­цифики решаемой задачи. Так, если для регистрации факта поступления товара важен точный момент его при­хода, то при начислении премии важен период расчета (например, месяц), в котором она была начислена.

Еще одним отличием периодических расчетов является протяженность некоторых регистрируемых событии во времени. Например, при регистрации отпуска сотрудника указывается дата начала и дата окончания отпуска. В про­чих видах учета регистрация подобных записей невоз­можна.

Таким образом, помимо задач расчета зарплаты, меха­низм периодических расчетов может быть использован и в других областях, предполагающих периодическую регистрацию протяженных во времени событий, напри­мер в задаче расчета аренды за помещения выставочного центра.

Пример, который будет рассматриваться в рамках данной главы, приводится в демонстрационной конфигурации «Сложные периодические расчеты», которая находится на прилагаемом компакт-диске. В качестве примера вы­брана задача по расчету зарплаты как наиболее часто реа­лизуемая на практике


Технология реализации расчетных задач


^ Основные понятия Вид расчета

Одним из основных понятий механизма периодических расчетов является вид расчета. Любой расчет, выполняе­мый в системе, регистрируется с обязательным указанием вида расчета, под которым может пониматься как способ расчета данной записи, так и дополнительные свойства, характеризующие сущность именно этого расчета. Например, для целей расчета зарплаты различными видами расчета могут быть оклад, надбавка за вредность, оплата сверхурочных. В данном случае каждая из этих записей имеет свой алгоритм расчета, поэтому для каждого вида начисления сотрудникам вводится отдельный вид расче­та. Тем не менее оплата дежурства, например, может иметь тот же алгоритм расчета, что и оклад, но при этом

это будет отдельный вид расчета, так как у него другой смысл. В общем случае список видов расчета, используе­мых в системе, зависит от специфики решаемой задачи.

Расчетные инструменты платформы 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