Как узнать уровень группировки 1с в запросе

от admin

Можно ли узнать уровень группировки в запросе?

Имеем иерархический справочник. Иерархия элементов. Как одним запросом получить таблицу, где в первой колонке будут элементы первого уровня, во второй — второго и т.д.? Может какие-то методы есть в языке запросов чтобы определить уровень группировки?

Администрация| | |
Администрация|Фин.отдел| |
Администрация|Фин.отдел|Бухгалтерия|

Выбрать
Спр.Ссылка,
СУММА(1) КАК УровеньИерархии
Из Справочник.Номенклатура КАК Спр
Где
Спр.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
Спр.Ссылка
ИТОГИ ПО Ссылка ТОЛЬКО ИЕРАРХИЯ

не поверю, что это Вам нужно для

запросом выбирать непределенное колво колонок — мерзкая ересь
кроме * для отладки.

Как узнать уровень группировки 1с в запросе

Основные приемы работы с запросами во встроенном языке 1С:Предприятия удобнее всего рассматривать на примерах. Приведем типичный пример использования запроса:

// Выполним запрос и запишем результат в переменную РезультатЗапроса.
РезультатЗапроса = Запрос . Выполнить ( ) ;

// Получим выборку из результата запроса.
Выборка = РезультатЗапроса . Выбрать ( ) ;

Как видно из этого примера, работа с запросом ведется при помощи трех основных объектов:

  • Запрос – объект, выполняющий сам запрос. Представлен в примере переменной с именем Запрос.
  • РезультатЗапроса – объект, содержащий полученные при выполнении запроса данные. Представлен в примере переменной с именем РезультатЗапроса. – объект, позволяющий обходить (т.е. перебрать) записи из результата. Представлен в примере переменной с именем Выборка.

Рассмотрим подробнее объект ВыборкаИзРезультатаЗапроса. Для этого нам понадобится следующий текст запроса:

ВЫБРАТЬ
Товар, Количество
ИЗ
Документ.РасхНакл.Состав
УПОРЯДОЧИТЬ ПО Товар
ИТОГИ Сумма(Количество) ПО Товар Иерархия

Его результат представлен в таблице:

N

Товар

Количество

1

Сантехника

104

11

Мебель

134

В эту таблицу добавлена колонка «N», которой нет в результате запроса, но которая будет использоваться нами в дальнейшем для идентификации записи в результате. Итоговые записи в таблице выделены курсивом, итоговые записи для иерархических уровней справочника выделены жирным шрифтом.

Способы обхода результата запроса
Линейный обход результата

Первый, и самый простой способ обхода – линейный. При линейном обходе выборка будет выдавать записи в той последовательности, в которой они располагаются в результате запроса. В нашем примере это будут записи с номерами 1, 2, 3, 4, 5 и так далее до записи с номером 20.

Для получения линейной выборки из результата необходимо вызвать метод Выбрать объекта РезультатЗапроса без параметров, либо с параметром ОбходРезультатаЗапроса.Прямой.

Пример:

СпособВыборки = ОбходРезультатаЗапроса . Прямой ;
Выборка1 = РезультатЗапроса . Выбрать ( СпособВыборки ) ;
// что равнозначно записи
Выборка1 = РезультатЗапроса . Выбрать ( ) ;
Иерархический обход результата

Следующий способ обхода результата – иерархический. При данном обходе обходятся только записи, находящиеся на одном уровне. Для получения иерархической выборки из результата необходимо вызвать метод Выбрать() объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкамСИерархией.

Пример:

СпособВыборки = ОбходРезультатаЗапроса . ПоГруппировкамСИерархией ;
Выборка2 = РезультатЗапроса . Выбрать ( СпособВыборки ) ;

Выборка из результата с иерархическим обходом в нашем примере обойдет только записи с номерами 1 и 11, так как только эти две записи находятся на самом верхнем уровне. Проиллюстрируем это, представив наш результат в виде дерева, где узлами будут итоговые записи, а листьями дерева будут детальные записи. Вот что у нас получится:

Из этого рисунка видно, что именно записи с номерами 1 и 11, и только они находятся на первом уровне дерева, в результате чего только они и попадают в первый проход иерархической выборки.

Возникает вопрос, как получать остальные записи результата запроса. Для этого у объекта ВыборкаИзРезультатаЗапроса можно получить еще одну выборку, которая будет обходить подчиненные записи текущей записи выборки. В нашем примере в момент, когда объект Выборка2 будет позиционирован на запись с номером 1, мы запросим у него иерархическую выборку. Таким образом, мы получим выборку, которая нам вернет записи с номерами 2, 7. А когда Выборка2 будет спозиционирована на записи с номером 11, то полученная у нее иерархическая выборка вернет записи с номерами 12, 16. Так реализуется иерархический обход результатов запроса. Заметим, что у выборки можно получать вложенные выборки любого типа. Так, если бы мы запросили у Выборки2, спозиционированной на записи 1, линейную выборку, то с ее помощью мы бы получили записи с номерами записей со 2-го по 10-й. Проиллюстрируем описанную методику на примере.

Пример:

// Установим текст запроса
Запрос . Текст = «ВЫБРАТЬ
|Товар, Количество
|ИЗ
|Документ.РасхНакл.Состав
|УПОРЯДОЧИТЬ ПО Товар
|ИТОГИ Сумма(Количество) ПО Товар, Товар Иерархия» ;

// Выполним запрос и запишем результат в переменную
// РезультатЗапроса.
РезультатЗапроса = Запрос . Выполнить ( ) ;

// Получим выборку из результата запроса.
СпособВыборки = ОбходРезультатаЗапроса . ПоГруппировкамСИерархией ;
Выборка = РезультатЗапроса . Выбрать ( СпособВыборки ) ;

Процедура ВыдатьРекурсивно ( Выборка )
// Пока в выборке есть записи .
Пока Выборка . Следующий ( ) Цикл
// . выведем в окно сообщений поля из результата
Товар = Выборка . Наименование ;
Количество = Выборка . Количество ;
Сообщить ( «Товар: » + Товар + » Количество: » + Количество ) ;

Обход результата по группам

Третий, и последний способ обхода результата – по группам. Он сходен с иерархическим обходом, но с одним различием: записи с иерархическими итогами при обходе в нем рассматриваются как детальные записи, а не как узловые. Для получения выборки по группам из результата запроса необходимо вызвать метод Выбрать объекта РезультатЗапроса с параметром ОбходРезультатаЗапроса.ПоГруппировкам.

Пример:

СпособВыборки = ОбходРезультатаЗапроса . ПоГруппировкам ;
Выборка2 = РезультатЗапроса . Выбрать ( СпособВыборки ) ;

Перебрав в ней всё, мы получим записи с номерами 1, 2, 7, 11, 12, 16.

Пример:

// Установим текст запроса
Запрос . Текст = «ВЫБРАТЬ
|Товар, Количество
|ИЗ
|Документ.РасхНакл.Состав
|УПОРЯДОЧИТЬ ПО Товар
|ИТОГИ Сумма(Количество) ПО Товар, Товар Иерархия»;

// Выполним запрос и запишем результат в переменную
// РезультатЗапроса.
РезультатЗапроса = Запрос . Выполнить ( ) ;

// Получим выборку из результата запроса
СпособВыборки = ОбходРезультатаЗапроса . ПоГруппировкам ;
Выборка = РезультатЗапроса . Выбрать ( СпособВыборки ) ;

// Пока в выборке есть записи .
Пока Выборка . Следующий ( ) Цикл
// . выведем в окно сообщений поля из результата
Товар = Выборка . Наименование ;
Количество = Выборка . Количество ;
Сообщить ( «Товар: » + Товар + » Итого по товару: » + Количество ) ;

ВыдатьДочерниеЗаписи ( Выборка . Выбрать ( ) ) ;

Работа с выборкой

Объект ВыборкаИзРезультатаЗапроса предназначен для обхода записей результата запроса. Можно представить себе выборку как некоторый объект, который содержит указатель на текущую запись в результате и предоставляет программе доступ ко всем полям текущей записи. Для навигации по записям запроса используются три метода:

    – перейти к следующей записи результата в соответствии с порядком обхода выборки. При первом вызове позиционирует выборку на первую запись. Когда будут выбраны все записи, данный метод просигнализирует об этом, вернув значение Ложь. – получить следующую запись со значением в заданном поле, отличающимся от значения в этом поле текущей записи. – найти запись, с заданными значениями некоторых полей.
Использование метода СледующийПоЗначениюПоля

Метод позволяет сгруппировать записи результата по значениям полей.

Пример запроса:

ВЫБРАТЬ
Док.Товар, Док.Получатель, Док.Количество
ИЗ
Документ.РасхНакл.Состав Док
УПОРЯДОЧИТЬ ПО Док.Товар.Наименование, Док.Получатель.Наименование

Конструктор запросов 1С — обучение на примерах

Задача: Получить суммы поступлений за текущий год с разбивкой по месяцам. Для получения данных использовать проведенные документы Поступление товаров и услуг.

Новые вкладки: Группировка

Теоретическая часть урока №5
  • Группировочные. Строки, в которых набор этих полей принимает одинаковые значения, сворачиваются одну строку;
  • Группируемые. Для свернутых строк значения этих полей рассчитываются при помощи агрегатных функций:
    • Сумма. Значения поля суммируется по всем сгруппированным строкам;
    • Среднее. Рассчитывается среднее значение поля среди сгруппированных строк;
    • Максимум. Вычисляется максимальное значение поля среди сгруппированных строк;
    • Минимум. Вычисляется минимальное значение поля среди сгруппированных строк;
    • Количество. Вычисляется количество сгруппированных строк, вне зависимости от того к какому полю применяется данная агрегатная функция;
    • Количество различных. Вычисляется количество различных значений данного поля по всем сгруппированным строкам.

    Пример 1. Пусть у нас есть таблица с двумя полями: Фрукт и Количество. Сгруппировать строки с одинаковыми фруктами и посчитать общее количество по каждому фрукту.

    По условиям примера поле Фрукт — группировочное, а поле Количество — группируемое при помощи агрегатной функции Сумма.

    После группировки наша таблица будет выглядеть так:

    Пример 2. На складе фрукты хранятся в ящиках, коробках и т.п. Так как фрукты приходили разными партиями, цена на них может различаться. Посчитать максимальные цены фруктов для каждого вида тары.

    Таким образом у нас есть таблица с тремя полями Фрукт, Тара, Цена. Необходимо сгруппировать строки по полям Фрукт и Тара, а по полю Цена посчитать Максимум.

    В данном примере у нас два группировочных поля и одно группируемое. После группировки наша таблица будет выглядеть так:

    Теперь посмотрим, как реализован механизм группировки в конструкторе запросов 1с. В конструкторе перейдем на вкладку Группировка, она состоит из трех разделов:

    Группировка в конструкторе запросов 1с

    • Поля (красная рамка). В данном разделе представлены все поля доступные для группировки. Это поля таблиц выбранных на вкладке Таблицы и поля. Их необходимо распределить между следующими двумя разделами;
    • Группировочные поля (зеленая рамка). В данный раздел необходимо перетащить (мышью или при помощи кнопок) поля по которым будет производиться группировка;
    • Группируемые поля (синяя рамка). В данный раздел необходимо перетащить (мышью или при помощи кнопок) поля, значения которых будут рассчитываться при помощи агрегатных функций. Данный раздел представляет из себя таблицу, в первой колонке которой находится группируемое поле, а во второй выбирается из списка агрегатная функция.

    Следует заметить, что если вы используете группировку в запросе, то вам необходимо распределить все выбранные в запрос поля между разделами группировочных и группируемых. Если вы этого не сделаете, то оставшиеся поля автоматически перейдут в раздел группируемых. Исключение составляют только поля созданные вручную и не содержащие полей таблиц (строковые или числовые, например). Их включать в группировку не обязательно, так как их значение одинаково для всех строк выборки.

    Созадние группировки в запросе 1с. Действие 1 Созадние группировки в запросе 1с. Действие 2 Созадние группировки в запросе 1с. Действие 3Созадние группировки в запросе 1с. Действие 4

    Практическая часть урока №5

    Разберем решение задачи, приведенной в начале урока. Напомню условия:

    Задача: Получить суммы поступлений за текущий год с разбивкой по месяцам. Для получения данных использовать проведенные документы Поступление товаров и услуг.

    • Создадим новый запрос;
    • Запустим конструктор запросов;
    • Выберем таблицу ПоступлениеТоваровУслуг из ветки Документы;
    • Из таблицы ПоступлениеТоваровУслуг выберем поля Дата и СуммаДокумента;
    • Выделим поле Дата и нажмем кнопку Изменить текущий элемент, чтобы открыть его в редакторе произвольных выражений;
      Открыть поле в редакторе произвольных выражений
    • В разделе Функции языка запросов найдем ветку Функции работы с датами;
    • Из данной ветки перетащим в раздел выражений функцию Месяц и заменим параметр Дата на выбранное нами поле с датой поступления;
      Создание произвольного выражения в 1с
    • Нажмем кнопку ОК, в нижней части редактора произвольных выражений;
    • Перейдем на вкладку Объединения / Псевдонимы и установим для поля с номером месяца псевдоним Месяц;
    • Перейдем на вкладку Условия;
    • В разделе Поля, раскроем ветку ПоступлениеТоваровУслуг при помощи кнопки «+»;
    • Найдем реквизит Дата и перетащим его в раздел условия, выберем оператор сравнения Между и укажем параметры начала и окончания года, например НачалоГода и КонецГода;
    • Из раздела Поля перетащим реквизит Проведен, поставим в строке с условием флаг Произвольное и сотрем лишнюю часть условия «= &Проведен»;
    • Перейдем на вкладку Группировка;
    • В раздел группировочных полей перетащим поле МЕСЯЦ(ПоступлениеТоваровУслуг.Дата), а в раздел группируемых полейПоступлениеТоваровУслуг.СуммаДокумента. По умолчанию установится агрегатная функция Сумма, в данном случае она нас вполне устраивает;
      Добавление группировки в запрос
    • Написание запроса завершено, нажмем кнопку ОК, чтобы закрыть конструктор запросов;

    1С 8.3 Группировка в запросе — Программист 1С Минск. Автоматизация бизнеса.

    ✔ Группировка исходных данных в запросе

    &НаСервере
    Процедура ГруппировкаИсходныхДанныхВЗапросе ()

    // Группировка элементов справочника Материалы, при помощи функции СУММА,
    // в разрезе срока использования (группировочное поле) по весу (группируемое поле)
    Запрос = Новый Запрос ( «ВЫБРАТЬ
    | СрокИспользования,
    | СУММА(Вес)
    |ИЗ
    | Справочник.Материалы
    |ГДЕ
    | ЭтоГруппа = ЛОЖЬ
    |СГРУППИРОВАТЬ ПО
    | СрокИспользования» );

    РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
    Пока Записи . Следующий () Цикл
    // Обход результата запроса по каждой записи в полученной выборке
    КонецЦикла;

    &НаСервере
    Процедура ГруппировкаИсходныхДанныхВЗапросеБезГруппируемыхПолей ()

    // Наличие группируемых полей не является обязательным в группировке элементов
    // Можно также использовать ВЫБРАТЬ РАЗЛИЧНЫЕ Сроки Использования. Результат будет тот же
    Запрос = Новый Запрос ( «ВЫБРАТЬ
    | СрокИспользования
    |ИЗ
    | Справочник.Материалы
    |ГДЕ
    | ЭтоГруппа = ЛОЖЬ
    |СГРУППИРОВАТЬ ПО
    | СрокИспользования» );

    РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
    Пока Записи . Следующий () Цикл
    // Обход результата запроса по каждой записи в полученной выборке
    КонецЦикла;

    &НаСервере
    Процедура ГруппировкаВЗапросеБезГруппировочныхПолейПоВсейТаблице ()

    // Наличие группируемых полей не является обязательным в группировке элементов
    // Получение средних значений по всем элементам материалов
    Запрос = Новый Запрос ( «ВЫБРАТЬ
    | СРЕДНЕЕ(Вес),
    | СРЕДНЕЕ(Плотность),
    | СРЕДНЕЕ(Фасовка)
    |ИЗ
    | Справочник.Материалы
    |ГДЕ
    | ЭтоГруппа = ЛОЖЬ» );

    РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
    Пока Записи . Следующий () Цикл
    // Обход результата запроса по каждой записи в полученной выборке
    КонецЦикла;

    Запросы 1С:Предприятие 8. Группировка

    Группировки в запросах 1С применяются, когда необходимо свернуть таблицу, получаемую из источника данных по какому-либо столбцу (группировочный столбец) а со значениями другого столбца (группируемый столбец) произвести некие математические или статистические действия, например подсчитать сумму.

    Развернуть группировку после выполнения запроса и узнать, какие строки в нее вошли, после выполнения запроса невозможно (в отличие от применения Итогов).

    При использовании группировок все столбцы в запросе делятся на группируемые и группировочные, не должно оставаться столбца, который не принадлежит ни к одной из категорий. Вместе с тем, группируемых столбцов может не быть, если все столбцы относятся к группировочным, и наоборот, может не быть группировочных столбцов, если все относятся к группируемым.

    Группировочные столбцы обозначаются в особой секции запроса, которая начинается с фразы СГРУППИРОВАТЬ ПО. Группируемые столбцы обозначаются через агрегатные функции в секции ВЫБРАТЬ.

    Существует 6 видов агрегатных функций, применяемых при группировках:

    1. СУММА — суммирует значения группируемого столбца, применяется только для числовых значений.
    2. СРЕДНЕЕ — вычисляет среднее арифметическое из значений группируемого столбца, применяется только для числовых значений.
    3. МАКСИМУМ — может применяться для любых типов значений группируемого столбца, при этом возвращается максимальное значение из всех группируемых. Если значения не числовые, то возвращается последнее при сортировке по возрастанию.
    4. МИНИМУМ — может применяться для любых типов значений группируемого столбца, при этом возвращается минимальное значение из всех группируемых. Если значения не числовые, то возвращается первое при сортировке по возрастанию.
    5. КОЛИЧЕСТВО — возвращает количество значений в группируемом столбце, может использоваться для любых типов значений. В расчет не берутся значения типа NULL.
    6. КОЛИЧЕСТВО РАЗЛИЧНЫЕ — возвращает количество различных значений в группируемом столбце, может использоваться для любых типов значений. В расчет не берутся значения типа NULL.

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

    Об особенностях применения условий отбора в запросах с группировками читайте в статье Запросы 1С:Предприятие 8. Условия отбора.

    Рассмотрим применение группировок в запросах 1С на примерах.

    Источником данных будет таблица покупок товаров Поставки, в которой отражены операции поставки товара (каждая поставка в отдельной строке):

    Группировки в запросах 1СЗадача 1.

    Узнать, какие поставщики поставляли товары.

    Решение: Одним из вариантов решений может быть выбор единственного стобца Поставщик и группировка по нему.

    Группировки в запросах 1С

    Задача 2.

    Узнать общее количество поставленного товара каждого вида.

    Решение: Необходимо выбрать два столбца: товар и количество, сгруппировать полученный результат по полю Товар, применив агрегатную функцию Сумма.

    Группировки в запросах 1С

    Задача 3.

    Определить, сколько в среднем единиц товара поставляет каждый поставщик.

    Решение: Необходимо выбрать два столбца: поставщик и количество, сгруппировать полученный результат по полю Поставщик, применив агрегатную функцию Среднее.

    Группировки в запросах 1С

    Задача 4.

    Подсчитать количество операций по поставке товара.

    Решение: Можно выбрать любой столбец и применить к нему агрегатную функцию Количество.

    Группировка в запросах 1СЗадача 5.

    Подсчитать количество поставщиков нашей организации.

    Решение: Выбрать столбец Поставщик и применить к нему агрегатную функцию Количество Различные.

    Как узнать уровень группировки 1с в запросе

    Войдите как ученик, чтобы получить доступ к материалам школы

    Язык запросов 1С 8.3 для начинающих программистов: группировка

    Автор уроков и преподаватель школы: Владимир Милькин

    Группировка в запросах

    Давайте запросим из таблицы Справочник.Еда следующие реквизиты: Наименование, Цвет и Калорийность:

    01

    Теперь предположим, что нам необходимо вычислить суммарную калорийность продуктов для каждого цвета.

    Алгоритм для жёлтого цвета будет такой:

    1. Находим все строчки у которых в поле Цвет стоит Жёлтый.
    2. Это будут строчки №1, 6, 8 и 9.
    3. Суммируем поле Калорийность для каждой из этих строк: 89 + 31 + 340 + 536
    4. Получаем, что для жёлтого цвета суммарная калорийность равна 996.

    И так для каждого цвета.

    Описанный выше процесс называется группировкой . Таким образом, группировка — это «схлопывание» (свёртка) строчек таблицы по определенному признаку.

    При группировке все поля делятся на две группы:

    • Группировочные — это как раз те поля, по которым идёт свёртка. В нашем случае таким полем является Цвет.
    • Группируемые — это те поля, которые сворачиваются (схлопываются, объединяются). В нашем случае таким полем является Калорийность.

    01

    Группируемые поля не могут быть сами по себе. К ним обязательно применяется одна из агрегатных функций: СУММА, СРЕДНЕЕ, МИНИМУМ, МАКСИМУМ, КОЛИЧЕСТВО, КОЛИЧЕСТВО РАЗЛИЧНЫЕ:

    02

    Агрегатная функция СУММА

    Это как раз случай, который мы разбирали. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Все строки группируются по группировочным полям (Цвет), а группируемые поля (Калорийность) суммируются:

    сумма

    Агрегатная функция СРЕДНЕЕ

    В этом случае все строки группируются по группировочным полям (Цвет), а среди группируемых полей (Калорийность) находится среднее значение:

    среднее

    Агрегатная функция МИНИМУМ

    В этом случае все строки группируются по группировочным полям (Цвет), а среди группируемых полей (Калорийность) находится минимальное значение:

    минимум

    Агрегатная функция МАКСИМУМ

    В этом случае все строки группируются по группировочным полям (Цвет), а среди группируемых полей (Калорийность) находится максимальное значение:

    максимум

    Агрегатная функция КОЛИЧЕСТВО

    В этом случае все строки группируются по группировочным полям (Цвет), а среди группируемых полей (Калорийность) находится их количество :

    количество

    Агрегатная функция КОЛИЧЕСТВО РАЗЛИЧНЫЕ

    В этом случае все строки группируются по группировочным полям (Цвет), а среди группируемых полей (Калорийность) находится количество элементов с различными значениями:

    количество различные

    Функция КОЛИЧЕСТВО РАЗЛИЧНЫЕ требует пояснения, потому что на выбранном примере её результат совпадает с функцией КОЛИЧЕСТВО. Вы читаете ознакомительную версию урока, полноценные уроки находятся здесь. Вот более показательный пример, который всё объясняет:

    03

    Группировка без группируемых полей и агрегатных функций

    Использование агрегатных функций в запросе не требуется, если результатом запроса будут только группировочные поля:

    06

    К примеру, сделаем выборку всех вкусов, которые встречаются среди еды:

    07

    Как видите вкусы повторяются — давайте их сгруппируем:

    08

    Таким образом, мы сделали группировку только по группировочным полям (Вкус). Группируемые поля, а следовательно и агрегатные функции нам не понадобились.

    Группировка без группировочных полей

    Соответственно использование группировочных полей также не требуется, если результатом запроса будут только группируемые поля:

    12

    К примеру, получим результаты агрегатных функций применительно к полю Калорийность без группировочных полей (то есть по всей таблице):

    13

    Группировка по нескольким полям

    Группировочных (как впрочем и группируемых) полей может быть сколь угодно много. В запросе они перечисляются через запятую.

    1С 8.3 Группировка в запросе — Программист 1С Минск. Автоматизация бизнеса.

    ✔ Группировка исходных данных в запросе

    &НаСервере
    Процедура ГруппировкаИсходныхДанныхВЗапросе ()

    // Группировка элементов справочника Материалы, при помощи функции СУММА,
    // в разрезе срока использования (группировочное поле) по весу (группируемое поле)
    Запрос = Новый Запрос ( «ВЫБРАТЬ
    | СрокИспользования,
    | СУММА(Вес)
    |ИЗ
    | Справочник.Материалы
    |ГДЕ
    | ЭтоГруппа = ЛОЖЬ
    |СГРУППИРОВАТЬ ПО
    | СрокИспользования» );

    РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
    Пока Записи . Следующий () Цикл
    // Обход результата запроса по каждой записи в полученной выборке
    КонецЦикла;

    &НаСервере
    Процедура ГруппировкаИсходныхДанныхВЗапросеБезГруппируемыхПолей ()

    // Наличие группируемых полей не является обязательным в группировке элементов
    // Можно также использовать ВЫБРАТЬ РАЗЛИЧНЫЕ Сроки Использования. Результат будет тот же
    Запрос = Новый Запрос ( «ВЫБРАТЬ
    | СрокИспользования
    |ИЗ
    | Справочник.Материалы
    |ГДЕ
    | ЭтоГруппа = ЛОЖЬ
    |СГРУППИРОВАТЬ ПО
    | СрокИспользования» );

    РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
    Пока Записи . Следующий () Цикл
    // Обход результата запроса по каждой записи в полученной выборке
    КонецЦикла;

    &НаСервере
    Процедура ГруппировкаВЗапросеБезГруппировочныхПолейПоВсейТаблице ()

    // Наличие группируемых полей не является обязательным в группировке элементов
    // Получение средних значений по всем элементам материалов
    Запрос = Новый Запрос ( «ВЫБРАТЬ
    | СРЕДНЕЕ(Вес),
    | СРЕДНЕЕ(Плотность),
    | СРЕДНЕЕ(Фасовка)
    |ИЗ
    | Справочник.Материалы
    |ГДЕ
    | ЭтоГруппа = ЛОЖЬ» );

    РезультатЗапроса = Запрос . Выполнить (); Записи = РезультатЗапроса . Выбрать ();
    Пока Записи . Следующий () Цикл
    // Обход результата запроса по каждой записи в полученной выборке
    КонецЦикла;

    Читать:
    Почему игра запускается в оконном режиме

Похожие статьи