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