Перехватываем формирование внешнего отчёта и выводим небольшой итог без запроса к рабочим данным.
Где и как запускать
Модуль объекта внешнего отчёта (.erf). Обработчик создайте через список «Процедуры и функции» модуля объекта. Это не модуль формы и не общий модуль.
Подготовка
В конфигураторе выберите Файл → Новый → Внешний отчёт. Сохраните отчёт в свой .erf. Создайте основную форму отчёта и поле табличного документа Результат.
В модуле объекта добавьте обработчик ПриКомпоновкеРезультата через список событий и поместите в него основной код. Если обработчик уже есть, дополните его тело, не создавайте вторую одноимённую процедуру.
В модуле обычной формы добавьте процедуру Сформировать из дополнительного блока и назначьте её действием своей кнопки. Поле Результат должно отображать реквизит формы Результат типа ТабличныйДокумент.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ДокументРезультат.Очистить();
ДокументРезультат.Область(1, 1).Текст = "Учебные продажи";
ДокументРезультат.Область(2, 1).Текст = "Количество";
ДокументРезультат.Область(2, 2).Текст = "Цена";
ДокументРезультат.Область(2, 3).Текст = "Сумма";
ДокументРезультат.Область(3, 1).Текст = "3";
ДокументРезультат.Область(3, 2).Текст = "250";
ДокументРезультат.Область(3, 3).Текст = Строка(3 * 250);
КонецПроцедурыКнопка Сформировать в обычной форме внешнего отчёта
Основная обычная форма внешнего отчёта → Модуль формы.
Реквизит формы Результат: ТабличныйДокумент; кнопка вызывает эту процедуру.
Процедура Сформировать(Кнопка)
Результат = Новый ТабличныйДокумент;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
СкомпоноватьРезультат(Результат, ДанныеРасшифровки);
КонецПроцедурыРазбор по шагам
Кнопка вызывает метод СкомпоноватьРезультат контекста внешнего отчёта. Платформа вызывает обработчик объекта и передаёт ему табличный документ.
СтандартнаяОбработка = Ложь отключает обычный вывод СКД: в этом примере результат заполняется вручную.
Обработчик очищает прежний результат и записывает заголовок, исходные числа и вычисленную сумму. Он не должен повторно вызывать СкомпоноватьРезультат, иначе получится рекурсия.
Как проверить результат
Откройте .erf в толстом клиенте с обычной формой и нажмите свою кнопку Сформировать: в третьей строке должно появиться 3, 250 и 750.
Нажмите кнопку повторно: строки не дублируются, потому что обработчик начинает с Очистить().
Поставьте точку останова в обработчике: вызов должен прийти из СкомпоноватьРезультат, а не из прямого вызова процедуры.
Ожидаемый результат
Внешний отчёт выводит учебную таблицу с суммой 750; данные информационной базы не читаются и не записываются.
На что обратить внимание
Выгрузка справки содержит сокращённую запись ПриКомпоновкеРезультата(). Для модуля объекта используйте обработчик с параметрами, который создаёт конфигуратор, как в примере выше.
Обычная форма выбрана для короткого способа запуска. В управляемой форме компоновку выполняйте на сервере, возвращая табличный документ в реквизит формы.
Этот учебный вывод заменяет СКД полностью. Для настоящего отчёта либо оставляйте стандартную обработку, либо выполняйте собственную компоновку.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.