From 9d074ccc464e8e7014d846468a46678494f190a9 Mon Sep 17 00:00:00 2001 From: "andrey.vorobyov" Date: Wed, 3 Jun 2026 14:25:08 +0300 Subject: [PATCH 1/4] #IRP-755 --- .../OffsetOfAdvancesServer/Module.bsl | 253 +++++++++++++++--- IRP/src/Configuration/Configuration.mdo | 1 + .../ManagerModule.bsl | 17 ++ .../T2018S_FixedOffsetOfAdvances.mdo | 224 ++++++++++++++++ .../Rights.rights | 14 + 5 files changed, 475 insertions(+), 34 deletions(-) create mode 100644 IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/ManagerModule.bsl create mode 100644 IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/T2018S_FixedOffsetOfAdvances.mdo diff --git a/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl b/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl index f57043bb0a..f364db57c3 100644 --- a/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl +++ b/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl @@ -119,12 +119,23 @@ Function OffsetOfAdvancesAndAging(Parameters) Export Table_DocumentAndTransactionsKey.Columns.Add("Project" , RegMetadata.Dimensions.Project.Type); // is vendor transaction or is customer transaction Table_DocumentAndTransactionsKey.Columns.Add(Parameters.TransactionType , New TypeDescription("Boolean")); + Table_DocumentAndTransactionsKey.Columns.Add("Priority" , New TypeDescription("Number")); + + FixedAmounts = New ValueTable(); + FixedAmounts.Columns.Add("Company" , RegMetadata.Dimensions.Company.Type); + FixedAmounts.Columns.Add("Branch" , RegMetadata.Dimensions.Branch.Type); + FixedAmounts.Columns.Add("Currency" , RegMetadata.Dimensions.Currency.Type); + FixedAmounts.Columns.Add("Partner" , RegMetadata.Dimensions.Partner.Type); + FixedAmounts.Columns.Add("LegalName" , RegMetadata.Dimensions.LegalName.Type); + FixedAmounts.Columns.Add("Agreement" , RegMetadata.Dimensions.Agreement.Type); + FixedAmounts.Columns.Add("Amount" , RegMetadata.Resources.Amount.Type); + FixedAmounts.Columns.Add("PointInTime"); CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_OffsetAging, Table_DocumentAndTransactionsKey); // Write transactions keys to TM1030B_TransactionsKey Write_TM1030B_TransactionsKey(Parameters, Records_TransactionsKey); - Query = New Query; + Query = New Query(); Query.Text = "SELECT | DocAdv.Document, @@ -137,7 +148,8 @@ Function OffsetOfAdvancesAndAging(Parameters) Export |//////////////////////////////////////////////////////////////////////////////// |SELECT | DocTrn.Document, - | DocTrn.TransactionKeyUUID + | DocTrn.TransactionKeyUUID, + | DocTrn.Priority |INTO tmp_DocTrn |FROM | &DocTrn AS DocTrn @@ -148,7 +160,8 @@ Function OffsetOfAdvancesAndAging(Parameters) Export | tmp_DocAdv.AdvanceKeyUUID AS AdvanceKeyUUID, | NULL AS TransactionKeyUUID, | tmp_DocAdv.Document.PointInTime AS PointInTime, - | tmp_DocAdv.Document AS Document + | tmp_DocAdv.Document AS Document, + | 0 as Priority |INTO tmp_AllKeys |FROM | tmp_DocAdv AS tmp_DocAdv @@ -159,7 +172,8 @@ Function OffsetOfAdvancesAndAging(Parameters) Export | NULL, | tmp_DocTrn.TransactionKeyUUID, | tmp_DocTrn.Document.PointInTime, - | tmp_DocTrn.Document + | tmp_DocTrn.Document, + | tmp_DocTrn.Priority |FROM | tmp_DocTrn AS tmp_DocTrn |; @@ -169,17 +183,19 @@ Function OffsetOfAdvancesAndAging(Parameters) Export | tmpAllKeys.AdvanceKeyUUID, | tmpAllKeys.TransactionKeyUUID, | tmpAllKeys.PointInTime, - | tmpAllKeys.Document + | tmpAllKeys.Document, + | tmpAllKeys.Priority |FROM | tmp_AllKeys AS tmpAllKeys |GROUP BY | tmpAllKeys.AdvanceKeyUUID, | tmpAllKeys.TransactionKeyUUID, | tmpAllKeys.PointInTime, - | tmpAllKeys.Document + | tmpAllKeys.Document, + | tmpAllKeys.Priority | |ORDER BY - | PointInTime"; + | tmpAllKeys.Priority, tmpAllKeys.PointInTime"; Query.SetParameter("DocAdv", Table_DocumentAndAdvancesKey); Query.SetParameter("DocTrn", Table_DocumentAndTransactionsKey); @@ -192,7 +208,7 @@ Function OffsetOfAdvancesAndAging(Parameters) Export If ValueIsFilled(QuerySelection.AdvanceKeyUUID) Then AdvanceRows = Table_DocumentAndAdvancesKey.FindRows(New Structure("AdvanceKeyUUID", QuerySelection.AdvanceKeyUUID)); - If Not AdvanceRows.Count() Then + If AdvanceRows.Count() = 0 Then Raise StrTemplate(R().Error_DocumentAndAdvancesKeyNotFound, QuerySelection.AdvanceKeyUUID); ENdIf; AdvanceRecordData = CreateAdvanceRecordData(Parameters, AdvanceRows[0]); @@ -241,7 +257,7 @@ Function OffsetOfAdvancesAndAging(Parameters) Export Records_OffsetAging, TransactionRecordData, QuerySelection.PointInTime, - QuerySelection.Document); + QuerySelection.Document, FixedAmounts, (TransactionRows[0].Priority = 0)); CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_OffsetAging, Table_DocumentAndTransactionsKey, @@ -272,7 +288,7 @@ Procedure OffsetAdvancesToTransactions(Parameters, AdvanceRecordData, PointInTime, Document) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | AdvancesBalance.Company, @@ -349,7 +365,7 @@ Procedure DistributeAdvanceToTransaction(Parameters, Records_OffsetAging, NeedWriteAdvances) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | TransactionsBalance.Company, @@ -362,6 +378,7 @@ Procedure DistributeAdvanceToTransaction(Parameters, | TransactionsBalance.Order, | TransactionsBalance.Project, | TransactionsBalance.AmountBalance AS TransactionAmount + |INTO tmp |FROM | AccumulationRegister.TM1030B_TransactionsKey.Balance(&AdvanceBoundary, Company = &Company | AND Branch = &Branch @@ -369,9 +386,59 @@ Procedure DistributeAdvanceToTransaction(Parameters, | AND Partner = &Partner | AND Agreement = &Agreement | AND LegalName = &LegalName) AS TransactionsBalance + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |SELECT + | tmp.*, + | SUM(CASE + | WHEN T2018S_FixedOffsetOfAdvances.IsFixed IS NULL + | THEN 1 + | ELSE 0 + | END) AS Priority + |INTO tmp2 + |FROM + | tmp AS tmp + | LEFT JOIN InformationRegister.T2018S_FixedOffsetOfAdvances AS T2018S_FixedOffsetOfAdvances + | ON tmp.Company = T2018S_FixedOffsetOfAdvances.Company + | AND tmp.Branch = T2018S_FixedOffsetOfAdvances.Branch + | AND tmp.Currency = T2018S_FixedOffsetOfAdvances.Currency + | AND tmp.Partner = T2018S_FixedOffsetOfAdvances.Partner + | AND tmp.LegalName = T2018S_FixedOffsetOfAdvances.LegalName + | AND tmp.Agreement = T2018S_FixedOffsetOfAdvances.Agreement + | AND tmp.Project = T2018S_FixedOffsetOfAdvances.Project + | AND tmp.Order = CASE + | WHEN T2018S_FixedOffsetOfAdvances.Order.ref IS NULL + | THEN undefined + | ELSE T2018S_FixedOffsetOfAdvances.Order + | END + | AND T2018S_FixedOffsetOfAdvances.IsFixed + | AND tmp.TransactionBasis = CASE + | WHEN T2018S_FixedOffsetOfAdvances.TransactionDocument.ref IS NULL + | THEN UNDEFINED + | ELSE T2018S_FixedOffsetOfAdvances.TransactionDocument + | END + |GROUP BY + | tmp.Company, + | tmp.Branch, + | tmp.Currency, + | tmp.Partner, + | tmp.LegalName, + | tmp.Agreement, + | tmp.TransactionBasis, + | tmp.Order, + | tmp.Project, + | tmp.TransactionAmount + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |SELECT + | tmp2.* + |FROM + | tmp2 AS tmp2 | |ORDER BY - | TransactionBasis.PointInTime"; + | tmp2.Priority, tmp2.TransactionBasis.PointInTime"; Point = New PointInTime(PointInTime.Date, Parameters.Object.Ref); Boundary = New Boundary(Point, BoundaryType.Including); @@ -463,8 +530,8 @@ Procedure OffsetTransactionsToAdvances(Parameters, Records_OffsetAging, TransactionRecordData, PointInTime, - Document) - Query = New Query; + Document, FixedAmounts, IsFixed) + Query = New Query(); Query.Text = "SELECT | TransactionsBalance.AmountBalance AS TransactionAmount @@ -505,15 +572,14 @@ Procedure OffsetTransactionsToAdvances(Parameters, While QuerySelection.Next() Do DistributeTransactionToAdvance(Parameters, PointInTime, - Document, - //QuerySelection.TransactionKey, + Document, TransactionRecordData, QuerySelection.TransactionAmount, Records_AdvancesKey, Records_TransactionsKey, Records_OffsetOfAdvances, Records_OffsetAging, - NeedWriteTransactions); + NeedWriteTransactions, FixedAmounts, IsFixed); EndDo; // Write ofsetted advances to TM1020B_AdvancesKey, Expense If NeedWriteTransactions Then @@ -522,7 +588,7 @@ Procedure OffsetTransactionsToAdvances(Parameters, EndProcedure Function FindRowKeyByAdvanceKey(Parameters, AdvanceRecordData, Document) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | MAX(T2014S_AdvancesInfo.Key) AS Key @@ -568,7 +634,7 @@ Function FindRowKeyByAdvanceKey(Parameters, AdvanceRecordData, Document) EndFunction Function FindRowKeyByTransactionKey(Parameters, TransactionRecordData, Document) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | MAX(T2015S_TransactionsInfo.Key) AS Key @@ -621,9 +687,9 @@ Procedure DistributeTransactionToAdvance(Parameters, Records_TransactionsKey, Records_OffsetOfAdvances, Records_OffsetAging, - NeedWriteTransactions) + NeedWriteTransactions, FixedAmounts, IsFixed) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | AdvancesBalance.Company, @@ -657,6 +723,22 @@ Procedure DistributeTransactionToAdvance(Parameters, QueryResult = Query.Execute(); QuerySelection = QueryResult.Select(); + Filter = New Structure(); + Filter.Insert("Company" , TransactionRecordData.Company); + Filter.Insert("Branch" , TransactionRecordData.Branch); + Filter.Insert("Currency" , TransactionRecordData.Currency); + Filter.Insert("Partner" , TransactionRecordData.Partner); + Filter.Insert("LegalName" , TransactionRecordData.LegalName); + Filter.Insert("Agreement" , TransactionRecordData.Agreement); + + AlreadyWriteoff = 0; + Rows = FixedAmounts.FindRows(Filter); + For Each Row In Rows Do + If Point.Compare(Row.PointInTime) < 0 Then + AlreadyWriteoff = AlreadyWriteoff + Row.Amount; + EndIf; + EndDo; + NeedWriteoff = TransactionAmount; NeedWriteAdvances = False; While QuerySelection.Next() Do @@ -686,8 +768,20 @@ Procedure DistributeTransactionToAdvance(Parameters, Continue; EndIf; - CanWriteoff = Min(QuerySelection.AdvanceAmount, NeedWriteoff); + _AdvanceAmount = 0; + If QuerySelection.AdvanceAmount - AlreadyWriteoff > 0 Then + _AdvanceAmount = QuerySelection.AdvanceAmount - AlreadyWriteoff; + EndIf; + + CanWriteoff = Min(_AdvanceAmount, NeedWriteoff); NeedWriteoff = NeedWriteoff - CanWriteoff; + + If CanWriteoff > 0 And IsFixed Then + NewRow_FixedAmounts = FixedAmounts.Add(); + FillPropertyValues(NewRow_FixedAmounts, TransactionRecordData); + NewRow_FixedAmounts.Amount = CanWriteoff; + NewRow_FixedAmounts.PointInTime = Point; + EndIf; // Transactions Add_TM1030B_TransactionsKey(AccumulationRecordType.Expense, @@ -730,6 +824,41 @@ Procedure DistributeTransactionToAdvance(Parameters, EndProcedure Procedure Write_SelfRecords(Parameters, Records_OffsetOfAdvances, Records_OffsetAging) + For Each Row In Records_OffsetOfAdvances Do + If Not ValueIsFilled(Row.TransactionDocument) Then + Continue; + EndIf; + RecordSet = InformationRegisters.T2018S_FixedOffsetOfAdvances.CreateRecordSet(); + RecordSet.Filter.Document.Set(Parameters.Object.Ref); + RecordSet.Filter.Company.Set(Row.Company); + RecordSet.Filter.Branch.Set(Row.Branch); + RecordSet.Filter.Currency.Set(Row.Currency); + RecordSet.Filter.Partner.Set(Row.Partner); + RecordSet.Filter.LegalName.Set(Row.LegalName); + RecordSet.Filter.Agreement.Set(Row.Agreement); + RecordSet.Filter.Order.Set(?(ValueIsFilled(Row.TransactionOrder), Row.TransactionOrder, Undefined)); + RecordSet.Filter.Project.Set(Row.TransactionProject); + RecordSet.Filter.TransactionDocument.Set(Row.TransactionDocument); + RecordSet.Read(); + If RecordSet.Count() = 0 Then + RecordSet.Add().IsFixed = False; + EndIf; + For Each Record In RecordSet Do + Record.Document = Parameters.Object.Ref; + Record.Company = Row.Company; + Record.Branch = Row.Branch; + Record.Currency = Row.Currency; + Record.Partner = Row.Partner; + Record.LegalName = Row.LegalName; + Record.Agreement = Row.Agreement; + Record.Order = ?(ValueIsFilled(Row.TransactionOrder), Row.TransactionOrder, Undefined); + Record.Project = Row.TransactionProject; + Record.TransactionDocument = Row.TransactionDocument; + Record.Amount = Row.Amount; + EndDo; + RecordSet.Write(True); + EndDo; + RecordersTotal = New ValueTable(); RecordersTotal.Columns.Add("Document"); RecordersTotal.Columns.Add("Company"); @@ -1262,7 +1391,7 @@ EndFunction Procedure WriteTablesToTempTables(Parameters, Records_OffsetOfAdvances, Records_OffsetAging) - Query = New Query; + Query = New Query(); Query.TempTablesManager = Parameters.TempTablesManager; Query.Text = "SELECT @@ -1385,7 +1514,7 @@ EndProcedure Function ReleaseAdvanceByOrder(Parameters, Records_AdvancesKey, Records_OffsetOfAdvances, Document, Date, AdvanceRecordData) Write_TM1020B_AdvancesKey(Parameters, Records_AdvancesKey); - Query = New Query; + Query = New Query(); Query.Text = "SELECT | AdvancesBalance.AmountBalance AS AdvanceAmount @@ -1495,7 +1624,7 @@ Function CreateAdvanceRecordData(Parameters, RecordData) EndFunction Procedure CreateAdvancesKeys(Parameters, Records_AdvancesKey, Records_OffsetOfAdvances, Table_DocumentAndAdvancesKey) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | AdvInfo.Recorder AS Document, @@ -1586,7 +1715,7 @@ Function CreateTransactionRecordData(Parameters, RecordData) EndFunction Procedure CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_OffsetAging, Table_DocumentAndTransactionsKey, FilterRecorder = Undefined) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | TrnInfo.Date, @@ -1611,16 +1740,65 @@ Procedure CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_Of | THEN UNDEFINED | ELSE TrnInfo.TransactionBasis | END AS TransactionBasis + |INTO tmp |FROM | InformationRegister.T2015S_TransactionsInfo AS TrnInfo |WHERE | TrnInfo.Date BETWEEN BEGINOFPERIOD(&BeginOfPeriod, DAY) AND ENDOFPERIOD(&EndOfPeriod, DAY) - | AND TrnInfo.Company = &Company - | and case when &Filter_Branch then TrnInfo.Branch = &Branch else true end - | AND CASE WHEN &Filter_Recorder THEN TrnInfo.Recorder = &Recorder ELSE TRUE END + | AND TrnInfo.Company = &Company + | AND CASE + | WHEN &Filter_Branch + | THEN TrnInfo.Branch = &Branch + | ELSE TRUE + | END + | AND CASE + | WHEN &Filter_Recorder + | THEN TrnInfo.Recorder = &Recorder + | ELSE TRUE + | END | AND TrnInfo.%1 - |order by - | TrnInfo.Recorder.PointInTime"; + |; + | + |//////////////////////////////////////////////////////////////////////////////// + |SELECT + | tmp.*, + | SUM(CASE + | WHEN T2018S_FixedOffsetOfAdvances.IsFixed IS NULL + | THEN 1 + | ELSE 0 + | END) AS Priority + |into tmp2 + |FROM + | tmp AS tmp + | LEFT JOIN InformationRegister.T2018S_FixedOffsetOfAdvances AS T2018S_FixedOffsetOfAdvances + | ON tmp.Company = T2018S_FixedOffsetOfAdvances.Company + | AND tmp.Branch = T2018S_FixedOffsetOfAdvances.Branch + | AND tmp.Currency = T2018S_FixedOffsetOfAdvances.Currency + | AND tmp.Partner = T2018S_FixedOffsetOfAdvances.Partner + | AND tmp.LegalName = T2018S_FixedOffsetOfAdvances.LegalName + | AND tmp.Agreement = T2018S_FixedOffsetOfAdvances.Agreement + | AND tmp.Project = T2018S_FixedOffsetOfAdvances.Project + | AND tmp.Order = case when T2018S_FixedOffsetOfAdvances.Order.ref is null then &Order_EmptyRef + | else T2018S_FixedOffsetOfAdvances.Order end + | AND T2018S_FixedOffsetOfAdvances.IsFixed + | and tmp.TransactionBasis = case when T2018S_FixedOffsetOfAdvances.TransactionDocument.ref is null then undefined + | else T2018S_FixedOffsetOfAdvances.TransactionDocument end + |GROUP BY + | tmp.Date, + | tmp.Document, + | tmp.Amount, + | tmp.IsDue, + | tmp.IsPaid, + | tmp.Company, + | tmp.Branch, + | tmp.Currency, + | tmp.Partner, + | tmp.LegalName, + | tmp.Agreement, + | tmp.Project, + | tmp.Order, + | tmp.TransactionBasis + |; select tmp2.* from tmp2 as tmp2 order by tmp2.Priority, tmp2.Document.PointInTime"; Query.Text = StrTemplate(Query.Text, Parameters.TransactionType); @@ -1685,6 +1863,7 @@ Procedure CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_Of New_DocKeys = Table_DocumentAndTransactionsKey.Add(); New_DocKeys.Document = QuerySelection.Document; New_DocKeys.TransactionKeyUUID = TransactionKeyUUID; + New_DocKeys.Priority = QuerySelection.Priority; FillPropertyValues(New_DocKeys, RecordData); // Paid from customer or to vendor @@ -1702,7 +1881,7 @@ Procedure CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_Of EndProcedure Procedure DistributeTransactionToAging(Parameters, PointInTime, Document, TransactionData, TransactionAmount, Records_OffsetAging, OffsetRecord) - Query = New Query; + Query = New Query(); Query.Text = "SELECT DISTINCT | RegAging.PaymentDate, @@ -1904,7 +2083,7 @@ Procedure Write_TM1030B_TransactionsKey(Parameters, Records_TransactionsKey) EndProcedure Procedure Clear_SelfRecords(Parameters, IsUnposting = False) - Query = New Query; + Query = New Query(); Query.Text = "SELECT | %1.Recorder @@ -1980,6 +2159,12 @@ Procedure Clear_SelfRecords(Parameters, IsUnposting = False) ClearRegisterRecords(Ref, TableOfRecorders_Accounting , "T1040T_AccountingAmounts" , "AdvancesClosing"); ClearRegisterRecords(Ref, TableOfRecorders_PartnersBalance, "R5020B_PartnersBalance" , "AdvancesClosing"); + FixedOffsetOfAdvances = InformationRegisters.T2018S_FixedOffsetOfAdvances.CreateRecordSet(); + FixedOffsetOfAdvances.Filter.Document.Set(Ref); + FixedOffsetOfAdvances.Filter.IsFixed.Set(False); + FixedOffsetOfAdvances.Clear(); + FixedOffsetOfAdvances.Write(); + If IsUnposting Then For Each Row In TableOfRecorders_Accounting Do AccountingServer.UpdateAccountingRelevance(Row.Recorder); @@ -1992,7 +2177,7 @@ Procedure ClearRegisterRecords(DocRef, TableOfRecorders, RegisterName, AttrName) RecordSet = AccumulationRegisters[RegisterName].CreateRecordSet(); RecordSet.Filter.Recorder.Set(Row.Recorder); RecordSet.Read(); - ArrayForDelete = New Array; + ArrayForDelete = New Array(); For Each Record In RecordSet Do If Record[AttrName] = DocRef Then ArrayForDelete.Add(Record); diff --git a/IRP/src/Configuration/Configuration.mdo b/IRP/src/Configuration/Configuration.mdo index c5cd1b978c..019d17459d 100644 --- a/IRP/src/Configuration/Configuration.mdo +++ b/IRP/src/Configuration/Configuration.mdo @@ -1868,6 +1868,7 @@ InformationRegister.TranformedObjectsLink InformationRegister.UserSettings InformationRegister.DashboardSettings + InformationRegister.T2018S_FixedOffsetOfAdvances AccumulationRegister.CashInTransit AccumulationRegister.DELETE_R8010B_TradeAgentInventory AccumulationRegister.DELETE_R8011B_TradeAgentSerialLotNumber diff --git a/IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/ManagerModule.bsl b/IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/ManagerModule.bsl new file mode 100644 index 0000000000..d409e3eb1e --- /dev/null +++ b/IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/ManagerModule.bsl @@ -0,0 +1,17 @@ +#Region AccessObject + +// Get access key. +// See Role.TemplateInformationRegisters +// +// Returns: +// Structure - Get access key: +// * Company - CatalogRef.Companies - +// * Branch - CatalogRef.BusinessUnits - +Function GetAccessKey() Export + AccessKeyStructure = New Structure; + AccessKeyStructure.Insert("Company", Catalogs.Companies.EmptyRef()); + AccessKeyStructure.Insert("Branch", Catalogs.BusinessUnits.EmptyRef()); + Return AccessKeyStructure; +EndFunction + +#EndRegion \ No newline at end of file diff --git a/IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/T2018S_FixedOffsetOfAdvances.mdo b/IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/T2018S_FixedOffsetOfAdvances.mdo new file mode 100644 index 0000000000..8bdfb065e2 --- /dev/null +++ b/IRP/src/InformationRegisters/T2018S_FixedOffsetOfAdvances/T2018S_FixedOffsetOfAdvances.mdo @@ -0,0 +1,224 @@ + + + + + + + + + + + + T2018S_FixedOffsetOfAdvances + + en + T2018S Fixed offset of advances + + InDialog + Managed + + Amount + + en + Amount + + + DefinedType.typeAmount + + + + Use + Use + + + + Document + + en + Document + + + DocumentRef.VendorsAdvancesClosing + DocumentRef.CustomersAdvancesClosing + + + + true + Use + Use + true + + true + true + + + IsFixed + + en + Is fixed + + + Boolean + + + + Use + Use + + true + + + Company + + en + Company + + + CatalogRef.Companies + + + + Use + Use + + true + + + Branch + + en + Branch + + + CatalogRef.BusinessUnits + + + + Use + Use + + true + + + Currency + + en + Currency + + + CatalogRef.Currencies + + + + Use + Use + + true + + + Partner + + en + Partner + + + CatalogRef.Partners + + + + Use + Use + + true + + + LegalName + + en + Legal name + + + CatalogRef.Companies + + + + Use + Use + + true + + + Agreement + + en + Agreement + + + CatalogRef.Agreements + + + + Use + Use + + true + + + Order + + en + Order + + + DocumentRef.PurchaseOrder + DocumentRef.SalesOrder + + + + Use + Use + + true + + + Project + + en + Project + + + CatalogRef.Projects + + + + Use + Use + + true + + + TransactionDocument + + en + Transaction document + + + DocumentRef.SalesReportFromTradeAgent + DocumentRef.CashTransferOrder + DocumentRef.PurchaseInvoice + DocumentRef.DebitNote + DocumentRef.CreditNote + DocumentRef.PurchaseReturn + DocumentRef.OpeningEntry + DocumentRef.SalesReturn + DocumentRef.SalesReportToConsignor + DocumentRef.SalesInvoice + + + + Use + Use + + true + + diff --git a/IRP/src/Roles/TemplateInformationRegisters/Rights.rights b/IRP/src/Roles/TemplateInformationRegisters/Rights.rights index 6b9e0c19a4..5dfc2a3422 100644 --- a/IRP/src/Roles/TemplateInformationRegisters/Rights.rights +++ b/IRP/src/Roles/TemplateInformationRegisters/Rights.rights @@ -1596,6 +1596,20 @@ true + + InformationRegister.T2018S_FixedOffsetOfAdvances + + Read + true + + #AccessRegisters("Company", "Branch", "", "", "", "") + + + + View + true + + InformationRegister.LoggerNotification From 4bc525f66b8904fb01e007442a50584ca68d821e Mon Sep 17 00:00:00 2001 From: "andrey.vorobyov" Date: Wed, 3 Jun 2026 18:12:08 +0300 Subject: [PATCH 2/4] #IRP-755 --- IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl b/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl index f364db57c3..446938656c 100644 --- a/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl +++ b/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl @@ -418,6 +418,7 @@ Procedure DistributeAdvanceToTransaction(Parameters, | THEN UNDEFINED | ELSE T2018S_FixedOffsetOfAdvances.TransactionDocument | END + | and T2018S_FixedOffsetOfAdvances.Document = &Ref |GROUP BY | tmp.Company, | tmp.Branch, @@ -450,6 +451,7 @@ Procedure DistributeAdvanceToTransaction(Parameters, Query.SetParameter("Partner" , AdvanceRecordData.Partner); Query.SetParameter("LegalName" , AdvanceRecordData.LegalName); Query.SetParameter("Agreement" , AdvanceRecordData.Agreement); + Query.SetParameter("Ref" , Parameters.Object.Ref); QueryResult = Query.Execute(); QuerySelection = QueryResult.Select(); @@ -1783,6 +1785,7 @@ Procedure CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_Of | AND T2018S_FixedOffsetOfAdvances.IsFixed | and tmp.TransactionBasis = case when T2018S_FixedOffsetOfAdvances.TransactionDocument.ref is null then undefined | else T2018S_FixedOffsetOfAdvances.TransactionDocument end + | and T2018S_FixedOffsetOfAdvances.Document = &Ref |GROUP BY | tmp.Date, | tmp.Document, @@ -1808,6 +1811,7 @@ Procedure CreateTransactionsKeys(Parameters, Records_TransactionsKey, Records_Of Query.SetParameter("Branch" , Parameters.Object.Branch); Query.SetParameter("Filter_Branch" , ValueIsFilled(Parameters.Object.Branch)); Query.SetParameter("Order_EmptyRef", Parameters.Order_EmptyRef); + Query.SetParameter("Ref", Parameters.Object.Ref); If FilterRecorder <> Undefined Then Query.SetParameter("Filter_Recorder", True); From fee9573fa981469fe1af0ef5f9289ef6cc9b8630 Mon Sep 17 00:00:00 2001 From: "andrey.vorobyov" Date: Thu, 4 Jun 2026 11:40:21 +0300 Subject: [PATCH 3/4] #IRP-755 --- IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl b/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl index 446938656c..e276d44e7a 100644 --- a/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl +++ b/IRP/src/CommonModules/OffsetOfAdvancesServer/Module.bsl @@ -161,7 +161,7 @@ Function OffsetOfAdvancesAndAging(Parameters) Export | NULL AS TransactionKeyUUID, | tmp_DocAdv.Document.PointInTime AS PointInTime, | tmp_DocAdv.Document AS Document, - | 0 as Priority + | 1 as Priority |INTO tmp_AllKeys |FROM | tmp_DocAdv AS tmp_DocAdv From 53def512db979f080e9bf911a1af3752ca47a8bc Mon Sep 17 00:00:00 2001 From: "andrey.vorobyov" Date: Fri, 5 Jun 2026 15:17:40 +0300 Subject: [PATCH 4/4] #IRP-755 --- .../Forms/DocumentForm/Form.form | 901 +++++++++++++++++- .../Forms/DocumentForm/Module.bsl | 82 ++ .../Forms/DocumentForm/Form.form | 887 +++++++++++++++++ .../Forms/DocumentForm/Module.bsl | 82 ++ 4 files changed, 1951 insertions(+), 1 deletion(-) diff --git a/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Form.form b/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Form.form index 48916dde69..2e19f5a58b 100644 --- a/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Form.form +++ b/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Form.form @@ -1,5 +1,5 @@ - + Number 1 @@ -274,6 +274,646 @@ true + + FixedOffsetOfAdvances + 28 + true + true + + true + + + FixedOffsetOfAdvances + + None + + FixedOffsetOfAdvancesIsFixed + 68 + true + true + + true + + + FixedOffsetOfAdvances.IsFixed + + None + + FixedOffsetOfAdvancesIsFixedExtendedTooltip + 70 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesIsFixedContextMenu + 69 + true + + CheckBoxField + Enter + true + Left + true + + + + FixedOffsetOfAdvancesCompany + 41 + true + true + + true + + + FixedOffsetOfAdvances.Company + + + FixedOffsetOfAdvancesCompanyExtendedTooltip + 43 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesCompanyContextMenu + 42 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesBranch + 44 + true + true + + true + + + FixedOffsetOfAdvances.Branch + + + FixedOffsetOfAdvancesBranchExtendedTooltip + 46 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesBranchContextMenu + 45 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesCurrency + 47 + true + true + + true + + + FixedOffsetOfAdvances.Currency + + + FixedOffsetOfAdvancesCurrencyExtendedTooltip + 49 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesCurrencyContextMenu + 48 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesPartner + 50 + true + true + + true + + + FixedOffsetOfAdvances.Partner + + + FixedOffsetOfAdvancesPartnerExtendedTooltip + 52 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesPartnerContextMenu + 51 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesLegalName + 53 + true + true + + true + + + FixedOffsetOfAdvances.LegalName + + + FixedOffsetOfAdvancesLegalNameExtendedTooltip + 55 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesLegalNameContextMenu + 54 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + Filter.Partner + + Items.FixedOffsetOfAdvances.CurrentData.Partner + + + + + + FixedOffsetOfAdvancesAgreement + 56 + true + true + + true + + + FixedOffsetOfAdvances.Agreement + + + FixedOffsetOfAdvancesAgreementExtendedTooltip + 58 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesAgreementContextMenu + 57 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + Filter.Partner + + Items.FixedOffsetOfAdvances.CurrentData.Partner + + + + + + FixedOffsetOfAdvancesOrder + 59 + true + true + + true + + + FixedOffsetOfAdvances.Order + + + FixedOffsetOfAdvancesOrderExtendedTooltip + 61 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesOrderContextMenu + 60 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesProject + 62 + true + true + + true + + + FixedOffsetOfAdvances.Project + + + FixedOffsetOfAdvancesProjectExtendedTooltip + 64 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesProjectContextMenu + 63 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesTransactionDocument + 65 + true + true + + true + + + FixedOffsetOfAdvances.TransactionDocument + + + FixedOffsetOfAdvancesTransactionDocumentExtendedTooltip + 67 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesTransactionDocumentContextMenu + 66 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesAmount + 74 + true + true + + true + + + FixedOffsetOfAdvances.Amount + + + FixedOffsetOfAdvancesAmountExtendedTooltip + 76 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesAmountContextMenu + 75 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesDocument + 71 + true + + true + + + FixedOffsetOfAdvances.Document + + + FixedOffsetOfAdvancesDocumentExtendedTooltip + 73 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesDocumentContextMenu + 72 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesCommandBar + 29 + + FixedOffsetOfAdvancesSaveFixedOffset + 77 + true + true + + true + + + FixedOffsetOfAdvancesSaveFixedOffsetExtendedTooltip + 78 + Label + true + true + + Left + + + Form.Command.SaveFixedOffset + Auto + true + true + UserCmds + Auto + + Left + true + + + BeforeAddRow + FixedOffsetOfAdvancesBeforeAddRow + + + FixedOffsetOfAdvancesSearchString + 32 + + FixedOffsetOfAdvancesSearchStringExtendedTooltip + 34 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesSearchStringContextMenu + 33 + true + + FixedOffsetOfAdvances + + true + + + + FixedOffsetOfAdvancesViewStatus + 38 + + FixedOffsetOfAdvancesViewStatusExtendedTooltip + 40 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesViewStatusContextMenu + 39 + true + + ViewStatusAddition + FixedOffsetOfAdvances + + true + + + + FixedOffsetOfAdvancesSearchControl + 35 + + FixedOffsetOfAdvancesSearchControlExtendedTooltip + 37 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesSearchControlContextMenu + 36 + true + + SearchControlAddition + FixedOffsetOfAdvances + + true + + + + FixedOffsetOfAdvancesExtendedTooltip + 31 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesContextMenu + 30 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true + AsFileRef + +
FormCommandBar -1 @@ -311,11 +951,270 @@
true
true + + FixedOffsetOfAdvances + + <key>en</key> + <value>Fixed offset of advances</value> + + 2 + + ValueTable + + + true + + + true + + + Company + + <key>en</key> + <value>Company</value> + + 3 + + CatalogRef.Companies + + + true + + + true + + + + Branch + + <key>en</key> + <value>Branch</value> + + 4 + + CatalogRef.BusinessUnits + + + true + + + true + + + + Currency + + <key>en</key> + <value>Currency</value> + + 5 + + CatalogRef.Currencies + + + true + + + true + + + + Partner + + <key>en</key> + <value>Partner</value> + + 6 + + CatalogRef.Partners + + + true + + + true + + + + LegalName + + <key>en</key> + <value>Legal name</value> + + 7 + + CatalogRef.Companies + + + true + + + true + + + + Agreement + + <key>en</key> + <value>Agreement</value> + + 8 + + CatalogRef.Agreements + + + true + + + true + + + + Order + + <key>en</key> + <value>Order</value> + + 9 + + DocumentRef.SalesOrder + + + true + + + true + + + + Project + + <key>en</key> + <value>Project</value> + + 10 + + CatalogRef.Projects + + + true + + + true + + + + TransactionDocument + + <key>en</key> + <value>Transaction document</value> + + 11 + + DocumentRef.SalesReportFromTradeAgent + DocumentRef.CashTransferOrder + DocumentRef.PurchaseInvoice + DocumentRef.DebitNote + DocumentRef.CreditNote + DocumentRef.PurchaseReturn + DocumentRef.OpeningEntry + DocumentRef.SalesReturn + DocumentRef.SalesReportToConsignor + DocumentRef.SalesInvoice + + + true + + + true + + + + IsFixed + + <key>en</key> + <value>Is fixed</value> + + 12 + + Boolean + + + true + + + true + + + + Document + + <key>en</key> + <value>Document</value> + + 13 + + DocumentRef.CustomersAdvancesClosing + + + true + + + true + + + + Amount + + <key>en</key> + <value>Amount</value> + + 14 + + DefinedType.typeAmount + + + true + + + true + + + + + SaveFixedOffset + + <key>en</key> + <value>Save fixed offset</value> + + 1 + + true + + + StdPicture.SaveFile + + + + SaveFixedOffset + + + TextPicture + Auto + + + AfterWriteAtServer + AfterWriteAtServer + + + OnReadAtServer + OnReadAtServer + true
diff --git a/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Module.bsl b/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Module.bsl index 0221823643..5a5a63b0ea 100644 --- a/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Module.bsl +++ b/IRP/src/Documents/CustomersAdvancesClosing/Forms/DocumentForm/Module.bsl @@ -1,4 +1,86 @@ +&AtServer +Procedure OnReadAtServer(CurrentObject) + FillFixedOffsetOfAdvances(CurrentObject.Ref); +EndProcedure + +&AtServer +Procedure AfterWriteAtServer(CurrentObject, WriteParameters) + FillFixedOffsetOfAdvances(CurrentObject.Ref); +EndProcedure + +&AtClient +Procedure SaveFixedOffset(Command) + SaveFixedOffsetAtServer(); +EndProcedure + +&AtServer +Procedure SaveFixedOffsetAtServer() + RecordSet = InformationRegisters.T2018S_FixedOffsetOfAdvances.CreateRecordSet(); + RecordSet.Filter.Document.Set(Object.Ref); + For Each Row In ThisObject.FixedOffsetOfAdvances Do + FillPropertyValues(RecordSet.Add(), Row); + EndDo; + RecordSet.Write(); +EndProcedure + +&AtClient +Procedure FixedOffsetOfAdvancesBeforeAddRow(Item, Cancel, Clone, Parent, IsFolder, Parameter) + Cancel = True; + + If Not ValueIsFilled(Object.Ref) Then + Callback = New CallbackDescription("WriteBeforAddNewRow", ThisObject); + ShowQueryBox(Callback, R().QuestionToUser_001, QuestionDialogMode.YesNo); + Else + FixedOffsetOfAdvancesAddRow(); + EndIf; +EndProcedure + +&AtClient +Procedure WriteBeforAddNewRow(Result, Params) Export + If Result = DialogReturnCode.Yes And Write() Then + FixedOffsetOfAdvancesAddRow(); + EndIf; +EndProcedure + +&AtClient +Procedure FixedOffsetOfAdvancesAddRow() + NewRow = ThisObject.FixedOffsetOfAdvances.Add(); + NewRow.Document = Object.Ref; + NewRow.Company = Object.Company; + NewRow.Branch = Object.Branch; + NewRow.IsFixed = True; + Items.FixedOffsetOfAdvances.CurrentRow = NewRow.GetID(); + If Items.FixedOffsetOfAdvances.CurrentRow <> Undefined Then + Items.FixedOffsetOfAdvances.ChangeRow(); + EndIf; +EndProcedure + +&AtServer +Procedure FillFixedOffsetOfAdvances(DocRef) + If Not ValueIsFilled(DocRef) Then + Return; + EndIf; + + Query = New Query(); + Query.Text = + "SELECT * + |FROM + | InformationRegister.T2018S_FixedOffsetOfAdvances AS T2018S_FixedOffsetOfAdvances + |WHERE + | T2018S_FixedOffsetOfAdvances.Document = &DocRef"; + Query.SetParameter("DocRef", DocRef); + QueryResult = Query.Execute(); + QuerySelection = QueryResult.Select(); + + ThisObject.FixedOffsetOfAdvances.Clear(); + + While QuerySelection.Next() Do + NewRow = ThisObject.FixedOffsetOfAdvances.Add(); + FillPropertyValues(NewRow, QuerySelection); + EndDo; +EndProcedure + &AtServer Procedure OnCreateAtServer(Cancel, StandardProcessing) DocumentsServer.OnCreateAtServer(Object, ThisObject, Cancel, StandardProcessing); diff --git a/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Form.form b/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Form.form index 10a5daaf24..5dd76853be 100644 --- a/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Form.form +++ b/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Form.form @@ -412,6 +412,634 @@ true + + FixedOffsetOfAdvances + 86 + true + true + + true + + + FixedOffsetOfAdvances + + None + + FixedOffsetOfAdvancesIsFixed + 126 + true + true + + true + + + FixedOffsetOfAdvances.IsFixed + + None + + FixedOffsetOfAdvancesIsFixedExtendedTooltip + 128 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesIsFixedContextMenu + 127 + true + + CheckBoxField + Enter + true + Left + true + + + + FixedOffsetOfAdvancesCompany + 99 + true + true + + true + + + FixedOffsetOfAdvances.Company + + + FixedOffsetOfAdvancesCompanyExtendedTooltip + 101 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesCompanyContextMenu + 100 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesBranch + 102 + true + true + + true + + + FixedOffsetOfAdvances.Branch + + + FixedOffsetOfAdvancesBranchExtendedTooltip + 104 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesBranchContextMenu + 103 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesCurrency + 105 + true + true + + true + + + FixedOffsetOfAdvances.Currency + + + FixedOffsetOfAdvancesCurrencyExtendedTooltip + 107 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesCurrencyContextMenu + 106 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesPartner + 108 + true + true + + true + + + FixedOffsetOfAdvances.Partner + + + FixedOffsetOfAdvancesPartnerExtendedTooltip + 110 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesPartnerContextMenu + 109 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesLegalName + 111 + true + true + + true + + + FixedOffsetOfAdvances.LegalName + + + FixedOffsetOfAdvancesLegalNameExtendedTooltip + 113 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesLegalNameContextMenu + 112 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesAgreement + 114 + true + true + + true + + + FixedOffsetOfAdvances.Agreement + + + FixedOffsetOfAdvancesAgreementExtendedTooltip + 116 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesAgreementContextMenu + 115 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesOrder + 117 + true + true + + true + + + FixedOffsetOfAdvances.Order + + + FixedOffsetOfAdvancesOrderExtendedTooltip + 119 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesOrderContextMenu + 118 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesProject + 120 + true + true + + true + + + FixedOffsetOfAdvances.Project + + + FixedOffsetOfAdvancesProjectExtendedTooltip + 122 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesProjectContextMenu + 121 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesTransactionDocument + 123 + true + true + + true + + + FixedOffsetOfAdvances.TransactionDocument + + + FixedOffsetOfAdvancesTransactionDocumentExtendedTooltip + 125 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesTransactionDocumentContextMenu + 124 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesDocument + 129 + true + + true + + + FixedOffsetOfAdvances.Document + + + FixedOffsetOfAdvancesDocumentExtendedTooltip + 131 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesDocumentContextMenu + 130 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesAmount + 132 + true + true + + true + + + FixedOffsetOfAdvances.Amount + + + FixedOffsetOfAdvancesAmountExtendedTooltip + 134 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesAmountContextMenu + 133 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + + + + FixedOffsetOfAdvancesCommandBar + 87 + + FixedOffsetOfAdvancesSaveFixedOffset + 135 + true + true + + true + + + FixedOffsetOfAdvancesSaveFixedOffsetExtendedTooltip + 136 + Label + true + true + + Left + + + Form.Command.SaveFixedOffset + Auto + true + true + UserCmds + Auto + + Left + true + + + BeforeAddRow + FixedOffsetOfAdvancesBeforeAddRow + + + FixedOffsetOfAdvancesSearchString + 90 + + FixedOffsetOfAdvancesSearchStringExtendedTooltip + 92 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesSearchStringContextMenu + 91 + true + + FixedOffsetOfAdvances + + true + + + + FixedOffsetOfAdvancesViewStatus + 96 + + FixedOffsetOfAdvancesViewStatusExtendedTooltip + 98 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesViewStatusContextMenu + 97 + true + + ViewStatusAddition + FixedOffsetOfAdvances + + true + + + + FixedOffsetOfAdvancesSearchControl + 93 + + FixedOffsetOfAdvancesSearchControlExtendedTooltip + 95 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesSearchControlContextMenu + 94 + true + + SearchControlAddition + FixedOffsetOfAdvances + + true + + + + FixedOffsetOfAdvancesExtendedTooltip + 89 + Label + true + true + + Left + + + + FixedOffsetOfAdvancesContextMenu + 88 + true + + true + true + true + true + true + MultiRow +
true
+ 1 + 1 + AutoUse + AutoUse + true + true + Auto + Auto + true + true + true + true + AsFileRef + +
FormCommandBar -1 @@ -449,6 +1077,236 @@
true
true + + FixedOffsetOfAdvances + + <key>en</key> + <value>Fixed offset of advances</value> + + 2 + + ValueTable + + + true + + + true + + + Company + + <key>en</key> + <value>Company</value> + + 3 + + CatalogRef.Companies + + + true + + + true + + + + Branch + + <key>en</key> + <value>Branch</value> + + 4 + + CatalogRef.BusinessUnits + + + true + + + true + + + + Currency + + <key>en</key> + <value>Currency</value> + + 5 + + CatalogRef.Currencies + + + true + + + true + + + + Partner + + <key>en</key> + <value>Partner</value> + + 6 + + CatalogRef.Partners + + + true + + + true + + + + LegalName + + <key>en</key> + <value>Legal name</value> + + 7 + + CatalogRef.Companies + + + true + + + true + + + + Agreement + + <key>en</key> + <value>Agreement</value> + + 8 + + CatalogRef.Agreements + + + true + + + true + + + + Order + + <key>en</key> + <value>Order</value> + + 9 + + DocumentRef.PurchaseOrder + + + true + + + true + + + + Project + + <key>en</key> + <value>Project</value> + + 10 + + CatalogRef.Projects + + + true + + + true + + + + TransactionDocument + + <key>en</key> + <value>Transaction document</value> + + 11 + + DocumentRef.SalesReportFromTradeAgent + DocumentRef.CashTransferOrder + DocumentRef.PurchaseInvoice + DocumentRef.DebitNote + DocumentRef.CreditNote + DocumentRef.PurchaseReturn + DocumentRef.OpeningEntry + DocumentRef.SalesReturn + DocumentRef.SalesReportToConsignor + DocumentRef.SalesInvoice + + + true + + + true + + + + IsFixed + + <key>en</key> + <value>Is fixed</value> + + 12 + + Boolean + + + true + + + true + + + + Document + + <key>en</key> + <value>Document</value> + + 13 + + DocumentRef.VendorsAdvancesClosing + + + true + + + true + + + + Amount + + <key>en</key> + <value>Amount</value> + + 14 + + DefinedType.typeAmount + + + true + + + true + + + SetNewNumber @@ -475,11 +1333,40 @@ <representation>Picture</representation> <currentRowUse>Auto</currentRowUse> </formCommands> + <formCommands> + <name>SaveFixedOffset</name> + <title> + <key>en</key> + <value>Save fixed offset</value> + + 2 + + true + + + StdPicture.SaveFile + + + + SaveFixedOffset + + + TextPicture + Auto + + + OnReadAtServer + OnReadAtServer + + + AfterWriteAtServer + AfterWriteAtServer + true
diff --git a/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Module.bsl b/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Module.bsl index e2e77c9780..3c9f1bac5b 100644 --- a/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Module.bsl +++ b/IRP/src/Documents/VendorsAdvancesClosing/Forms/DocumentForm/Module.bsl @@ -1,4 +1,86 @@ +&AtServer +Procedure OnReadAtServer(CurrentObject) + FillFixedOffsetOfAdvances(CurrentObject.Ref); +EndProcedure + +&AtServer +Procedure AfterWriteAtServer(CurrentObject, WriteParameters) + FillFixedOffsetOfAdvances(CurrentObject.Ref); +EndProcedure + +&AtClient +Procedure SaveFixedOffset(Command) + SaveFixedOffsetAtServer(); +EndProcedure + +&AtServer +Procedure SaveFixedOffsetAtServer() + RecordSet = InformationRegisters.T2018S_FixedOffsetOfAdvances.CreateRecordSet(); + RecordSet.Filter.Document.Set(Object.Ref); + For Each Row In ThisObject.FixedOffsetOfAdvances Do + FillPropertyValues(RecordSet.Add(), Row); + EndDo; + RecordSet.Write(); +EndProcedure + +&AtClient +Procedure FixedOffsetOfAdvancesBeforeAddRow(Item, Cancel, Clone, Parent, IsFolder, Parameter) + Cancel = True; + + If Not ValueIsFilled(Object.Ref) Then + Callback = New CallbackDescription("WriteBeforAddNewRow", ThisObject); + ShowQueryBox(Callback, R().QuestionToUser_001, QuestionDialogMode.YesNo); + Else + FixedOffsetOfAdvancesAddRow(); + EndIf; +EndProcedure + +&AtClient +Procedure WriteBeforAddNewRow(Result, Params) Export + If Result = DialogReturnCode.Yes And Write() Then + FixedOffsetOfAdvancesAddRow(); + EndIf; +EndProcedure + +&AtClient +Procedure FixedOffsetOfAdvancesAddRow() + NewRow = ThisObject.FixedOffsetOfAdvances.Add(); + NewRow.Document = Object.Ref; + NewRow.Company = Object.Company; + NewRow.Branch = Object.Branch; + NewRow.IsFixed = True; + Items.FixedOffsetOfAdvances.CurrentRow = NewRow.GetID(); + If Items.FixedOffsetOfAdvances.CurrentRow <> Undefined Then + Items.FixedOffsetOfAdvances.ChangeRow(); + EndIf; +EndProcedure + +&AtServer +Procedure FillFixedOffsetOfAdvances(DocRef) + If Not ValueIsFilled(DocRef) Then + Return; + EndIf; + + Query = New Query(); + Query.Text = + "SELECT * + |FROM + | InformationRegister.T2018S_FixedOffsetOfAdvances AS T2018S_FixedOffsetOfAdvances + |WHERE + | T2018S_FixedOffsetOfAdvances.Document = &DocRef"; + Query.SetParameter("DocRef", DocRef); + QueryResult = Query.Execute(); + QuerySelection = QueryResult.Select(); + + ThisObject.FixedOffsetOfAdvances.Clear(); + + While QuerySelection.Next() Do + NewRow = ThisObject.FixedOffsetOfAdvances.Add(); + FillPropertyValues(NewRow, QuerySelection); + EndDo; +EndProcedure + &AtServer Procedure OnCreateAtServer(Cancel, StandardProcessing) DocumentsServer.OnCreateAtServer(Object, ThisObject, Cancel, StandardProcessing);