Данное событие вызывается в модуле объекта, после события ПриКомпоновкеРезультата, если выполняется стандартная обработка. Данное событие может быть вызвано из фонового задания, если отчет формируется в фоновом режиме. Т.к. данный обработчик может быть вызван из фонового задания, то обработчик содержит копию объекта отчета: Реквизиты отчета, поддерживающие сериализацию, будут доступны в обработчике. При попытке обращения в обработчике к реквизиту, который содержал значение, не поддерживающее сериализацию, будет выдано исключение категории ОшибкаИспользованияВстроенногоЯзыка. При попытке записи в реквизит отчета будет выдано исключение категории ОшибкаИспользованияВстроенногоЯзыка. Все изменения объекта отчета и его реквизитов сделанные внутри этого обработчика будут потеряны при выходе из обработчика. Рекомендуется использовать данное событие, если требуется изменить или доработать логику формирования отчета, но не требуется менять механизм запуска формирования отчета (запуск фонового задания, отслеживание выполнения фонового задания и т.д.).
Синтаксис
ОбработкаКомпоновкиРезультата(<ДокументРезультат>, <ДанныеРасшифровки>, <СтандартнаяОбработка>)Полное описание, параметры и ограничения
ОтчетОбъект.<Имя отчета>.ОбработкаКомпоновкиРезультата (ReportObject.<Report name>.ResultCompositionProcessing)
ОтчетОбъект.<Имя отчета> (ReportObject.<Report name>)
ОбработкаКомпоновкиРезультата (ResultCompositionProcessing)
Доступен, начиная с версии 8.5.1.
Синтаксис:
ОбработкаКомпоновкиРезультата(<ДокументРезультат>, <ДанныеРасшифровки>, <СтандартнаяОбработка>)
Параметры:
<ДокументРезультат>
Тип: ТабличныйДокумент.
Документ, в который выводится результат.
<ДанныеРасшифровки>
Тип: ДанныеРасшифровкиКомпоновкиДанных.
Данные расшифровки компоновки данных, которые необходимо заполнить при компоновке.
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Отказ от стандартной обработки не отменяет действие.
Значение по умолчанию: Истина.
Описание:
Данное событие вызывается в модуле объекта, после события ПриКомпоновкеРезультата, если выполняется стандартная обработка.
Данное событие может быть вызвано из фонового задания, если отчет формируется в фоновом режиме.
Т.к. данный обработчик может быть вызван из фонового задания, то обработчик содержит копию объекта отчета:
Реквизиты отчета, поддерживающие сериализацию, будут доступны в обработчике.
При попытке обращения в обработчике к реквизиту, который содержал значение, не поддерживающее сериализацию, будет выдано исключение категории ОшибкаИспользованияВстроенногоЯзыка.
При попытке записи в реквизит отчета будет выдано исключение категории ОшибкаИспользованияВстроенногоЯзыка.
Все изменения объекта отчета и его реквизитов сделанные внутри этого обработчика будут потеряны при выходе из обработчика.
Рекомендуется использовать данное событие, если требуется изменить или доработать логику формирования отчета, но не требуется менять механизм запуска формирования отчета (запуск фонового задания, отслеживание выполнения фонового задания и т.д.).
Доступность:
Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.
Замечание:
Безопасный режим на время исполнения данного обработчика будет отключен. Данное замечание не относится к обработчикам событий, расположенным в расширении конфигурации.
Использование в версии:
Доступен, начиная с версии 8.5.1.
Методическая информация
Практические примеры
ОбработкаКомпоновкиРезультата: собственный отчёт книг
Событие модуля объекта связано со стандартной командой формирования своего настоящего отчёта, а не вызывается вручную вместо платформы.
Где и как запускать
Модуль объекта своего отчёта УчебныеКнигиСКД; сервер / толстый клиент.
Подготовка
В своей учебной конфигурации создайте Отчеты → УчебныеКнигиСКД. У отчёта откройте ОсновнаяСхемаКомпоновкиДанных и сохраните её макетом ОсновнаяСхемаКомпоновкиДанных.
В конструкторе СКД создайте источник Local и набор-запрос Книги. Вставьте приведённый запрос двух константных строк; это не чтение рабочих справочников. Доступные поля Наименование, Количество, Сумма заполните автоматически.
В настройках схемы создайте вариант Подробно: выбраны Наименование, Количество, Сумма; структура — группировка Детальные записи. Второй вариант Кратко: Наименование и Сумма, также Детальные записи. Первым оставьте Подробно; у обоих задайте понятное представление.
Мастером создайте у своего отчёта управляемую форму ОтчетКниг, тип Основная, со стандартными командами Сформировать / Настройки. Основной реквизит Отчет типа ОтчетОбъект.УчебныеКнигиСКД должен остаться основным.
Проверьте штатный реквизит Результат типа ТабличныйДокумент и связанное поле ПолеРезультата с путём Результат. Если мастер дал другое имя, согласуйте именно этот свой реквизит и связь штатной команды, не добавляйте второй результат.
Добавьте свои реквизиты Статус Строка 200 и ЧислоФормирований Число 10.0, разместите на форме. События отчётной формы назначаются самой форме, не полю результата и не модулю объекта отчёта.
Для уроков сохранения у конфигурации оставьте незаданными ХранилищеВариантовОтчетов и ХранилищеПользовательскихНастроекОтчетов: используется стандартное внутреннее хранилище собственной учебной базы. Пользователю нужно право СохранениеДанныхПользователя. Сохраняйте и загружайте только свои именованные настройки этого отчёта.
Каждый пример самостоятельный. Формируйте только этот собственный отчёт; рабочие настройки, печать и сохранение в чужие хранилища не используются. BSL здесь не исполнялся.
У собственного отчёта добавьте реквизит НазваниеУчебногоОтчета Строка 100, выведите его на основной форме и перед опытом заполните «Покупка учебных книг». Это реквизит отчёта, не только независимый реквизит формы.
Каждый обработчик ниже относится к модулю объекта отчёта, не к одноимённому событию отчётной формы. Изучайте примеры по одному; названия / сигнатуры событий объекта и формы различаются.
Процедура ОбработкаКомпоновкиРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
Настройки.ПараметрыВывода.УстановитьЗначениеПараметра("Заголовок", НазваниеУчебногоОтчета);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки, ДанныеРасшифровки);
Процессор = Новый ПроцессорКомпоновкиДанных;
Процессор.Инициализировать(Макет, , ДанныеРасшифровки);
ДокументРезультат.Очистить();
Вывод = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
Вывод.УстановитьДокумент(ДокументРезультат);
Вывод.Вывести(Процессор);
КонецПроцедурыКонструктор СКД своего отчёта: запрос двух константных строк, не BSL
ВЫБРАТЬ
"Учебная книга" КАК Наименование,
3 КАК Количество,
750 КАК Сумма
ОБЪЕДИНИТЬ ВСЕ
ВЫБРАТЬ "Учебная тетрадь", 5, 200Разбор по шагам
Подготовьте собственный отчёт, константный запрос и реквизит названия.
Назначьте процедуру точному событию модуля объекта.
Нажмите Сформировать на своей основной форме и сравните результат / отказ.
Как проверить результат
ПолучитьНастройки возвращает копию с применёнными пользовательскими / фиксированными настройками. Местное изменение заголовка не записывает реквизит отчёта.
Параметр ДокументРезультат действительно заполнен, а переданные ДанныеРасшифровки используются и при макете, и при исполнении. Пустая процедура с Ложь не выдаётся за готовый отчёт.
Событие может выполняться фоновым заданием с копией отчёта. НазваниеУчебногоОтчета — сериализуемая строка; присваивания реквизитам отчёта, клиентских диалогов и Показать нет.
Ожидаемый результат
Показан настоящий этап проверки / подготовки / компоновки с корректными параметрами.
На что обратить внимание
ОбработкаКомпоновкиРезультата выполняется после ПриКомпоновкеРезультата при сохранённой стандартной обработке ранней стадии.
В фоновом обработчике изменения реквизитов отчёта не являются способом передачи результата.
BSL и формирование отчёта при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.