Описание встроенного языка системы 1С Предприятие

Группировка


Получить следующее значение выборки запроса на заданном уровне группировки.

Синтаксис:

Группировка(<Группировка>, <Направление>)

Англоязычный синоним:

Group

Параметры:



<Группировка>

Выражение, содержащее порядковый номер или имя группировки.

<Направление>

Необязательный параметр. Числовое выражение:

1 — выборка значений группировки по возрастанию;

-1 (минус единица) — выборка значений группи­ровки по убыванию.

Значение по умолчанию: 1.

Возвращаемое значение:

Число: 1 — если получено следующее значение выборки запроса, 0 — если нет.

Описание:

Метод Группировка служит для организации цикла получения данных из выборки, сформированной в результате работы метода Выполнить. Метод Группировка позиционирует в выборке очередную строку в порядке, опреде­ленном параметром <Группировка>. Нельзя использовать метод Группировка, задавая в качестве параметра младшие группировки, не ис­пользовав предварительно этот метод для позиционирования по старшим груп­пировкам. Старшинство группировок определяется порядком их следования в тексте запроса.

Замечание: Обход группировок по многоуровневым справочникам в порядке убывания не выполняется.

Пример:

Процедура Сформировать()

   Перем Запрос, ТекстЗапроса;

   Если (Число(ДатаНач) = 0) ИЛИ (Число(ДатаКон) = 0) Тогда

      Предупреждение("Не задан период!");

      Возврат;

   КонецЕсли;

   //Создание объекта типа "Запрос" Запрос = СоздатьОбъект("Запрос");

   ТекстЗапроса =

   "//{{ЗАПРОС(Сформировать)

   |с ДатаНач по ДатаКон;

   |Рез = ЖурналРасчетов.Зарплата.Результат;

   |Сотр = ЖурналРасчетов.Зарплата.Объект;

   |Группировка Сотр без групп;

   |Группировка ПериодЖурнала;

   |Функция Сум = Сумма(Рез);

   |"//}}ЗАПРОС

   ;

   Если Сотрудник.Выбран() = 1 Тогда

      ТекстЗапроса = ТекстЗапроса + "Условие(Сотр = Сотрудник);";

   КонецЕсли;

   // Если ошибка в запросе, то выход из процедуры

   Если Запрос.Выполнить(ТекстЗапр) = 0 Тогда

      Возврат;

   КонецЕсли;

   // Подготовка к заполнению выходных форм данными запроса

   Таб = СоздатьОбъект("Таблица");

   // сначала используем группировку по сотрудникам

   // а потом группировку по периоду журнала!!!

   Пока Запрос.Группировка("Сотр") = 1 Цикл

      // Заполнение полей Сотр

      Таб.ВывестиСекцию("Сотр<");

      Пока Запрос.Группировка("ПериодЖурнала") = 1 Цикл

         // Заполнение полей ПериодЖурнала

         Таб.ВывестиСекцию("Мес");

      КонецЦикла;

      Таб.ВывестиСекцию("Сотр>");

   КонецЦикла;

   // Вывод заполненной формы

   // Заполнение полей "Итого"

   Таб.Опции(0, 0, 0, 0);

   Таб.ТолькоПросмотр(1);

   Таб.Показать("Результат", );

КонецПроцедуры



Содержание раздела