The 1C:Enterprise developers forum

#1
People who like this: 0 Yes / 0 No
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: 1 Yes / 0 No
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: 0 Yes / 0 No
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: 0 Yes / 0 No
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.

/* Улучшаем читаемость списков в документации */ .workarea ul, .content ul { margin: 15px 0 20px 25px !important; padding: 0 !important; list-style-type: disc !important; } .workarea li, .content li { margin-bottom: 8px !important; padding-left: 5px !important; line-height: 1.6 !important; } /* Ультимативный фикс для всех уровней заголовков в контенте */ .workarea h1, .workarea h2, .workarea h3, .workarea h4, .workarea h5, .workarea h6, .content h1, .content h2, .content h3, .content h4, .content h5, .content h6, div[id*="content"] h5, div[class*="content"] h5 { display: block !important; font-weight: 700 !important; color: #005aa0 !important; /* Наш фирменный синий */ text-transform: none !important; margin-top: 30px !important; margin-bottom: 15px !important; line-height: 1.2 !important; font-family: Arial, sans-serif !important; } /* Принудительные размеры в пикселях (чтобы не зависеть от % или em) */ .workarea h1, .content h1 { font-size: 28px !important; } .workarea h2, .content h2 { font-size: 24px !important; } .workarea h3, .content h3 { font-size: 21px !important; } .workarea h4, .content h4 { font-size: 19px !important; } .workarea h5, .content h5 { font-size: 18px !important; } /* Для 5 решеток ##### */ .workarea h6, .content h6 { font-size: 16px !important; } /* Фикс, если Битрикс добавил лишние отступы перед списками после заголовка */ .workarea h5 + ul, .content h5 + ul { margin-top: 5px !important; }