In lesson 6, when you created the Services document records in the BalanceOfMaterials accumulation register, we mentioned that these records were not entirely correct because they included not only expended materials but also rendered services (listing 10.3).
Listing 10.3. The Posting() procedure of the Services document
Procedure Posting(Cancel, Mode) //{{__REGISTER_REGISTERRECORDS_WIZARD // This fragment was built by the wizard. // Warning! All manually made changes will be lost next time you use the wizard. // register BalanceOfMaterials Expense RegisterRecords.BalanceOfMaterials.Write = True; For Each CurRowMaterialsAndServices In MaterialsAndServices Do Record = RegisterRecords.BalanceOfMaterials.Add(); Record.RecordType = AccumulationRecordType.Expense; Record.Period = Date; Record.Material = CurRowMaterialsAndServices.MaterialOrService; Record.Warehouse = Warehouse; Record.Quantity = CurRowMaterialsAndServices.Quantity; EndDo; //}}__REGISTER_REGISTERRECORDS_WIZARD EndProcedure
Let us modify the document so that only material expense records are added to the register.
First, you have to change the posting procedure in Designer to add only material expense records to the register, and then you have to repost all the Services documents in 1C:Enterprise mode to have the register data modified in compliance with the new document posting algorithm.
This enhancement is not optimal in terms of performance but it ensures that the BalanceOfMaterials register stores the correct data.
Note. We will discuss a more efficient algorithm of posting this document in lesson 14, after we study how 1C:Enterprise processes queries.
Next page: In Designer mode