Описание источника разрешает категорию как измерение и задаёт выражение итога Сумма(Сумма). Это не текст запроса к базе.
Где и как запускать
Модуль новой управляемой формы учебной внешней обработки. Код содержит готовые процедуры с директивами; вставляйте на уровне модуля, не внутрь другого обработчика. Каждую задачу запускайте в отдельной копии формы.
Подготовка
Учебная внешняя обработка с пустой управляемой основной формой. Создайте команду УчебныйПример, кнопку команды и назначьте действие УчебныйПример.
Вставьте полный модуль урока: клиентский обработчик и серверную функцию. Каждый урок — отдельная копия модуля.
Откройте EPF в тонком клиенте Windows. Данные Книга/Ручка/Коробка создаются только в памяти; запрос урока с параметрами не читает таблицы базы.
ПостроительОтчета — существующий API для изучения/сопровождения старого кода. Это не СистемаКомпоновкиДанных и не рекомендация заменять ею современные отчёты.
&НаКлиенте
Процедура УчебныйПример(Команда)
ТабДок = СформироватьУчебныйОтчет();
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Учебный ПостроительОтчета");
КонецПроцедуры
&НаСервере
Функция СформироватьУчебныйОтчет()
Данные = Новый ТаблицаЗначений;
Данные.Колонки.Добавить("Категория", Новый ОписаниеТипов("Строка"));
Данные.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
Данные.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
Данные.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
Данные.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
Образцы = Новый Массив;
Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Книга", 3, 250));
Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Канцелярия", "Ручка", 1, 50));
Образцы.Добавить(Новый Структура("Категория,Наименование,Количество,Цена", "Упаковка", "Коробка", 2, 30));
Для Каждого Образец Из Образцы Цикл
СтрокаДанных = Данные.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаДанных, Образец);
СтрокаДанных.Сумма = СтрокаДанных.Количество * СтрокаДанных.Цена;
КонецЦикла;
Описание = Новый ОписаниеИсточникаДанных(Данные);
Для Каждого Колонка Из Описание.Колонки Цикл
Колонка.Поле = Истина;
Колонка.Отбор = Истина;
Колонка.Порядок = Истина;
Колонка.Измерение = Колонка.Имя = "Категория";
КонецЦикла;
Построитель = Новый ПостроительОтчета;
Построитель.ИсточникДанных = Описание;
Построитель.АвтоДетальныеЗаписи = Ложь;
Построитель.ВыводитьДетальныеЗаписи = Истина;
Построитель.ВыводитьЗаголовокОтчета = Истина;
Построитель.ВыводитьОбщиеИтоги = Ложь;
Построитель.ВыводитьПодвалОтчета = Ложь;
Построитель.ВыводитьПодвалТаблицы = Ложь;
Построитель.ВыводитьШапкуТаблицы = Истина;
Построитель.ОтображатьСостояние = Ложь;
Построитель.ОбрабатыватьПрерываниеПользователя = Истина;
Построитель.ТекстЗаголовка = "Учебный отчёт — вымышленные данные";
Колонки = Описание.Колонки;
Сообщить(Колонки.Количество() = 5);
Для Каждого Колонка Из Колонки Цикл
Сообщить(Колонки.Получить(Колонки.Индекс(Колонка)).Имя = Колонка.Имя);
Если Колонка.Имя = "Сумма" Тогда
Колонка.Итог = "Сумма(Сумма)";
КонецЕсли;
КонецЦикла;
Построитель.ИсточникДанных = Описание;
Построитель.ВыбранныеПоля.Очистить();
Построитель.ВыбранныеПоля.Добавить("Наименование", "Товар");
Построитель.ВыбранныеПоля.Добавить("Сумма", "Сумма");
Группировка = Построитель.ИзмеренияСтроки.Добавить("Категория", "УчебнаяКатегория");
Группировка.Представление = "Учебная категория";
Построитель.ВыводитьОбщиеИтоги = Истина;
Сообщить(Группировка.ПутьКДанным = "Категория");
Сообщить(Группировка.Имя = "УчебнаяКатегория");
Сообщить(Данные.Итог("Сумма") = 860);
ТабДок = Новый ТабличныйДокумент;
Построитель.Вывести(ТабДок);
Возврат ТабДок;
КонецФункции
Разбор по шагам
КолонкиОписанияИсточникаДанных соответствует пяти собственным колонкам таблицы, не коллекции метаданных.
Индекс и Получить проверяют обращение к тому же описанию колонки.
Итог у Сумма — выражение Сумма(Сумма), не просто слово Сумма и не отдельное число 860.
Категория разрешена как измерение; добавляем её в ИзмеренияСтроки с собственным именем и подписью.
Выводим детали и общий итог. Канцелярия должна дать 800, Упаковка 60, общий итог 860.
Как проверить результат
Проверки структуры описания, пути/имени группировки и исходного итога — Истина.
В отчёте группы Канцелярия и Упаковка с итогами 800 и 60; общий итог 860.
Группировка не создаёт категорий в справочниках.
Ожидаемый результат
Получен содержательный групповой отчёт из таблицы с явно заданным ресурсом итога.
На что обратить внимание
Измерение в описании источника лишь разрешает группировку; саму группировку добавляют в настройки построителя.
Изменение исходной схемы после настройки отчёта требует проверки путей/итоговых выражений.
Имя ресурса Сумма и имя функции Сумма в выражении совпадают, но имеют разные роли.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.