Расшифровка отчета скд, который выводится в поле табличного документа

1. aalu14 08.11.22 15:11 Сейчас в теме
Добрый день, подскажите, как реализовать простейшую расшифровку отчета скд, но который выведен в поле табличного документа. То есть реквизита ДанныеРасшифровки нет, в форме отчета автоматически создается данный реквизит, или же можно в свойствах формы назначить. При формировании скд объявляю ДанныеРасшифровки, но в событие ОбработкаРасшифровки не попадают. На просторах интернета нашел решение, которое не работает - создать реквизит и:
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
АдресДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки,УникальныйИдентификатор);

но так не работает...
при попытке прочесть значение ячейки выдается ошибка Недопустимое значение параметра (параметр номер '1') - ругается на расшифровку
Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Поля = Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();

Задача простая, в отчете скд выводится поле с ссылкой на документ, необходимо открывать этот документ из отчета.
Заранее спасибо!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. Ivan_Sol 19 08.11.22 15:14 Сейчас в теме
6. Ivan_Sol 19 08.11.22 15:39 Сейчас в теме
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Ivan_Sol 19 08.11.22 15:14 Сейчас в теме
3. aalu14 08.11.22 15:16 Сейчас в теме
(2)Пытался уже оттуда способы, не подходят, там как раз ДанныеРасшифровки - тот самый реквизит, который сам создается в отчете скд, которого у меня нет, так как я в форме в поле таб документа вывожу отчет...
4. Ivan_Sol 19 08.11.22 15:36 Сейчас в теме
Ок, понял, сейчас попробую что-нибудь смоделировать
5. Ivan_Sol 19 08.11.22 15:38 Сейчас в теме
СКД получается программно формируете через ИнициализироватьКомпоновкуДанных?
6. Ivan_Sol 19 08.11.22 15:39 Сейчас в теме
7. aalu14 08.11.22 16:00 Сейчас в теме
(6)Это форма отчета, где создается ДанныеРасшифровки, у меня форма документа и вывод в таб поле
13. aalu14 09.11.22 11:18 Сейчас в теме
(6)Хоть это и не решение, все равно спасибо Вам, единственный, кто попытался помочь!
8. aalu14 09.11.22 09:43 Сейчас в теме
Подскажите, кто-нибудь пожалуйста, как мне решить проблему.
Вывожу отчет вот так, подхватывая макет скд:
&НаСервере	
Процедура ВывестиОтчет(НазваниеМакета,НачалоПериода,КонецПериода)
	
	//Получаем схему из макета			
	СхемаКомпоновкиДанных = ПолучитьМакет(НазваниеМакета);
	
	//создадим компоновщик настроек и загрузим настройки по умолчанию, вместо настроек по умолчанию можно использовать восстановленные настройки
	КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
	КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
	КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);     
	
	//установка параметров отчета, без КомпоновщикНастроекКомпоновкиДанных делать это гораздо сложнее
	Настройки = КомпоновщикНастроек.Настройки;
	ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
	
	Если ПараметрПериод <> Неопределено Тогда
		ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
		ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
	КонецЕсли;
	
	ПараметрНачалоПериода = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
	Если ПараметрНачалоПериода <> Неопределено Тогда
		ПараметрНачалоПериода.Значение = НачалоДня(НачалоПериода);
	КонецЕсли;
	
	ПараметрКонецПериода = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
	Если ПараметрКонецПериода <> Неопределено Тогда
		ПараметрКонецПериода.Значение = КонецДня(КонецПериода);
	КонецЕсли;
	
	Если НазваниеМакета = "ЗоВСП" тогда  
		Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = ТекущаяДата();
		Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
		
		Настройки.ПараметрыДанных.Элементы.Получить(0).Значение = НачалоПериода;
		Настройки.ПараметрыДанных.Элементы.Получить(0).Использование = Истина;
		
		Настройки.ПараметрыДанных.Элементы.Получить(1).Значение = КонецПериода;
		Настройки.ПараметрыДанных.Элементы.Получить(1).Использование = Истина;
		
		Элементы.МакетАнализ.УстановитьДействие("ОбработкаРасшифровки","МакетАнализОбработкаРасшифровкиЗоВСП");
	конецесли;
	
	//Помещаем в переменную данные о расшифровке данных - здесь ненужный пункт, но пусть будет.
	ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
	
	АдресДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки,УникальныйИдентификатор);
	//Формируем макет, с помощью компоновщика макета
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	
	//Передаем в макет компоновки схему, настройки и данные расшифровки
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
	
	
	//Выполним компоновку с помощью процессора компоновки
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
	
	//Очищаем поле табличного документа
	Результат = МакетАнализ;
	Результат.Очистить();
	
	//Выводим результат в табличный документ
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(Результат);
	
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
	
	Результат.ОтображатьЗаголовки = Ложь;
	Результат.ОтображатьСетку = Ложь;
	
КонецПроцедуры
Показать
9. aalu14 09.11.22 09:46 Сейчас в теме
Может быть, если у меня не получается реализовать стандартную расшифровку, кто-нибудь подскажет, как прочесть значение выбранной ячейки, а потом по этому значению я смогу открыть документ.
10. aalu14 09.11.22 09:57 Сейчас в теме
Cкорее всего надо расшифровывать не скд, а именно поле табличного документа, потому что контекстное меню в отчете выглядит как контекстное меню в табличном документе, а не как в отчете скд, оно и понятно, я же его в поле таб дока вывожу
Прикрепленные файлы:
11. aalu14 09.11.22 10:27 Сейчас в теме
Да, действительно, дело в том, что при выводе отчета в поле таб документа, все значения ячеек становятся стринговыми 🥴
Читаю текущую ячейку, получаю не ссылку, а текст. Придется парсить дату и номер документа из этого текста
12. aalu14 09.11.22 11:14 Сейчас в теме
Все решилось: получаю текущую ячейку, нахожу ссылку по полученному тексту, открываю форму. Спасибо!
Оставьте свое сообщение

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