Итоги в запросах в языке 1С 8.3

Jul 08, 2022 17:15


/// Как получить итоги по одному полю в разрезе другого
/// поля в 1с 8.3, 8.2

&НаСервере
Процедура КакПолучитьИтогиПоОдномуПолюНаСервере()

// Итоги подводятся одних полей в разрезе других.
// Для вычисления итогов используются агрегатные функции:
// СУММА
// МАКСИМУМ
// МИНИМУМ
// СРЕДНЕЕ
// КОЛИЧЕСТВО

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

// Для примера подведём итоги калорийности продуктов
// в разрезе цвета.

Запрос = Новый Запрос(
"ВЫБРАТЬ
| Цвет,
| Наименование,
| Калорийность
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| ЭтоГруппа = Ложь
|ИТОГИ
| СУММА(Калорийность)
|ПО
| Цвет"
);

ВыполнитьЗапросИВывестиНаФорму(Запрос);

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


/// Как получить итоги в целом
/// по таблице в 1с 8.3, 8.2

&НаСервере
Процедура КакПолучитьИтогиВЦеломПоТаблицеНаСервере()

// Узнаем среднюю калорийность продуктов в целом
// по всей таблице справочника.

Запрос = Новый Запрос(
"ВЫБРАТЬ
| Наименование,
| Калорийность
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| ЭтоГруппа = Ложь
|ИТОГИ
| СРЕДНЕЕ(Калорийность)
|ПО
| ОБЩИЕ"
);

ВыполнитьЗапросИВывестиНаФорму(Запрос);

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

/// Как получить итоги одних полей в разрезе
/// нескольких других в 1с 8.3, 8.2

&НаСервере
Процедура КакПолучитьИтогиНесколькихПолейНаСервере()

// Посчитаем итоги Калорийность, Жиры, Белки и Углеводы
// по цветам и вкусам продуктов, а также в целом
// по таблице.

Запрос = Новый Запрос(
"ВЫБРАТЬ
| Цвет,
| Вкус,
| Наименование,
| Калорийность,
| Жиры,
| Белки,
| Углеводы
|ИЗ
| Справочник.Номенклатура
|ГДЕ
| ЭтоГруппа = Ложь
|ИТОГИ
| СУММА(Калорийность),
| СУММА(Жиры),
| СУММА(Белки),
| СУММА(Углеводы)
|ПО
| ОБЩИЕ,
| Цвет,
| Вкус"
);

ВыполнитьЗапросИВывестиНаФорму(Запрос);

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

/// Как получить итоги по иерархии в 1с 8.3, 8.2

&НаСервере
Процедура КакПолучитьИтогиПоИерархииНаСервере()

// Если мы подводим итоги в разрезе поля, тип которого имеет иерархическую
// структуру - можно использовать ключевое слово ИЕРАРХИЯ,
// чтобы подвести итоги по всем уровням вложенности.

// Для примера выведем среднюю цену на продукты, установленную для клиентов,
// в разрезе элементов и групп справочника Номенклатура.

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Период,
| Номенклатура,
| Цена
|ИЗ
| РегистрСведений.ЦенаНаЕдуДляКлиентов КАК ЦенаНаЕдуДляКлиентов
|ИТОГИ
| СРЕДНЕЕ(Цена)
|ПО
| Номенклатура ИЕРАРХИЯ";

ВыполнитьЗапросИВывестиНаФорму(Запрос);

// Обратите внимание, что у ключевого слова ИЕРАРХИЯ есть вариант
// ТОЛЬКО ИЕРАРХИЯ. В этом случае итоги будут подводиться
// только по иерархии (группам) без расчёта итогов в контрольных
// точках (элементах).

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

Смотрите также:
Электронный учебник по программированию в 1С
Рекомендации по изучению программирования 1С с нуля
Игра "Кто хочет стать миллионером?" с вопросами на определенную тематику (язык программирования JavaScript, английские, немецкие, французские, испанские, португальские, ни­дер­ландские, итальянские слова, электробезопасность, промышленная безопасность, бокс и т.п.), написанная на 1С
Программирование в 1С 8.3 с нуля - краткий самоучитель
Комплексная подготовка программистов 1С:Предприятие 8.2
Сайты с уроками программирования и со справочниками
Youtube-каналы с уроками программирования
Сайты для обучения программированию
Лекции и уроки

программирование

Previous post Next post
Up