Fill value tree from selection

The 1C:Enterprise developers forum

#1
People who like this:0Yes/0No
Active user
Rating: 2
Joined: Jul 18, 2012
Company: Bristol IT Solutions, LLC

I need to make a selection from Company structure catalog and fill a value tree on the form with data. I made a query, but it produces a flat list. While I need a tree. How can I output a hierarchy?

 
#2
People who like this:1Yes/0No
Active user
Rating: 7
Joined: Sep 26, 2012
Company: individual

There is method Unload of QueryResult.
Query have to contain TOTALS

Code
Syntax:

Unload(<TabOrderType>) 
Parameters:

<TabOrderType> (optional)

Type: QueryResultIteration. 
Specifies the record tab order type for the selection.
Default value: Linear 
Returned value:

Type: ValueTable; ValueTree. 
If the tab type is Linear, the result is uploaded to the values table,
otherwise it is uploaded to the values tree.

Edited: ivan avdonin - Apr 01, 2013 03:52 PM
 
#3
People who like this:0Yes/0No
Active user
Rating: 2
Joined: Jul 18, 2012
Company: Bristol IT Solutions, LLC

Could you please help me with my query, I cant get how to use Totals here:

Code
   Query = New Query;
   Query.Text = 
      "SELECT
      |   Departments.Ref AS Department,
      |   Employees.Description AS HeadFullName
      |FROM
      |   InformationRegister.DepartmentHeads.SliceLast(&Period, ) AS DepartmentHeadsSliceLast
      |      LEFT JOIN Catalog.Departments AS Departments
      |      ON DepartmentHeadsSliceLast.Department = Departments.Ref
      |      LEFT JOIN Catalog.Employees AS Employees
      |      ON DepartmentHeadsSliceLast.Head = Employees.Ref";

   Query.SetParameter("Period", Period);

   QueryResult = Query.Execute();

   SelectionDetailRecords = QueryResult.Choose();

   While SelectionDetailRecords.Next() Do
      // Insert selection processing SelectionDetailRecords
   EndDo;

 
#4
People who like this:0Yes/0No
Active user
Rating: 6
Joined: Sep 16, 2011
Company:

Try this:

Code
Query = New Query;
   Query.Text =
      "SELECT
      |   Departments.Ref AS Department,
      |   Employees.Description AS HeadFullName
      |FROM
      |   Catalog.Departments AS Departments
      |      LEFT JOIN InformationRegister.DepartmentHeads.SliceLast(&Period, ) AS DepartmentHeadsSliceLast
      |      ON DepartmentHeadsSliceLast.Department = Departments.Ref
      |      LEFT JOIN Catalog.Employees AS Employees
      |      ON DepartmentHeadsSliceLast.Head = Employees.Ref
      |
      |ORDER BY
      |   Departments.Ref HIERARCHY";

   Query.SetParameter("Period", CurrentDate());

   QueryResult = Query.Execute();

   YourTreeObject = FormAttributeToValue("YourTree");
   YourTreeObject = QueryResult.Unload(QueryResultIteration.ByGroupsWithHierarchy);
   ValueToFormAttribute(YourTreeObject, "YourTree");­

By the way, I changed joins order: the Departmens catalog should go first: when there is no head of department yet, this department will not be displayed.

 
Subscribe
Users browsing this topic (guests: 1, registered: 0, hidden: 0)
Be the first to know tips & tricks on business application development!

A confirmation e-mail has been sent to the e-mail address you provided .

Click the link in the e-mail to confirm and activate the subscription.