Query.LinearLevelPos
| LinearLevelPos (Текущий уровень группировки) | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Атрибут получает или устанавливает текущий уровень группировки при прохождении строк таблицы запроса в режиме линейного запроса. Нижний уровень группировки соответствует значению 1, верхний -- общему количеству группировок в запросе. Запрос должен быть выполненным. Так как линейный запрос не содержит столбца @LEVEL и отдельных строк для каждой группировок запроса, что экономит память, номер текущей группировки при обходе такого запроса хранится в виде переменной внутри объекта запроса. Этот атрибут позволяет получить доступ к этой переменной. Атрибут удобно использовать для указания на уровень линейного запроса после выполнения позиционирования в таблице запроса.
Синтаксис
Query.LinearLevelPos:<Текущий уровень группировки линейного запроса (INT)>
Возвращаемое значение
Возвращает числовое значение, текущий уровень обхода линейного запроса.
Примеры
//З -- основной запрос, данный для примера, производится по какому-либо накопителю
//З2 -- второй запрос по накопителю Взаиморасчеты в линейном режиме, синхронизация между запросами производится по полям зКонтрагент и зДоговор.
While З.Next(1) Do
While З.Next(2) Do
...
//Получим значения сальдо по накопителю Взаиморасчеты для всех адресов из запроса З2 для текущих группировок запроса З.зКонтрагент и З.зДоговор
З2.First();
If З2.ResultTable.LocateAndGoto("зКонтрагент,зДоговор",З.зКонтрагент,З.зДоговор)=0 Then
Continue;
EndIf;
Message("Контрагент: "+З.зКонтрагент+", договор: "+З.зДоговор);
//Установим текущий уровень группировки, чтобы продолжить обход
З2.LinearLevelPos:=3;
While З2.Next(3) Do
//Выведем на экран значения сальдо для каждого из адресов
Message(" Адрес: "+З2.зАдрес+", сальдо: "+З2.EndTotals("зСальдо"));
EndDo;
EndDo;
EndDo;