Contacts

1s recalculation. Corrections and recalculations of wages. Preemption by validity period

From others - for example, the bonus may be determined by the amount of salaries for the period. In this case, it is possible that the salary will be changed after the bonus has been calculated. By default, the platform does not control such situations. If the developer considers it necessary to track this, then you need to use a special subordinate object of the calculation register - Recalculation:

Recalculation records are stored in a separate table. They do not guarantee that the dependent register needs to be recalculated accurately, but serve as a signal of such a potential need.


In general, recalculation table entries contain the following fields:
  • recalculation object (record document whose data needs to be recalculated)
  • calculation type - link to the calculation type from the Plan of calculation types defined for this calculation register

Records can be stored in more detail, in the context of one or several dimensions of a given calculation register. For example, the payroll registrar for the entire department was backdated; Moreover, the changes were only for employee Ivanov. Adding the Employee dimension to Recalculation will allow you to track this. In this case, the Recalculation dimension must be linked to the calculation register dimension:

Data from the recalculation table are generated automatically if the corresponding calculation type plan has the Base period property set. If the property is not set, then the developer is responsible for generating records.

Question 14.41 of exam 1C: Platform Professional. Recalculation data...

  1. are not calculation register entries
  2. are calculation register entries
  3. are recalculation register entries
  4. are records of the actual validity period table

The correct answer is the first, they are generally stored in separate tables.

Question 14.42 of exam 1C: Platform Professional. In the "Recalculation" dimension properties window, on the "Communication" tab, in the "Register dimension" property, indicate...

  1. measurement of the base register, when the data of which changes, the current register record must be recalculated
  2. measurement of the current register, the entries of which should be recalculated when the data of the base registers changes
  3. measurements of base registers, when the data of which changes, the current register record must be recalculated

The correct answer is the second one. The recalculation itself is needed to track the need to update the entries in the current register.

Question 14.43 of exam 1C: Platform Professional. The "Recalculation" table is filled with rows, each of which represents...

  1. a set of information about the type of calculation and the document-registrar of the calculation register entry that needs to be recalculated. The table will also contain recalculation measurements
  2. a set of information about the type of calculation and the document-registrar of the calculation register entry that needs to be recalculated
  3. a set of information about the type of calculation, the line number of the registrar document and the registrar itself of the calculation register entry that needs to be recalculated. The table will also contain recalculation measurements
  4. there are no correct answers

The first answer is correct, analysis above.

Question 14.45 of exam 1C: Platform Professional. Choose the correct answer:

  1. In the process of working with recalculations, the developer can “ignore” the information that the system provides in the recalculation table, that is, refuse to revise the calculation results
  2. The principle of operation of recalculations in the 1C:Enterprise 8 system is “notifying”
  3. The configuration developer cannot control the process of recalculating settlement register entries; the system does everything automatically
  4. Statement 1 and 2 are true

The fourth correct answer is that recalculation only monitors the potential need to change dependent data.

Question 14.46 of exam 1C: Platform Professional. For one calculation register...

  1. Only one recalculation can be supported
  2. Only three allocations of different structures can be supported
  3. Any number of recalculations of different structures is supported

The correct answer is the third, there is no problem adding any number of subordinate Recalculation objects to the calculation register; their structure is not controlled in any way.

Question 14.57 of exam 1C: Platform Professional. The frequency of settlements is monthly. The corresponding settings have been made in the calculation register. For the Salary calculation type, the Trip calculation type is specified as a displacing calculation type. On 03/01/14, salary information was entered into the information base, but no calculation was made. On 03/20/14, the business trip was entered into the information database and calculated. On 03/30/14, salary calculation was launched. Will business trip data be taken into account when calculating salary? Do I need to recalculate my business trip?

  1. Will be taken into account, but the business trip will have to be recalculated
  2. Will be taken into account, no travel recalculation required
  3. Will not be taken into account. It is necessary to cancel the trip calculation and recalculate both types of calculation
  4. Will not be taken into account. To make the calculation correctly, the salary and business trip must be in one document

Recalculation is not needed, the business trip record is within the month.

In this article, we will consider the theoretical foundations of working with calculation registers, and also calculate the employee’s wages in proportion to the number of hours worked.

Theory

Calculation register (RR)- a configuration metadata object used to implement periodic calculations in the 1C system. The obvious areas of application of calculation registers include the following: payroll calculation, rent calculation, rent calculation.

In their structure, calculation registers are similar to accumulation registers or information registers. They, just like accumulation registers, have measurements, resources, details, but the principle of operation of calculation registers is completely different.

At their core, measurements in the accumulation register serve as “ filter» in the context of which we receive data from the accumulation register. As an example, when we take “remains” according to the accumulation register “Remaining goods” in the context of a certain item or a “cut of the latest” according to the information register “Employee salaries” in the context of a certain employee. In contrast to the accumulation register, measurements in the periodic calculation register serve to implement ““(this is when time-extended calculation types compete with each other over the interval of the record’s validity period, i.e., as an example, the business trip calculation type displaces the salary calculation type for the validity period) and ““(this is when the type of bonus calculation depends on the type of salary calculation for previous periods).

repression mechanism by period of action«:

Here we see that the calculation type “Business trip” has a duration in time and is valid from April 10 to April 20, “Business trip” is indicated as a displacing calculation type for the calculation type “Salary”. The “salary” also extends over time and is valid from April 1 to April 30. Since “Business trip” is indicated as a displacing type of calculation for the calculation type “Salary” (has a higher priority than salary) and is valid for the period of validity of the salary, then the salary is displaced by a business trip and the “Actual period of validity of the salary” is formed.” Actual period of validity of the salary “This is the period of validity of the salary after displacement by a business trip, in our case it consists of 2 periods - from April 1 to 9 and from April 21 to 30 and in total is 19 days. The period-based displacement mechanism only works for long-term calculations.

The figure above graphically shows the principle of " dependence mechanism by base period«:

Let’s say at the end of April 2017 we want to give an employee a bonus in the amount of 10% of the salary. Salary is indicated as the basic type of calculation for bonuses.

But as a “base” for calculating the premium, we will not take the entire month of April, but only the interval from April 10 to April 20 (11 days). Let's calculate the base for the bonus, the employee's salary is 60,000 rubles, there are 30 days in a month, daily salary = 60,000/30 = 2,000 rubles. Next 2000*11 = 22000 rub. The basis for calculating the premium is 22,000 rubles.

Let's calculate the premium: (22000/100)*10 = 2200 rubles. A bonus of 10% of the salary is 2,200 rubles.

The application metadata object “Plan of calculation types” is closely associated with the calculation register.

Plan of calculation types (PVR)- a configuration metadata object that stores information about the types of calculation types and determines the influence of different calculations on each other.

One calculation type plan can be used in several calculation registers, but one calculation register cannot use several calculation type plans at the same time.

The calculation register is a table in which calculated data is stored, and in terms of calculation types, algorithms for calculating this data are stored. The calculation register must have at least one document registrar that makes movements in the calculation register (for example, Payroll).

The calculation mechanisms in the 1C Enterprise system are designed in such a way that you first need to make entries in the calculation register and only then perform the calculation based on this data. For example, it is impossible to calculate a bonus based on a salary until this same salary is recorded in the calculation register.

Practice

Let's take a closer look at the calculation registers in practice:

Step 1 Let's start with a plan for the types of calculations. You must create a calculation type plan before creating a calculation register. We create a plan for calculation types before the calculation register because before creating a table for storing calculated data (i.e., a calculation register), it is necessary to specify algorithms for calculating this data (i.e., a plan for calculation types).

Let’s create a plan for the types of calculation “Basic charges”. Let’s immediately go to the “Calculation” tab. Here we immediately see the flag " Uses validity period", when this flag is set, all types of calculations included in this plan will have length in time(for example, Salary, Business trip), and also for this plan of calculation types, “ repression mechanism by period of action". If the flag “Uses the validity period” is not set, then the types of calculation will not have an extension in time (for example, Bonus, Fine) and the “displacement mechanism by validity period” will not operate. Also on this tab there are sections “Dependency on the base” and “Basic plans for calculation types” - they serve to implement “ dependence mechanism by base period“, but we’ll talk about it later. For now, let’s leave “Dependency on the base” in the “Independent” mode.

Let’s create a predefined calculation type “Salary”. On the “Basic” tab, everything is simple. Set the name and code of the calculation type.

Thanks to the fact that we set the flag " Uses validity period"We now have a tab" Displacing" and turned on " period-based repression mechanism«.

On this tab we indicate the types of calculations that will displace the salary by validity period (for example, Business trip).

Note: in “Displacing” you can add calculation types that belong only to this plan of calculation types.

There is also a tab " Presenters»—it indicates the types of calculations that, when changed, must recalculate the current type of calculation. Here you can also specify calculation types from other calculation type plans. For example, the “Salary” calculation type is the leading one for the “Bonus” calculation type, i.e. When the salary changes, we must also recalculate the bonus because The bonus is calculated depending on the salary. In this case, the “Salary” calculation type belongs to the “Basic Accruals” PRP, which uses a validity period, and the “Bonus” calculation type belongs to the “Additional Accruals” PRP, which does not use a validity period.

Step 2.Let's create a “Charts” directory with the default structure. In the “Schedules” directory we will store the working hours of employees (five-day, six-day, etc.).

Step 3.We also need an object in which we will store the Production calendar (working days and weekends). For these purposes, we use a non-periodic independent register of information.

Let’s create a non-periodic independent information register “Work Schedules” with 2 dimensions “Date” and “Schedule” and the resource “Number of Hours”.

Thanks to the “Work Schedules” information register, we will be able to calculate wages from the salary in proportion to the number of days worked.

Step 4.Create a “Payroll” document with the details structure shown below:

Requisites:

Operational execution is set to “Prohibit” because it does not make sense for the mechanism of periodic settlements in 1C - we never calculate bonuses, salaries, or fines in real time.

Let's create a document form with default settings.

Step 5. Finally, we got to the point of creating calculation registers.

The calculation register metadata object is located in the “Calculation registers” branch of the configurator.

Let’s create a calculation register “Basic charges”. Let's look at the calculation register settings below:

1. In the “Plan of calculation types” field, indicate the PVR “Basic charges” created in step 1.

2. Set the “Validity period” flag to “True” because The PVR specified in step 1 has extension in time.

After setting this flag, the standard details “Action Period”, “Action PeriodStart”, “ActionPeriodEnd” immediately become available to us, which means that the types of calculations registered in this calculation register also have length in time and we have access to " repression mechanism by period of action«.


P.S. If you specify a PVR that has length in time for a RR with the “Validity Period” flag set to “False”, then this PVR will work as a PVR that does not have extension in time.

3.After setting the “Validity period” flag to “True”, the fields “Chart”, “Chart value”, “Chart date” become available to us.

In the “Schedule” field we indicate the “Work Schedules” information register created in step 3.

In the “Schedule Value” field we indicate the “Number of Hours” resource in the “Work Schedules” information register.

In the “Schedule Date” field we indicate the “Date” dimension of the “Work Schedules” information register.

4.In the “Frequency” field we indicate the value “Month”, this means that the data will be entered into the register on a monthly basis.

Below is the registry metadata structure:

The “Basic” flag for a dimension only affects performance; you don’t have to set it, but if you do, the “Employee” field will be indexed.

The "Employee" dimension - it is used in " repression mechanism based on the period of action" And " mechanism of dependence on the base period«.

Resource “Amount” - the calculated salary will be recorded there.

The “Chart” attribute is indicated as an attribute, and not a register dimension, because neither it nor it displaces anything - essentially a reference field. Important!!! Don't forget to fill out the "Schedule Link" field at the “Schedule” attribute, the “Schedule” dimension of the “Work Schedules” information register must be indicated there, otherwise the salary amount will not be calculated.

The “Parameter” attribute will store the salary value.

Now that we have indicated the connection with the “Work Schedules” MS, we will calculate the employee’s salary in proportion to the number of days worked.

We indicate the document as the registrar " Payroll" created in step 4.

Step 6. We make movements according to the calculation register “Basic charges”.

Let's return to the “Payroll” document created in step 4.

Let us describe the processing of posting in the document object module:

Fragment of document processing processing code

1C (Code)

Procedure ProcessingProcessing(Failure, Processing Mode) // register BasicAccruals of Movement.MainAccruals.Write = True; Movements.MainAccruals.Clear(); Registration Period = Start of Month (Date); For Each TechLineMainAccruals From MainAccruals Cycle Movement = Movements.MainAccruals.Add(); Move.Reversal = False; Movement.CalculationType = TechLineMainAccruals.CalculationType; Movement.ActionPeriodStart = TechLineMainAccruals.StartDate; Movement.ActionPeriodEnd = EndDay(TexLineMainAccruals.EndDate); Movement.Registration Period = Registration Period; Movement.Employee = TechLineMainAccruals.Employee; Movement.Chart = TechStringMainAccruals.Chart; Movement.Parameter = TechStringMainAccruals.Size; EndCycle; End of Procedure

ProcessingProcedure(Failure, Mode)

// Main Accruals register

Movements. BasicAccruals. write = true;

Movements. BasicAccruals. Clear() ;

Registration Period = Beginning of Month (Date) ;

For each TechLine BasicAccrualsFrom BasicAccrualsCycle

Movement = Movements. BasicAccruals. Add() ;

Movement. Storno= False;

Movement. Calculation Type=TexLineMainAccruals. Calculation Type;

Movement. PeriodActionStart = TechLineMainAccruals. Start date;

Movement. ActionPeriodEnd=EndDay(TexLineMainAccruals.EndDate) ;

Movement. Registration Period = Registration Period;

Movement. Employee = TechLineMainAccruals. Employee;

Movement. Chart = TechLineMainAccruals. Schedule;

Movement. Parameter = TechStringMainAccruals. Size;

EndCycle;

End of Procedure

Let's create a test document and run it:

Let’s go to “Document Movements”:

We see that the registration period is set to the beginning of the month because The frequency of the RR is indicated as “Month”. We also see that all fields except the amount have been filled in (the salary has not yet been calculated).

Step 7.Let's write the payroll calculation code.

Let's create a general module "Calculation" with the following flags:

The calculation itself will take place in this general module.

Let’s write the export function “Calculate charges” in the “Calculation” module:

Since we filled out the fields “Schedule”, “Schedule value”, “Schedule date” in the settings of the RR “Basic charges”, a virtual table of the calculation register became available to us DataGraphics, in a query to a virtual table we are interested in the following fields:

“Number of Hours Actual Action Period” — contains the number of hours actually worked calculated based on the schedule data

"Number of HoursAction Period" - contains the number of working hours calculated based on the schedule data in the calculation period

Payroll calculation procedure

1C (Code)

Procedure CalculateAccruals(Registrar, Set of Records) Export //Salary Request=New Request; Query.Text="SELECT | ISNULL(BasicAccrualsGraphicsData.NumberofHoursActualActionPeriod, 0) AS HoursFact, |BasicAccrualsGraphicsData.Parameter, |ISNULL(BasicAccrualsGraphicsData.NumberofHoursActionPeriod, 0) AS HoursPlan, |BasicAccrualsGraphicsData ica.Line Number |FROM |Calculation Register.Basic Accruals.Graphics Data(| Registrar = &Registrar | And Calculation Type = &Calculation TypeSalary) AS Basic AccrualsDataGraphics"; Request.SetParameter("Registrator", Recorder); // pass the document to the registrar so that the search is performed only on the current document Request.SetParameter("Calculation TypeSalary", Plans of Calculation Types. Basic Accruals. Salary); //set the type of calculation salary because calculate the salary Selection=Request.Run().Select(); SearchStructure=NewStructure; SearchStructure.Insert("RowNumber",0); //create a structure for searching data for calculation by line number For Each Record From RecordSet Cycle //cycle through the set of records of the current documentSearch Structure.LineNumber=Record.LineNumber; //fill in the line number for search If Selection.FindNext(Search Structure) Then //we look in the sample for data for calculation based on the current line number Record.Sum =?(Selection.HoursPlan=0.0, Selection.HoursFact/Sample.HoursPlan * Sampling .Parameter); //calculate salary in proportion to days worked, in Parameter - current salary EndIf; Selection.Reset(); //reset the selection, we need the next record of the recordset to search through the selection first EndCycle; Recordset.Write(, True); //write the calculated records to the database, pass the parameter Replace = True EndProcedure

//Salary

Request=New Request;

Request. Text="SELECT

| ISNULL(BasicAccrualsDataGraphics.NumberofHoursActualActionPeriod, 0) AS HoursFact,

| BasicAccrualsDataGraphics.Parameter,

| ISNULL(BasicAccrualsDataGraphics.NumberofHoursActionPeriod, 0) AS HoursPlan,

| BasicAccrualsDataGraphics.NumberLines

|FROM

| Calculation Register. Basic Accruals. Graphics Data (

| Recorder = &Recorder

Good afternoon. I haven't heard from you for a long time :) Today I want to clarify the features of recalculations in ZUP 3.0 for past periods. This article talks about how it works inside and, accordingly, you can control this process. After all, you have probably encountered the fact that the program unexpectedly accrues unknown amounts to a person, reverses them, some differences appear... and you didn’t want this, or wanted it. but this did not happen))

Let's begin. First, recalculations occur at the moment when you consider the salary as a “Payroll” document. For this purpose, it provides a tab “Additional accruals, recalculations”. The first thing I want to advise you: always check the data on the label "Additional accruals, recalculations" . They may appear there without your knowledge, and you will not understand why the amount in the calculation is not the same.

In theory, in the header of the document we are always warned that the program is about to count someone or that we need to refill it, because... someone was not counted.

How does the program know who I need to count and for what month?

She determines this based on your actions. Did you backdate the document? The program looked at the employees who were in this document and recorded their list. Did you make a correction to the document (for example, corrected the timesheet for last month)? The program has remembered everyone from this timesheet and this month will be recalculated. Almost all documents, both personnel and payroll, are affected. In this case, the program does not care whether your touching the document affected your salary or not.

Let's say you went to the job application and wrote a comment there, after which you re-posted the document. No salary, no appointment date, no position... nothing was touched. But the program does not know why you overwrote the document from the previous period, it is not a telepath, it simply recorded this employee.

Second tip (aka the first secret): through “all functions”, go to the “Salary recalculation” information register. Don't be lazy and climb in! Get in there before every payroll calculation and after every backdated document.

Many accountants perceive this advice as meaning that they have a new job, which they already have enough of. But if you don’t climb there, you won’t understand the logic of the work, and if the program is like a black box for you, then you won’t make friends with it. Friendship begins with understanding the inner world of a friend! If you don’t care about your opponent’s inner world, then he is not your friend.

So, have you climbed in? Great. As a rule, it is empty and there is not a single line, but as soon as you touch something retroactively, a record will appear here containing the employee and the month that needs to be recalculated.

Third tip: if you do not agree with the program’s intention to count the employee, erase the line from this register.

1. Do you already understand how the lines appear? Great.

2. When filling out the document “Payroll” and posting it based on the lines in the register, a recalculation and filling out of the table is carried out "Additional accruals, recalculations."

3. Recalculated employees are removed from the register and it becomes empty.

4. When you cancel the “Payroll” document, the lines are returned to their place so that when you refill them again, everything will fall into place.

Fourth tip (maybe this will be fixed): Before refilling the “Payroll” document, spread it out!

Based on the algorithm, after posting the document, the register is cleared. If you refill it without clearing it, the program will not know who needs to be counted, and the tabular part with recalculations will be empty. This was true for release 21. I haven’t had time to check it yet in 22nd.

Another nuance, if you click on the list of people for recalculation in the document, the information register list form will open"Recalculation of salaries." And there will also be a button to “delete” one entry.

P.S. (important)

The reason for this investigation was the endless recalculations when transferring the original data from Accounting 3.0. During the transition, you will have to touch all the techniques and translations)) after that, erase all the contents of the register " "Salary recalculation", otherwise you will get a recalculation of everything for all years. Getting started in ZUP 3.0 with data transfer from Accounting 3.0

This is what happened in the demo database when one job was re-executed. And when you transfer 1C Accounting 3.0 to 1C ZUP 3.0, you will redo everything that is possible:

That's all, questions in the comments and don't be afraid of the program, you need to understand it and it will repay you for it with love.

Many 1C programmers have never encountered the “Calculation” component in their practice, therefore, when they have to take exams for a Specialist on Platform 8.0, where each task contains a task on complex periodic calculations, difficulties arise, primarily difficulties of understanding.

Let's try to figure out this component in 8.0. Instead of solving various calculation problems, let's try to understand this component so that we can solve any calculation problem. After studying this manual, you will understand how calculation registers are arranged and work.

For example, we will use the frame configuration installed during exams.

To be honest, I tried for a long time to figure out what else calculations were needed for, but I couldn’t figure it out, so let’s consider the problem of calculating salaries.

What are calculations

Basically, the final payroll product is a set of payroll register entries of the form:

Employee

Period

Type of calculation

Result

Data

A comment

Measurement

Official

Official

Props

The value in the “Data” column reflects the employee’s base salary (according to the employment contract), but this amount can be increased by bonuses, reduced by fines and absenteeism, etc., therefore, the actual amount to be paid is entered after the calculation in the “Result” column. This is the calculation. The amount in the “Resource” column for a given employee is the salary due to him.

Thus, the calculation register is essentially a set of records, similar in structure to the negotiable accumulation register. It’s just that in order to perform complex calculations, additional settings are specified for it, which then allow you to build many virtual tables for the calculation register, although, in essence, this register is just a set of records indicated in the figure.

Each entry in the settlement register relates to a specific type of settlement and time period.

Types of calculations

Each record of calculation types has a service attribute - calculation type.

A type of calculation can be thought of as an element of a special reference book such as “Plan of types of calculations” - it also has details, tabular parts, predefined and user-created elements. There may be several such “directories” in the system.

For example, let’s create a plan for calculation types Main and in it predefined calculation types salary, bonus, absence, business trip.

Calculation types are used functionally to reflect the influence of calculation register entries on each other. But in short they talk about the influence of calculation types on each other:

Type of calculation

Description

Example

By base period

The result of the dependent period calculation depends on the result of the base period. If the result of the base period changes, the result of the dependent period must be recalculated.

The bonus depends on the base period salary.

Wiping by period

The validity period of the dependent period supersedes the validity period of the base period, so the base period has an actual

Absenteeism affects the actual period of the salary.

Leading calculations

The calculation depends on the leading calculation, but not directly but indirectly, i.e. calculation A depends on the basic calculation B, and calculation B depends on the basic calculation B, therefore A indirectly depends on B, i.e. A depends on the leading calculation B. In fact, when calculation C changes, B may change and therefore A may change. The system does not automatically track such complex dependencies, so you need to indicate which calculations are leading.

The bonus depends on the base of the salary, but also indirectly depends on absenteeism.

Due to this influence, the validity period of the settlement register entry is divided into four periods:

Period

Description

Registration period

In what period was the event recorded, i.e. usually when a document is entered.

Validity

In what period does the event operate, i.e. what period the event belongs to.

Base period

Only meaningful for periods that have a base period - describes the interval of the base period.

Actual validity period

If the validity period is superseded by other types of calculations, then the actual validity period consists of several periods when this type of calculation is actually in effect.

The registration period is specified by one number - the beginning of the period, corresponding to the frequency of the calculation register. Even if we set a different date in this service field, it will still be replaced with the beginning of the period. The remaining periods are specified by two fields - the beginning and the end of the period. The actual period of validity is a set of periods, because it can consist of several date intervals.

Time Charts

The system has the ability to link data from calculation registers with time charts so that the number of working hours can be obtained for any period.

A timeline is a simple information register in which one dimension stores a date, another is associated with a dimension by a calculation register, and one of the resources is used to track time.

A dimension that associated with the calculation register usually carries meaning "type of graph".

date

Chart type

Meaning

11.01.05 Fri

Five days

11.01.05 Fri

Six days

12.01.05 Sat

Five days

12.01.05 Sat

Six days

Why use the date dimension rather than the periodic detail register? It’s all very simple - if on Friday, January 11, we have 8 working hours during a five-day period, this does not mean that the next day we will again have 8 working hours. But if we used a periodic register, the value for the next day would be taken from the previous day in the absence of records.

Thus, having a certain period (actual action, registration, base period, etc.) we can automatically obtain the number of hours for this period according to the schedule.

Recalculation

Recalculation is somewhat reminiscent of a sequence boundary. Since we have dependent calculations, when changing their base and leading calculations, the system must somehow note that we must recalculate the dependent calculations.

This is what recalculations are for.

If we calculate the base records, the system will note in the allocations that we need to calculate the dependent records. Once we calculate the dependent records, the allocations will clear.

Essentially, recalculations are a list of calculation register entries that need to be recalculated.

If you do not enter any measurements in recalculations, then when the basic calculations change, all dependent records will be added to the recalculation list.

If we create the “Employee” dimension in recalculation, then when the basic calculation for an employee is changed, dependent records only for this employee will be added to the recalculations.

Practical task

Enough theory. Let's try to study the details in practice. Let's take the frame configuration as a basis.

Formulation of the problem:

Let the bonus be set as a fixed percentage of the salary (minus absenteeism and travel allowances).

Let travel allowances be paid in double salary + a fixed amount of payments for each day of the trip.

Let the employee be charged a fine in the amount of half the salary for the period of absence for absenteeism.

Progress:

Initial training

Let’s create a new plan for calculation types “Main”.

Let's define the types of calculations and the dependencies between them:

Basic

Displacing

Presenters

Salary

Absenteeism, Business trip

Prize

Absenteeism, Business trip

Salary, Absenteeism, Business trip

Business trip

Absenteeism

Let’s add these types of calculations to the “Main” calculation types plan and set the dependencies in the properties of the calculation types according to the table.

In the salary calculation register, we will create the “Employee” dimension of the “Individuals” type - so that the register will have an analytics section for employees.

The configuration already contains the “Payroll” document.

It has two dates in the header - “date” and “registration period”, as well as two dates “start date” and “end date” in each line.

It is understood that the date is simply the date the document was executed, the registration period indicates for which month we are counting the salary, and the dates in each line describe the period of validity of each type of calculation.

Let’s add the initial setting of the “Data” attribute to the document module - we will enter the starting salary, setting the registration period, validity period and base period into it.

The document module will look something like this:

For To each TechStringList From List Cycle

// register Calculations

Movement = Movements .Calculations.Add();

Movement .S torno= False;

Movement .In idCalculation = TechStringList.CalculationType;

Movement .PeriodActionsStart= Start of Day ( TechStringList.StartDate);

Movement .PeriodActionEnd= EndDay();

Movement .Registration period = Registration Period;

Movement .BasicPeriodStart= Start of Day ( TechStringList.StartDate);

Movement .BasePeriodEnd= EndDay ( TechStringList.End Date);

Movement .Employee = TechStringList.Employee;

Movement .Schedule = TechStringList.Graph;

Movement .Result = 0;

Movement .Data = TechStringList.Size;

EndCycle ;

The Reversal attribute is needed to reverse entries (analogous to a minus sign).

We indicate the type of calculation, and set the dates to the beginning and end of the day. Of course, the base period can only be entered for calculation types dependent on the base, and Data can only be entered for the salary, but everything works that way.

We will date all documents 01/20/2003, the registration period will be set to 01/02/2003 (I specifically indicate not the beginning and end data, this does not matter here, anyway, when recording in Registration Period converted to the beginning of the period 01/01/2003). We use January 2003 because the work schedules were completed for this period.

Let’s create a recalculation “Recalculation” and add to it the “Employee” dimension associated with the “Employee” dimension.

Playing with Recalculations.

To play the game, open the request console - processing " CustomRequest» in a frame configuration. Let's create a new query using the query constructor and add a virtual table there Recalculations. Calculations. Recalculation, the request text will be like this:

CHOOSE

CalculationsRecalculation.About the Recalculation object,

CalculationsRecalculation.In Calculation ID,

Calculations Recalculation. From employee

FROM

Calculation Register. Calculations. Recalculation HOW CalculationsRecalculation

We will generate three documents - first we will accrue salaries to employees A and B. Employee A works from January 1 to 31, B works from January 1 to 20. The second will assign a bonus to employee B for the period from January 1 to 31, the third will assign absenteeism to employee A from January 20 to 25.

We play with the Actual validity period.

Let's create a new query - this time we will add table data to it Calculation Registers. Calculations. Actual Action Period.

Let's create a request and see that employee A's salary period is divided into two periods - from January 1 to 19 and from January 26 to 31. I hope you understand that the period was divided into two, because... absenteeism replaced salary.

I think the mechanisms of operation of the calculation register are becoming clearer before our eyes.

Let's study graphs.

Now let's try to calculate the salary based on the employee's salary.

Let's create a new query for the calculation register using a virtual table Calculation Registers. Calculations. DataGraphics. You can set a parameter for this virtual table - a condition for selecting records, for example Employee=&SelectEmployee And Calculation Type=&Calculation Type And Graph=&ViewGraphic.

Let's set specific employees, types of calculations and schedules in the request parameters and see how many hours are the result.

Result column

Meaning

ValuePeriodAction

For what period of validity in hours was the entry in the register.

ValueActualPeriodAction

How many hours did the employee actually work?

ValueBasePeriod

For salary it does not make sense, for bonuses - the number of working hours in the base period.

ValueRegistration Period

How many working hours are there in the registration period (month January)

Recalculations form an integral part of payroll calculation. Information about sick leave, vacations or absenteeism of employees received by the accounting department with some delay leads to recalculation of salaries and, accordingly, insurance premiums. 1C experts talk about how calculations and recalculations of insurance premiums are reflected in accounting and regulated reporting in the 1C: Salaries and Personnel Management 8 program, edition 3.

When recalculating wages, it becomes necessary to recalculate insurance premiums. In addition, the reason for recalculation of contributions may be a change in the tariff during the year or the discovery of errors, for example, non-inclusion of the calculation in the base for insurance premiums.

In these cases, the accountant has questions about the need, obligation and right to submit updated information to the Federal Tax Service.

According to clause 1.2 of the Procedure for filling out the calculation of insurance premiums, given in Appendix No. 2 to the order of the Federal Tax Service of Russia dated 10.10.2016 No. ММВ-7-11/551@, the payer is obliged to make the necessary changes to the Calculation and submit an updated report to the tax authority if any unrecorded or incomplete information, as well as errors leading to an underestimation of the amount of insurance premiums payable.

When deciding whether to submit an updated calculation, the accountant must answer the following questions:

  • whether all information was reflected;
  • whether errors were made and whether they led to an underestimation of the amount of insurance premiums payable.

Submission of an updated Calculation may be an obligation, a right or a forced necessity.

Updated calculation of insurance premiums

The obligation to submit an updated calculation arises if, after submitting the report to the Federal Tax Service, it turns out that incomplete or incorrect information about employees was submitted, or errors were discovered that led to an underestimation of the amount of insurance premiums payable.

Types of common errors that require mandatory submission of an updated Calculation:

1. The employee did not promptly report changes in his personal data, and the Federal Tax Service provided false information about him in Section 3 of the Calculation.

2. The employee worked in a department that has the right to apply a preferential rate of insurance premiums. Then he was transferred to a unit where the basic insurance premium rate is applied. Information about the employee's transfer was received late by the accounting department. The calculation of contributions was made incorrectly at a reduced rate.

3. At the initial setup stage of the 1C: Salaries and Personnel Management 8 program, a mistake was made by excluding the premium from the calculation base for insurance premiums. Correcting the error will result in additional fees being charged.

4. A department with a preferential tariff loses the right to use it, but the information reaches the payroll manager with a delay. Recalculation according to the basic tariff leads to an increase in the amount of insurance premiums payable.

5. When calculating insurance premiums, the program did not indicate that the position was listed in the list of hazardous professions subject to additional tariffs. After the error was discovered and corrected, the recalculation resulted in an underpayment of insurance premiums at additional rates.

Let's look at the features of recalculating insurance premiums in “1C: Salaries and Personnel Management 8” edition 3 using examples.

Example 1

When calculating insurance premiums for a unit Stock a preferential rate of insurance premiums was applied Residents of the technology-innovation special economic zone(fare code “05”). This tariff provides for contributions to the Pension Fund in the amount of 13% in 2018; in the Social Insurance Fund 2.9%; in the Federal Compulsory Medical Insurance Fund 5.1%. This is exactly how contributions were calculated for employee V.S. Ivy. With monthly earnings of 10,000 rubles. The amount of insurance deductions for the month was:

  • in the Pension Fund - 1,300 rubles;
  • in FFOMS - 510 rubles;
  • in the Social Insurance Fund - 290 rubles.

The indicated amounts were reflected in the calculation of insurance premiums for the first quarter of 2018.

When it turned out that the division had lost the right to apply a preferential rate of insurance premiums, then in accordance with letters of the Federal Tax Service of Russia dated October 25, 2017 No. GD-4-11/21611@ and the Ministry of Finance of Russia dated December 18, 2017 No.? 03-15-06/ 84443 there was a need to submit a clarifying Calculation. To form it, it is necessary to recalculate insurance premiums with new rates.

In the card Divisions the field should be cleared Preferential tariff fear. contributions. Now the division is subject to the tariff used for the organization and specified in the card Organizations on the bookmark Accounting policies and other settings link Accounting policy in field Tariff type.

In Example 1, the organization is set to Basic insurance premium rate(tariff code “01”), providing for contribution rates in 2018: to the Pension Fund of the Russian Federation in the amount of 22%; Social Insurance Fund 2.9%; FFOMS 5.1%. It is obvious that the Pension Fund has “underpaid” 9% of contributions (22% - 13%), and the tariff code has changed.

In Example 1 under consideration, in order to recalculate contributions, the income accounting procedure should be revised. The document is intended to register the procedure for recording income and recalculating insurance premiums of the previous period. (menu Taxes and fees). On the bookmark Income information it is necessary to manually clarify all employee incomes. At the same time, on the bookmark Estimated contributions Insurance premiums will be recalculated automatically.

As a result of recalculation of insurance premiums of employee V.S. Ivy with monthly earnings of 10,000 rubles. The amount of insurance deductions for the month was:

  • in the Pension Fund of Russia - 2,200 rubles;
  • in the Federal Compulsory Medical Insurance Fund and the Social Insurance Fund - the amount did not change and amounted to 510 rubles, respectively. and 290 rub.

After recalculating insurance premiums for the first quarter, clarifying Calculations should be prepared. Using the service 1C-Reporting, it is necessary to create new reports for the periods being corrected and for Title page indicate Correction number(Fig. 2). The clarifications affected all employees of the department, since everyone’s tariff code had changed. Therefore, Sections 3 in the updated Calculation are formed for all employees of the department. In other cases, when the formation of an updated Calculation is caused by changes in the data or accruals of individual employees, Section 3 displays data only for these employees. In any case, the remaining sections of the clarifying Calculation are filled in with completely new data.

Rice. 2. Title page of the clarifying calculation of insurance premiums for the first quarter of 2018

The right to submit an updated Calculation of insurance premiums

Policyholders can submit an updated Calculation to the inspection if they find errors that lead to an overestimation of the amount of insurance premiums. In fact, during the next calculation of contributions in the current period, a recalculation is made, and the result is reflected in the report for the next period. Situation options that allow you to present an updated Calculation:

1. The employee was paid a salary for the full month worked. The calculation of insurance premiums was submitted to the Federal Tax Service, but it later turned out that the employee was on sick leave or on vacation at his own expense. An accrual not included in the base for calculating premiums replaced an accrual subject to insurance premiums, which led to overpayment of premiums.

2. Any recalculation of employee accruals, leading to a recalculation of insurance premiums towards their reduction.

Example 2

When calculating wages for June to employee S.S. Gorbunkov was awarded:

  • salary payment - 7,500 rubles;
  • business trip payment (based on average earnings) for June - 2,500 rubles.

Insurance premiums have been calculated at the basic rate. In June, contributions from S.S.’s salary. Gorbunkov were:

  • in the Pension Fund of Russia - 2,200 rubles;
  • in FFOMS - 510 rubles;
  • in the Social Insurance Fund - 290 rubles.

These contributions have been paid and included in the 2018 Half Year Account. The sick leave submitted to the accounting department for the period 06/25/2018-06/30/2018 does not create a reason for the formation of an updated Calculation. Document registered in the program Sick leave reverses the previously accrued amount of travel allowances (Fig. 3).

Rice. 3. Recalculation of travel allowances in the “Sick Leave” document

The sick leave was received by the organization in July. This is not an error situation and does not result in underpayment of insurance premiums. Since the amount accrued on sick leave is not subject to insurance contributions, there was an overpayment of contributions in the amount of:

  • in the Pension Fund of the Russian Federation - 550 rubles;
  • in FFOMS - 127.50 rubles;
  • in the Social Insurance Fund - 72.50 rubles.

In a programme Sick leave, registered July 2018, affects the calculation of insurance premiums in the current month, reducing the calculation base.

There are no legal requirements for the submission of an updated Calculation in such a situation. All recalculations occur in the next period and are reflected in the next reports. But at the same time, the organization has the right to clarify the report for the half-year and notify the Federal Tax Service about the overpayment that has occurred by submitting a clarification.

However, before the end of the month, you should not make hasty clarifications of the Calculation. After all, various documents are registered throughout the month. At some point the document Sick leave can indeed reverse the income of the previous month, and based on the results of calculating wages for the month, another document, for example, Calculation of salaries and contributions, will make additional accruals that exceed the reversal income of the previous period. As a result, the current month’s income will decrease by the amount of the business trip reversal, no minuses for the previous month will remain, and the adjusting report will not show any changes.

The need to submit an updated Calculation of insurance premiums

In a number of cases, despite the absence of an obligation to submit an updated Calculation, the policyholder has no other opportunity to report his overpayment of premiums, except for submitting an update:

1. As a result of the recalculation of contributions in the current period, the employee receives a negative amount. A report with a negative amount cannot be submitted to the Federal Tax Service. Therefore, there is only one way out - to generate an updated report for the previous period.

2. The employee worked in hazardous work. Insurance premiums were calculated at an additional rate. Information about the employee's transfer to work under normal working conditions was received late by the accounting department. As a result of recalculation, it is impossible to reduce the calculated contributions at the additional rate, because the employee’s accruals in the current period are no longer subject to contributions at the additional rate.

Example 3

In this case, unlike the previous Example 2, the negative amount of insurance premiums resulting from the cancellation of a business trip will not be compensated by accruals. Despite the fact that due to the accruals of other employees, the total amount of insurance premiums will be positive, in Section 3 the employee will remain negative values, and this is unacceptable. And therefore the accountant will have to create a document Recalculation of insurance premiums, recalculate contributions for June, generate and submit an updated Calculation to the Federal Tax Service.

The 1C: Salary and Personnel Management 8 program automates the process of recalculating insurance premiums. Using the service 1C-Reporting initial and clarifying calculations for insurance premiums are generated automatically. However, the decision to prepare a clarifying Calculation remains with the accountant. Having analyzed the consequences of registering a document that changes calculations in the period for which a report has already been submitted, the accountant either recalculates insurance premiums for the previous period, or the calculation automatically occurs in the current month.

From the editor. In the article, read about the mechanism implemented in 1C:Enterprise 8 for checking control ratios for the calculation of insurance premiums, which takes into account the data of adjustment calculations.



Did you like the article? Share it