ПостроительОтчета (Обычные формы) и СКД

1. vitek77 04.04.25 13:51 Сейчас в теме
Доброго!
Задали задачу перенести функционал из обычных форм на управляемые.
В обычных формах все отчеты построены на Построителе отчетов.
В частности там используется вот такая возможность:
Построитель.Текст = "ВЫБРАТЬ
	|	РеализацияТоваровУслугТовары.Ссылка КАК Ссылка,
	|	РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
	|	РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
	|	РеализацияТоваровУслугТовары.Количество КАК Количество
	|ИЗ
	|	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
	|ИТОГИ
	|	СУММА(Количество)
	|ПО
	|	Номенклатура,
	|	Ссылка,
	|	Контрагент";
	Построитель.Выполнить();
	
	//Обход сначала по контрагентам
	Выборка1 = Построитель.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Контрагент");
	Пока Выборка1.Следующий() Цикл
		//И так далее
	КонецЦикла;
	
	//Обход сначала по номенклатура
	Выборка1 = Построитель.Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
	Пока Выборка1.Следующий() Цикл
		//И так далее
	КонецЦикла;
Показать

Т.е. я могу в любой момент обратиться к любой группировке.

Можно ли такого как-то добиться на СКД?

Сейчас я результат выгружаю в коллекцию значений, но там уже жестко заданная структура итогов из настроек, указанных в схеме компановки
По теме из базы знаний
Найденные решения
5. vitek77 04.04.25 23:29 Сейчас в теме
Решение нашел на Мисте.

Запрос = Новый ЗАпрос;
   Запрос.Текст = Макет.НаборыДанных.Запрос.Запрос;
   Для Каждого ПараметрЗапроса Из Макет.ЗначенияПараметров Цикл
       Запрос.УстановитьПараметр(ПараметрЗапроса.Имя, ПараметрЗапроса.Значение);
   КонецЦикла; 


А дальше через запрос получаю доступ к любым группировкам и формирую все как мне надо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. x_x 3 04.04.25 20:03 Сейчас в теме
В управляемых формах в любом случае отчет будет формироваться через

ПриКомпоновкеРезультата

если вы хотите изменить группировки то только тут.
как пример через компоновщик настроек

СвояГруппировка = Отчет.КомпоновщикНастроек.Настройки.Структура.Добавить(Тип("ГруппировкаКомпоновкиДанных"));
ПолеГруппировки = СвояГруппировка.ПоляГруппировки.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных"));
ПолеГруппировки.Использование = Истина;
ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(); // тут группировка


вот статья может пригодится
https://forum.infostart.ru/forum9/topic86894/
3. vitek77 04.04.25 21:22 Сейчас в теме
(2)Не, ерунда получается: Один и тот же отчет придется два раза формировать только из-за того, что мне нужно порядок группировок поменять.
Пробую сделать так:
В настройках сразу создаю несколько вариантов группировок. Результат выгружаю в Дерево. Теперь в дереве остается разобраться какие строки из первого уровня к какому варианту группировок относятся.
4. polax 04.04.25 23:10 Сейчас в теме
(3) В пользовательском режиме Открыть настройки отчета - Расширенные - Структура и резвись от души с доступными группировками, ОФ отдыхают
5. vitek77 04.04.25 23:29 Сейчас в теме
Решение нашел на Мисте.

Запрос = Новый ЗАпрос;
   Запрос.Текст = Макет.НаборыДанных.Запрос.Запрос;
   Для Каждого ПараметрЗапроса Из Макет.ЗначенияПараметров Цикл
       Запрос.УстановитьПараметр(ПараметрЗапроса.Имя, ПараметрЗапроса.Значение);
   КонецЦикла; 


А дальше через запрос получаю доступ к любым группировкам и формирую все как мне надо.
Оставьте свое сообщение

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