СКД Расшифрока результата

1. aleksejafonkin 12.11.19 13:50 Сейчас в теме
Добрый день!
В СКД создал набор данных, который бежит по документам и собирает информацию. Автоматически создал форму отчета. Кнопка "сформировать" создалась автоматически. Нажимаю сформировать все вывелось отлично и если навести курсор мышки, то отображается лупа и даже по нажатию проваливается в справочники, ссылки и т.д.
Теперь хочу программно поработать с отчетом, создал команду "СформироватьОтчет", нажав на неё исполняется этот код:
&НаСервере
Процедура СформироватьОтчетНаСервере()
		
	СхемаКомпоновки = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
	НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;
	
	//ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
	
	Результат.Очистить();
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(Результат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
КонецПроцедуры

&НаКлиенте
Процедура СформироватьОтчет(Команда)
	СформироватьОтчетНаСервере();
	// Чтобы не писалось "Отчет не сформирован..."
	Элементы.Результат.ОтображениеСостояния.Видимость = Ложь;
	Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;
КонецПроцедуры
Показать

Отчет формируется отлично, но возникает проблема с расшифровкой, лупа исчезает. Если установить 3-й параметр "ДанныеРасшифровки"
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, ДанныеРасшифровки);
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки); - то тут при открытии отчета возникает ошибка.

Может этого достаточно, что бы мне объяснить, где я сошел с правильной дороги и подскажет?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. user705522_constantin_h 36 12.11.19 14:07 Сейчас в теме
4. aleksejafonkin 12.11.19 14:26 Сейчас в теме
(3) тут уже работают с событием ОбработкаРасшифровки, а у меня раньше затык появился...
5. user623969_dusa 12.11.19 14:40 Сейчас в теме
(4) у тебя ДанныеРасшифровки - это реквизит формы используй другое имя чтобы не было конфликта

ДР = Неопределено;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, ДР);

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДР);
6. user623969_dusa 12.11.19 14:50 Сейчас в теме
(4) грамотнее свой вариант формирования отчета реализовывать в модуле объекта - есть спец процедура ПриКомпоновкеЧегоТоТам
2. aleksejafonkin 12.11.19 13:51 Сейчас в теме
&НаСервере
Процедура СформироватьОтчетНаСервере()

СхемаКомпоновки = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;

//ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки);

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

Результат.Очистить();

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

КонецПроцедуры

&НаКлиенте
Процедура СформироватьОтчет(Команда)
СформироватьОтчетНаСервере();
// Чтобы не писалось "Отчет не сформирован..."
Элементы.Результат.ОтображениеСостояния.Видимость = Ложь;
Элементы.Результат.ОтображениеСостояния.ДополнительныйРежимОтображения = ДополнительныйРежимОтображения.НеИспользовать;
КонецПроцедуры
Показать
7. aleksejafonkin 12.11.19 14:51 Сейчас в теме
А как получить данные расшифровки (путь к временному хранилищу)?
&НаСервере
Процедура СформироватьОтчетНаСервере()
		
	СхемаКомпоновки = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет");
	НастройкиКомпоновки = СхемаКомпоновки.НастройкиПоУмолчанию;
	
	АдресРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновки, НастройкиКомпоновки, АдресРасшифровки);
	
	ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,,АдресРасшифровки);
	
	Результат.Очистить();
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(Результат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновки);
	
КонецПроцедуры
Показать


Такой код только позволит нажать на ячейку, но работать с ним нельзя.
8. user623969_dusa 12.11.19 14:53 Сейчас в теме
(7) а обработка расшифроки - читать статью посоветанную в (3)))
Оставьте свое сообщение

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