Обработка результата отчета на СКД

1. Дон Кихот 16.09.22 15:22 Сейчас в теме
Есть внешний отчет созданный в СКД. Добавляю кнопку на форму отчета для обработки результата отчета. Как можно программно получить таблицу выведенную в отчете для дальнейшей обработки?
По теме из базы знаний
Найденные решения
10. Дон Кихот 06.10.22 14:42 Сейчас в теме
(1)В итоге таблицу получил следующим кодом:
В модуле формы:

ДокументОбъект = РеквизитФормыВЗначение("Отчет");
ТЗ = ДокументОбъект.ПолучениеРезультатаСКД();

в модуле отчета:

Функция ПолучениеРезультатаСКД() Экспорт
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

// Инициализация процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,,);

Таблица = Новый ТаблицаЗначений;

// Получение результата
ПроцессорВыводаРезультатаКомпоновкиДанных = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВыводаРезультатаКомпоновкиДанных.УстановитьОбъект(Таблица);
ПроцессорВыводаРезультатаКомпоновкиДанных.Вывести(ПроцессорКомпоновкиДанных);
Возврат Таблица

КонецФункции // ()
Somarushka; Berzzz; +2 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. soft_wind 16.09.22 15:45 Сейчас в теме
(1)Если запрос и результат в СКД линейный еще реально получить ТЗ
а если какие то группировки и по строкам и по столбцам то может и не выгрузиться

проще уже сам запрос из СКД вытаскивать и использовать его в обработке
(да вроде так и правильнее )
6. Дон Кихот 17.09.22 08:22 Сейчас в теме
(3) И ещё есть вопрос, после выведения отчета можно ли выделить несколько строк и нажатием на кнопку получить данные этих строк для дальнейшей обработки?
7. Дон Кихот 19.09.22 11:22 Сейчас в теме
(3)
проще уже сам запрос из СКД вытаскивать и использовать его в обработке

А если пользователь в отчет добавит отборы, как их получить для того чтобы УстановитьПараметр в запросе?
4. lmnlmn 69 16.09.22 15:53 Сейчас в теме
(1) При программном выводе можно вывести отчет в таблицу значений в событии "ПриКомпоновкеРезультата". Но оно кросс-таблицы не умеет, если не научили еще.
5. Дон Кихот 17.09.22 08:13 Сейчас в теме
(4)
можно вывести отчет в таблицу значений

А как можно потом получить эту таблицу, нажав на новую кнопку на форме?
10. Дон Кихот 06.10.22 14:42 Сейчас в теме
(1)В итоге таблицу получил следующим кодом:
В модуле формы:

ДокументОбъект = РеквизитФормыВЗначение("Отчет");
ТЗ = ДокументОбъект.ПолучениеРезультатаСКД();

в модуле отчета:

Функция ПолучениеРезультатаСКД() Экспорт
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(),,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

// Инициализация процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,,,);

Таблица = Новый ТаблицаЗначений;

// Получение результата
ПроцессорВыводаРезультатаКомпоновкиДанных = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;
ПроцессорВыводаРезультатаКомпоновкиДанных.УстановитьОбъект(Таблица);
ПроцессорВыводаРезультатаКомпоновкиДанных.Вывести(ПроцессорКомпоновкиДанных);
Возврат Таблица

КонецФункции // ()
Somarushka; Berzzz; +2 Ответить
2. Release 16.09.22 15:27 Сейчас в теме
А кнопка точно нужна? Может стоит погуглить ПриКомпоновкеРезультата?
Или тут (ссылка) почитать, если лень искать.
8. soft_wind 19.09.22 11:47 Сейчас в теме
(7) еще как вариант, в СКД можно вклиниваться в обработку расшифровки и добавлять свои команды в контекстное меню
по ПКМ при кликанье на поле/ячейки отчета.
в своей процедуре обработке, получив данные расшифровки можно выполнить нужную обработку.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот