Dev ›
Расшифровка отчета на СКД для набора данных объект ›
#1
12.04.21 15:35
Добрый день. Есть отчет на СКД, набор данных - объект. ТЗ формируется программно в р(х) ПриКомпоновкеРезультата() путем выгрузки результата запроса. В СКД настроена структура Отчет-Аналитика-Номенклатура_ОС. При нажатии на поле в колонке Количество открывается выбор поля для расшифровки (преимущественно расшифровка нужна по полю Регистратор), далее попадаем в ту же р(х) ПриКомпоновкеРезультата(), в результате которой формируется абсолютно идентичный отчет. Как настроить СКД, чтобы в расшифровке в группировку выводилась не Номенклатура, а Регистратор. Детальные записи не подошли, т.к. нужна группировка по номенклатуре (иначе выводится несколькими строками, по регистратору, для нач. и кон. итогов регистратор = NULL), да и с ними в расшифровку ничего не вывелось.
Код |
---|
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Запрос = Новый Запрос;
Запрос.Текст = "";
СКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();
ПараметрПериод = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
Если ПараметрПериод <> Неопределено Тогда
Запрос.УстановитьПараметр("НачалоПериода", ПараметрПериод.Значение.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", ПараметрПериод.Значение.ДатаОкончания);
КонецЕсли;
ПараметрНоменклатура_ОС = НастройкиОтчета.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Номенклатура_ОС"));
Если ПараметрНоменклатура_ОС <> Неопределено Тогда
Запрос.УстановитьПараметр("Номенклатура_ОС", ПараметрНоменклатура_ОС.Значение);
КонецЕсли;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, СКД.НастройкиПоУмолчанию, ДанныеРасшифровки);
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗ_Данные", Запрос.Выполнить().Выгрузить());
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
|
Прикрепленные файлы:
1.png
2.png
4.png
8.png