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: 2, 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.

/* --- ФИКС ЗАГОЛОВКОВ ДОКУМЕНТАЦИИ (BRUTE FORCE) --- */ /* Цепляемся за все возможные контейнеры Битрикса */ .content h1, #content h1, .workarea h1, .content h2, #content h2, .workarea h2, .content h3, #content h3, .workarea h3, .content h4, #content h4, .workarea h4, .content h5, #content h5, .workarea h5, .content h6, #content h6, .workarea h6 { display: block !important; font-weight: 700 !important; color: #222 !important; text-transform: none !important; margin-top: 1.5em !important; margin-bottom: 0.5em !important; line-height: 1.2 !important; } /* Явно задаем размеры, чтобы перекрыть "font-size: 100%" */ .content h1, #content h1 { font-size: 28px !important; } .content h2, #content h2 { font-size: 24px !important; } .content h3, #content h3 { font-size: 22px !important; } .content h4, #content h4 { font-size: 20px !important; } .content h5, #content h5 { font-size: 18px !important; } /* Ваш случай (5 решеток) */ .content h6, #content h6 { font-size: 16px !important; } /* Если Битрикс или редактор засунули внутрь h5 тег span или font */ .content h5 *, #content h5 *, .workarea h5 * { font-size: inherit !important; color: inherit !important; font-weight: inherit !important; } /* --- СТИЛИЗАЦИЯ ТЕКСТА (Markdown Style) --- */ /* Ссылки в тексте делаем более заметными */ .content a:not([class]) { color: #005aa0; text-decoration: none; border-bottom: 1px solid rgba(0, 90, 160, 0.2); } .content a:not([class]):hover { border-bottom-color: #005aa0; } /* Списки (чтобы не прилипали) */ .content ul, .content ol { margin-bottom: 15px !important; padding-left: 20px !important; } .content li { margin-bottom: 5px !important; }