An example of solving a 1C problem Platform Specialist - Operational Accounting


Why only FIFO with a simplified tax system of 15% (income minus expenses)

Below are a few pictures (screenshots from 1C: Simplified 8.3). Looking at them, you may notice a familiar situation. The accounting parameters settings and accounting policies are shown. The first two screenshots of the Simplified settings are the accounting policies (the “STS” and “Inventories” tabs).

On the tab shown here, income minus expenses is selected as the object of taxation, also often simply called “STS 15%”. Keeping records with this system is more difficult, because you need to take into account (read “report”) your expenses. That is, the likelihood of making an accounting error is greater. We go to the “Inventories” tab and see the first “problem” - it is impossible to select accounting by average .

The field here is simply blocked. Precisely because for the simplified tax system of 15% only FIFO is selected, you MUST use batch accounting. If it is not enabled in the 1C accounting parameters, it must be enabled. Otherwise, you will have problems with processing documents. If the program allows you not to include accounting by batch, it does not mean that you should do so!

If you want to learn accounting in the modern configuration of 1C: Accounting 8.3, we recommend using a special video course for training, containing 42 hours of practical training materials on independent accounting “from and to.” You can find examples of lessons and detailed descriptions on the video course page.

We go to the accounting settings and be sure to check the above accounting settings. “According to average,” as everyone most often does, will not work in the program. Why this happens is explained in detail in classes on the simplified tax system. Here I can briefly remind you that you will then have to fill out KUDiR... So think about how accounting by batch will help with this.

Remember and always check in the settings:

WE SAY “PARTY”, WE MEAN “FIFO” AND VICE VERSA!

, or better yet all three, so as not to forget when setting up the created empty database.

Solving the problem of operational accounting 1C Specialist 8

Data storage structure

The first task is to decide on the data storage structure.

It is best to start from the required reports when solving any problem. In our case, we need to show the user the cost of goods in the context of invoices and display sales for the period.

To store data on balances, we will use the accumulation register “Nomenclature Remains” (type - “Remains”): the storage dimensions (sections) of which are “Nomenclature” and “Batch” (the document with which the goods were recorded). The cost of goods will be calculated by batch.

To store information about sales, we need a “Sales” accumulation register (type - “Turnover”). There is only one dimension - “Nomenclature”. There are three resources - “Quantity”, “Amount”, “Cost”. The decision to store “Cost” in the sales register is quite controversial. In principle, in the above report it was possible to connect two registers to obtain information. However, I believe that speed and ease of retrieving information should be valued more than disk space.

Write-off of cost should be organized by batches, depending on the current value of the cost write-off method adopted in the accounting policy (FIFO, average or LIFO). Accounting policies can change every day, and their changes are recorded in the appropriate document.

To store the settings, we will use the information register “Method of Write-off of Goods” with a frequency of one day. On the Data tab, we will indicate only the resource - Write-off Method, and the measurement will be the period of setting the setting. To set the value of the information register, we use the document “Setting the Write-Off Method”, in which we indicate the only attribute - Write-Off Method. In processing the posting, we specify the following code:

Movements.Write-Off Method.Write = True; Movement = Movements.Item Write-Off Method.Add(); Movement.Period = Date; Movement.Write-off Method = Write-off Method;

To understand which nomenclature is a service, let’s set the “Service” attribute in the directory, the type is Boolean:

We've sorted out data storage. Let's start reflecting business transactions using Documents.

To solve this problem, we need two documents - a receipt invoice and an expense invoice. Let's look at them in more detail:

Purchase Invoice

From the point of view of goods receipt, everything is simple. The document must indicate at what time, how much of the product and at what cost it arrived. The income structure is as follows:

//getting the accounting policyWrite-off Method = Information Registers.Write-Off Method of Goods.GetLast(Date).Write-Off Method; Average = Write-off Method = Transfers. Accounting Policy. Average; //recording movements Movements.Remaining Nomenclature.Record = True; For Each TechStringListNomenclature From ListNomenclature Cycle If TechStringListNomenclature.Nomenclature.Service Then Continue; endIf; Movement = Movements.Nomenclature Remainders.Add(); Movement.MovementType = AccumulationMovementType.Incoming; Movement.Period = Date; Movement.Nomenclature = TekStringList of Nomenclature.Nomenclature; If Not Average Then // if the write-off method is average, you should not record the document batch Movement.Batch = Link; endIf; Movement.Quantity = TechStringListNomenclature.Quantity; Movement.Amount = TechStringListNomenclature.Amount; EndCycle;

You should pay attention to an important point - if the accounting policy is set as “average”, then you should not write a link to the current document in the register. Then, when written off, we will take the cost in terms of the “empty” batch, i.e. on average.

Sales Invoice

The metadata structure of the document The invoice is similar to the invoice; it can be completely copied. But with the processing of posting a 1C invoice for writing off batches, everything is a little more complicated.

First of all, you need to establish a controlled lock on the data. This is done to protect the read data from being changed by other users. This is done using the “Data Locking” object with the following program code:

Lock = NewDataLock; Locking Element = Locking.Add("Accumulation Register.Nomenclature Remaining"); LockElement.Mode = DataLockMode.Exclusive; Locking Element.DataSource = Item List; Locking Element.UseFromDataSource("Nomenclature", "Nomenclature"); Lock.Lock();

We will use the tabular part of the “List of Nomenclature” document as a data source.

Next, you need to find out which write-off method is set for the current period:

Write-Off Method = Information Registers.Write-Off Method.GetLast(Date).Write-Off Method; If Write-Off Method.Empty() Then Message = New MessageToUser; Message.Text = “The write-off method is not specified! Carrying out is not possible"; Refuse = True; Return; endIf; Average = Write-off Method = Transfers. Accounting Policy. Average;

After determining the write-off method, we determine the quantity of goods to be written off and generate movements:

Movements.Nomenclature Remains.Write = True; Movements.Sales.Record=True; Movements.Nomenclature Remainders.Write(); Movements.Sales.Record(); Request = New Request("SELECT | InvoiceListNomenclature.Nomenclature AS Nomenclature, | SUM(InvoiceListNomenclature.Quantity) AS Quantity, | SUM(InvoiceListNomenclature.Amount) AS Amount | PLACE VT |FROM | Document.Invoice.ListNomenclature AS Invoice InvoiceListItems |WHERE |InvoiceListItems .Link = &Link | |GROUP BY | InvoiceListItems.Nomenclature | |INDEX BY Items |; | |//////////////////////////// //////////////////////////////////////////////// / | SELECT | VT.Nomenclature AS Nomenclature, | VT.Quantity AS QuantityInDocument, | VT.Amount AS AmountInDocument, | Nomenclature RemainingRemainings.Batch, | ISNULL(Nomenclature RemainingRemaining.QuantityRemaining, 0) AS QuantityRemaining, | ISNULL(Nomenclature RemainingRemaining.AmountRemaining ok, 0) AS AmountRemaining |FROM | VT AS VT | LEFT CONNECTION Accumulation Register.Nomenclature Remainings.Remainings( | &Moment of Time, | Nomenclature B | (SELECT | VT.Nomenclature | FROM | VT AS VT)) AS RemaindersNomenclatureRemains | Software VT.Nomenclature = Remaining NomenclatureRemaining.Nomenclature | |ORDER BY | Remaining NomenclatureRemaining.Batch.Moment of Time AGE |RESULTS | MAX(NumberInDocument), | MAXIMUM(AmountInDocument), | SUM(NumberRemaining), | SUM(AmountRemaining) |PO | Nomenclature"); Request.SetParameter("TimePoint", TimePoint()); Request.SetParameter("Link",Link); If Write-off Method = Transfers.AccountingPolicy.LIFO Then Request.Text = StrReplace(Request.Text, “ADVANCE”, “DECREASE”); // if lifo - sort in DESCENDING order EndIf; SelectionNomenclature = Query.Execute().Select(BypassQueryResult.ByGrouping); While SelectionNomenclature.Next() Loop If NOT SelectionNomenclature.Nomenclature.Service and SelectionNomenclature.QuantityRemaining < SelectionNomenclature.QuantityInDocument Then Message = New MessageToUser; Message.Text = "Not enough" + Line(SelectionNomenclature.QuantityInDocument - SelectionNomenclature.QuantityRemaining) + "item units" + SelectionNomenclature.Nomenclature + ". Impossible."; Message.Message(); Refuse = True; endIf; If Refusal Then Continue; endIf; RemainingWrite = SamplingNomenclature.QuantityInDocument; SelectionDetRecords = SelectionNomenclature.Select(); While Selection of Children's Records.Next() And Remaining to Write Off <> 0 Cycle If NOT Selection of Children's Records. Nomenclature.Service Then KSWrite = Min(Remaining to Write Off, Selection of Children's Records. Quantity Remaining); If Average Then Write-Off Amount = ?(SampleNomenclature.QuantityRemaining =To Write-Off, SampleNomenclature.AmountRemaining,SampleNomenclature.AmountRemaining/SampleNomenclature.QuantityRemaining * TO Write-Off); Otherwise, Write-off Amount = ?(Children's Record Selection. Remaining Quantity = To Write-off, Children's Record Selection. Amount Remaining, Children's Record Selection. Remaining Amount/Children's Record Selection. Remaining Quantity * To Write-Off); endIf; New Movement = Movements. Item Remainings. Add Expense(); NewMovement.Period = Date; NewMovement.Registrator = Link; NewMovement.Quantity = KSwrite; NewMovement.Nomenclature = SamplingDetailsRecord.Nomenclature; If NOT Average Then NewMovement.Batch = SampleDetailsRecord.Batch; endIf; NewMovement.Amount = Write-off Amount; endIf; NewMovement = Movements.Sales.Add(); NewMovement.Activity = True; NewMovement.Period = Date; NewMovement.Registrator = Link; NewMovement.Nomenclature = SamplingDetailsRecord.Nomenclature; NewMovement.Amount = DetailRecord Selection.AmountInDocument; If NewMovement.Nomenclature.Service Then NewMovement.Cost = 0; NewMovement.Quantity = SelectionNomenclature.QuantityInDocument; Otherwise NewMovement.Quantity = KSwrite; NewMovement.Cost = Write-off Amount; RemainingWrite = RemainingWrite - KStowrite; endIf; EndCycle; EndCycle;

The following points should be noted here:

  1. Depending on the write-off method, we change the text of the request using the following construction: Request.Text = StrReplace(Request.Text, “ADV”, “DEC”).
  2. Don’t forget to index the fields of the temporary table by which you will connect the tables (INDEX BY Nomenclature).
  3. Don't forget to check for NULL values ​​in queries using the ISNULL construct. NULL can occur when joining to other tables when there is no value in the joined table.
  4. Solution to the problem of kopecks: if the quantity of goods written off for a given batch is equal to the balance for a given batch, then write off the entire amount. This will get rid of the remainder from the division. In our example: Write-off Amount = ?(SampleNomenclature.QuantityRemaining = TO Write-off, SampleNomenclature.AmountRemaining, SampleNomenclature.AmountRemaining/SampleNomenclature.QuantityRemaining * TO Write-off).
  5. If an item is missing, we set the Refusal parameter to True, but continue to move through the document lines to display all shortage messages.
  6. The quantity of goods is checked only for goods, excluding services.
  7. In the cycle, we write off until the need from the document is satisfied (Remaining to Write Off <> 0).
  8. If the write-off is made “on average,” then we DO NOT indicate the batch document.
  9. If the write-off is made “at the average”, the amount must be taken from the final grouping line.

Reports

With this register structure, the reports obtained are elementary:

Remaining goods:

Sales:

Problems due to incorrect settings

Generally speaking, there can be many of them. For example, if you enter the initial balances of goods or materials, then with “average” accounting selected (if you managed to set it), the program will still require a batch document and the document will not be posted at all. This is all because in some versions of 1C Accounting 8.3 Taxi you can still disable batch accounting and FIFO, but with USN 15 the document posting module will still require this data.

Simply put, you shouldn’t be tricky with the 1C settings and do it right. Then it will be easier for you!

What is batch accounting?

Batch accounting is product accounting in which each batch is taken into account. A product label is attached to each batch. Subsequently, the corresponding numbers are entered into the consumable papers. Product labels must contain document numbers, as well as the number of products sold.

A separate analytical account is created for each batch. It is needed to make movement records. Every month, based on the established analytical accounting, a turnover sheet is formed. It contains the batch number for each product group, as well as the amount and number of containers for each of them.

Advantages and disadvantages of batch accounting

Let's look at the main advantages of the batch method:

  • You can track expiration dates.
  • Ability to control the expiration of certificates.
  • Assistance in the correct formation of mark-ups on products.
  • Facilitate the return of products to the supplier.
  • Ensuring “transparent” payments to suppliers.
  • Correctly entering information about transactions into accounting programs.
  • Drawing up analytical reports in the context of cost characteristics (this is VAT, income, etc.).
  • Strict control over residues.
  • Reducing losses.
  • Reducing the number of losses.

Batch accounting is used in most cases by food manufacturing enterprises. However, this method is not without its disadvantages:

  • Irrational exploitation of space.
  • It is impossible to maintain operational records by item. This is explained by the fact that accounting is carried out using different batch cards.

Sources

Problems using LIFO, FIFO, average cost methods with solutions

Task 1. An organization specializing in assembling tablets and computers from purchased microcircuits, in 2021 launched the process of manufacturing computers of a more modern type, the sale of which was carried out unevenly throughout the year, so some finished computers increased stocks of finished products. Let's say that in 2021 the organization manufactured 4 similar computers. However, although these computers are the same, the cost of producing each computer is different due to increased prices for personnel wages and components.

Product Cost, rubles
Computer 1 13500
Computer 2 12000
Computer 3 14000
Computer 4 15100
Total 54600

Suppose 2 computers were sold to clients.

1) Determine the cost of computers sold and the cost of inventory using three methods - FIFO, LIFO, average cost.

The solution of the problem:

The LIFO method (today it is used mainly in logistics; changes have been introduced in tax and accounting accounting, according to which this method is no longer used for accounting for materials):

The cost of two computers sold is determined from the cost of the computers that were manufactured last: 15,100 + 14,000 = 29,100 (rubles).

The cost of inventories at the end of the year will be 54600-29100=25500 (rubles).

FIFO method:

The cost of computers sold will be determined based on the costs of manufacturing the first computers:

13500+12000=25500 (rubles)

The cost of inventory at the end of the period will be 54600-25500=29100 (rubles).

Average cost method:

The average unit cost is 54600/4=13650 (rubles), the cost of two computers will be 13650*2=27300 (rubles).

The cost of inventory at the end of the period will be equal to: 54600-27300=27300 (rub).

Advanced analytics mode

In the preset accounting settings, it is not at all obvious to an outside observer that there are options within Advanced Analytics itself.
Let's do this: 1. Select the cost accounting mode Batch accounting. In the window that opens, uncheck the Use advanced cost analytics checkbox:

Setting up accounting parameters in UPP and KA 1.1. Changing the Cost Accounting Mode

The warning does not scare us; the database is still empty.

2. Click on Change settings and again we see a warning about the need to resend all documents:

3. We agree and look with surprise at the following window:

Setting up accounting parameters in UPP and KA 1.1. Change the Advanced Cost Analytics option

Here they are - options for setting up Advanced Analytics. And these options contain very significant differences.

Read the explanations under each option carefully. Here's an important point. Only the last option allows us to enter management accounting data regardless of the regulated one. Technically, this is expressed in the fact that we have two separate Cost Accounting registers: regulated and managerial.

Plus a highlight - the ability to keep track of costs for projects and management departments is also expected only for the last option:

Cost granularity with advanced cost analytics

4. In my case, I will choose the last option - separate maintenance of regulated and management cost accounting. And again a warning:

We agree, indicate the start period of work in the database:

5. We finally achieve the result: changing the detailing option of Advanced Cost Analytics:

Setting up accounting parameters for UPP and KA 1.1. Advanced Cost Analytics

I think you can quite imagine what it costs to change the Advanced Analytics settings later. It is important to think about what settings will be needed before starting work and select the one you need right away. In a database with a large number of documents this will be much more difficult.

Types of batch accounting

Batch accounting is divided into these types:

  • FIFO and LIFO. These are automatic methods. That is, they function without user participation.
  • Manual. Assumes manual accounting.
  • Combined. For the most part, automated accounting is performed. However, the user can make manual adjustments.

The FIFO method is the most common. Its main feature is the write-off of batches in accordance with the capitalization procedure. Under FIFO, you can enter information retroactively. LIFO assumes priority write-off of lots that were capitalized later. This is a favorable method within the framework of inflation. This is due to the fact that if the purchase price increases, it is possible to reduce the markup, profit and VAT. However, it is not possible to enter information retroactively in this case.

Which form of accounting to choose?

If you choose the manual method, you need to consider the following disadvantages:

  • Mistakes made due to negligence.
  • Intentional mistakes made for the purpose of theft or deception.
  • Inconsistency in the work of specialists.
  • A lot of time is spent moving documents between the warehouse and the accounting department.
  • The need for frequent control of warehouses.

Due to all the disadvantages of the manual system, the automated system is the most common.

When is the batch method suitable or not suitable?

Let's consider cases in which batch accounting should be used:

  • The company is engaged in the sale of mass products. This includes medicines, components, and food products.
  • This is the optimal method for organizations with intensive trading.
  • Inability to quickly track the number of balances for the required products.
  • The company specializes in selling products with a short shelf life. The method allows you to track goods that are about to expire. This allows you to take appropriate measures in a timely manner. A quick response reduces and prevents financial loss.

Batch accounting is not suitable when selling unique products. For example, an organization sells cars. In this case, the varietal method is chosen. This is due to the fact that when selling such goods, only one document is drawn up - the receipt and expense document.

Rating
( 1 rating, average 4 out of 5 )
Did you like the article? Share with friends:
For any suggestions regarding the site: [email protected]
Для любых предложений по сайту: [email protected]