СКД. Как изменить данные расшифровки отчета УФ?

1. echo77 1880 19.05.18 05:18 Сейчас в теме
Имеется отчет для УТ 11.3 "Остатки и доступность товаров".
В нем, если настроить структуру с иерархией номенклатуры, то при расшифровки значения с помощью другого отчета "Поступление и отгрузка товаров" в отбор другого отчета встают два условия:
Номенклатура = <Номенклатура1>
Номенклатура.Родитель = <Родитель1>

Отбор по родителю устанавливается неправильно, в итоге отчет ничего не показывает.

Как изменить данные расшифровки, которые будут переданы в другой отчет, чтобы исключить этот элемент отбора?
Прикрепленные файлы:
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. echo77 1880 19.05.18 05:53 Сейчас в теме
В общем, решил с помощью создания новых ДанныхРасшифровкиКомпоновкиДанных

Процедура ОтчетТабличныйДокументОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.АнализЖурналаРегистрации") Тогда
		МодульАнализЖурналаРегистрацииКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("АнализЖурналаРегистрацииКлиент");
		МодульАнализЖурналаРегистрацииКлиент.ФормаОтчетаОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка);
	КонецЕсли;
	
	// Моя вставка Крынецкий 19.05.18. Создадим новые данные расшифровки - это делается для того чтобы исключить "лишних"
	// родителей, т.к. из-за этого не работает корректно расшифровка с помощью другого отчета, если используется Иерархия в группировках
	ДоработатьДанныеРасшифровки(Расшифровка);
	// Конец моей вставки
	
	// Моя вставка, Крынецкий 18.05.18. Переопределяем расшифровку на свою процедуру, т.к. требуется вызов другого отчета
	//ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка);
	ОбработкаРасшифровки(ЭтотОбъект, Элемент, Расшифровка, СтандартнаяОбработка);
	// Конец моей вставки
КонецПроцедуры

&НаСервере
Процедура ДоработатьДанныеРасшифровки(Расшифровка)
	
	ДанныеРасшифровки = ПолучитьИзВременногоХранилища(ОтчетДанныеРасшифровки);
	
	// Переделаем данные расшифровки с нуля
	НовыеДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
	НовыеДанныеРасшифровки.Настройки = ДанныеРасшифровки.Настройки;
	
	Для Каждого ЭлементРасшифровки Из ДанныеРасшифровки.Элементы Цикл
		
		// В зависимости от типа элемента Добавялем ЭлементДанныхГруппировки или ЭлементДанныхПоля
		Если  ТипЗнч(ЭлементРасшифровки) = Тип("ЭлементРасшифровкиКомпоновкиДанныхГруппировка") Тогда
			НовыеДанныеРасшифровки.Элементы.Добавить(ТипЗнч(ЭлементРасшифровки),, ЭлементРасшифровки.Группировка);
		Иначе
			МассивРодителей = ЭлементРасшифровки.ПолучитьРодителей();
			ЗначенияПолей = ЭлементРасшифровки.ПолучитьПоля();
			НовыеДанныеРасшифровки.Элементы.Добавить(ТипЗнч(ЭлементРасшифровки), МассивРодителей, ЗначенияПолей);
		КонецЕсли;
		
	КонецЦикла;
	
	// Помещаем во временное хранилище Новые данные расшифровки
	ПоместитьВоВременноеХранилище(НовыеДанныеРасшифровки, ОтчетДанныеРасшифровки);
	
КонецПроцедуры

Показать
+
Внимание! Тема сдана в архив

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