Hi,
In ExchangePlansManager there is the method WriteChanges and even if "TransactionElements" parameter is setted platform automatically can control there data locking event to avoid conflicts between sessions on while data locks.
But how I know this method is user when the nodes are "Distributed".
I have central base and several mini sub bases. Sub bases are not Distributed infobases. I wonder is there possibility to control the TransactionElements manually?
Becuase how I know exchange data for that node is renewed on "EndWrite()" method.
For example data exchange writing coded as:
Code |
---|
Function VAPaketiOluştur(ExChangeNode,XMLDocument=Undefined) Export SetPrivilegedMode(True); RuleMap = GetExchangeRuleMapStructure(ExChangeNode); If XMLDocument = Undefined Then XMLDocument = New XMLWriter; EndIf; XMLDocument.SetString("UTF-8"); XMLDocument.WriteXMLDeclaration(); MessageRecord = ExchangePlans.CreateMessageWriter(); MessageRecord.BeginWrite(XMLDocument, ExChangeNode); XMLDocument.WriteNamespaceMapping("xsi", "http://www.w3.org/2001/XMLSchema-instance"); XMLDocument.WriteNamespaceMapping("v8", "http://v8.1c.ru/data"); XMLDocument.WriteNamespaceMapping("v8c", "http://v8.1c.ru/8.1/data/core"); XMLDocument.WriteNamespaceMapping("v8i", "http://v8.1c.ru/8.1/data/enterprise/current-config"); DeğişiklikSelection = ExchangePlans.SelectChanges(ExChangeNode, MessageRecord.MessageNo); While DeğişiklikSelection.Next() Do DataObject = DeğişiklikSelection.Get(); WriteDataToXML(DataObject, ExChangeNode, RuleMap); EndDo; MessageRecord.EndWrite(); XML_AS_String = XMLDocument.Close(); ExchangeStructure = New Structure; ExchangeStructure.Insert("DataSchema",XML_AS_String); NewValue = New ValueStorage(ExchangeStructure, New Deflation(9)); SetPrivilegedMode(False); Return NewValue; EndFunction |