/// Как получить итоги по одному полю в разрезе другого
/// поля в 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-каналы с уроками программирования Сайты для обучения программированию Лекции и уроки