Difference between revisions of "Query.LinearLevelPos"
m (1 revision imported) |
|||
| (2 intermediate revisions by 2 users not shown) | |||
| Line 39: | Line 39: | ||
EndIf; | EndIf; | ||
Message("Контрагент: "+З.зКонтрагент+", договор: "+З.зДоговор); | Message("Контрагент: "+З.зКонтрагент+", договор: "+З.зДоговор); | ||
| − | //Установим текущий уровень группировки, чтобы продолжить обход | + | //Установим текущий уровень группировки, чтобы продолжить обход следующего уровня |
| − | З2.LinearLevelPos:= | + | З2.LinearLevelPos:=2; |
While З2.Next(3) Do | While З2.Next(3) Do | ||
//Выведем на экран значения сальдо для каждого из адресов | //Выведем на экран значения сальдо для каждого из адресов | ||
Latest revision as of 09:26, 4 April 2022
| 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:=2;
While З2.Next(3) Do
//Выведем на экран значения сальдо для каждого из адресов
Message(" Адрес: "+З2.зАдрес+", сальдо: "+З2.EndTotals("зСальдо"));
EndDo;
EndDo;
EndDo;