/// Как сгруппировать исходные данные в запросе в 1с 8.3, 8.2
&НаСервере
Процедура КакСгруппироватьИсходныеДанныеВЗапросеНаСервере()
// Группировка - это свёртка строчек таблицы по определенному
// признаку.
// В группировке участвуют поля двух типов: группировочные
// и группируемые.
// Группировочные - это те поля, по которым (в разрезе которых)
// идёт свёртка.
// Группируемые - это те поля, которые сворачиваются (например,
// суммируются.
// Свёртка группируемых полей проводится при помощи
// агрегатных функций:
// СУММА
// СРЕДНЕЕ
// МИНИМУМ
// МАКСИМУМ
// КОЛИЧЕСТВО [РАЗЛИЧНЫЕ]
// Обратите внимание, что при группировке (в отличие от итогов)
// происходит удаление детальных записей (строк) таблицы.
// То есть при подведении итогов - записей в результате запроса
// становится больше, а при группировке - меньше.
// Подробнее см. урок выше.
// Сгруппируем элементы справочника Номенклатура
// в разрезе цвета (группировочное поле) по
// калорийности (группируемое поле) при помощи функции СУММА.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Цвет,
| СУММА(Калорийность)
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| ЭтоГруппа = ЛОЖЬ
|СГРУППИРОВАТЬ ПО
| Цвет"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
/// Возможно ли cгруппировать без группируемых полей в запросе
/// в 1с 8.3, 8.2
&НаСервере
Процедура КакСгруппироватьБезГруппируемыхПолейНаСервере()
// Наличие группируемых полей не является обязательным в группировке.
// Рассмотрим такой пример.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Цвет
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| ЭтоГруппа = ЛОЖЬ
|СГРУППИРОВАТЬ ПО
| Цвет"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
// В данном случае результат запроса аналогичен тому,
// если бы мы запросили ВЫБРАТЬ РАРЗЛИЧНЫЕ цвета из
// элементов справочника Номенклатура.
КонецПроцедуры
/// Возможно ли сгруппировать без группировочных полей
/// в запросе (то есть в целом по таблице) в 1с 8.3, 8.2
&НаСервере
Процедура КакСгруппироватьБезГруппировочныхПолейНаСервере()
// Наличие группировочных полей также не является обязательным
// в группировке.
// Получим средние значения калорийности, жиров, белков и
// углеводов в целом по всем элементам номенклатуры.
Запрос = Новый Запрос(
"ВЫБРАТЬ
| СРЕДНЕЕ(Калорийность),
| СРЕДНЕЕ(Жиры),
| СРЕДНЕЕ(Белки),
| СРЕДНЕЕ(Углеводы)
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| ЭтоГруппа = ЛОЖЬ"
);
ВыполнитьЗапросИВывестиНаФорму(Запрос);
КонецПроцедуры
Смотрите также:
Электронный учебник по программированию в 1С Рекомендации по изучению программирования 1С с нуля Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, нидерландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С Программирование в 1С 8.3 с нуля - краткий самоучитель Комплексная подготовка программистов 1С:Предприятие 8.2 Сайты с уроками программирования и со справочниками Youtube-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки