Расшифровка отчета скд, который выводится в поле табличного документа
Добрый день, подскажите, как реализовать простейшую расшифровку отчета скд, но который выведен в поле табличного документа. То есть реквизита ДанныеРасшифровки нет, в форме отчета автоматически создается данный реквизит, или же можно в свойствах формы назначить. При формировании скд объявляю ДанныеРасшифровки, но в событие ОбработкаРасшифровки не попадают. На просторах интернета нашел решение, которое не работает - создать реквизит и:
но так не работает...
при попытке прочесть значение ячейки выдается ошибка Недопустимое значение параметра (параметр номер '1') - ругается на расшифровку
Задача простая, в отчете скд выводится поле с ссылкой на документ, необходимо открывать этот документ из отчета.
Заранее спасибо!
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
АдресДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки,УникальныйИдентификатор);
но так не работает...
при попытке прочесть значение ячейки выдается ошибка Недопустимое значение параметра (параметр номер '1') - ругается на расшифровку
Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
Поля = Данные.Элементы.Получить(Расшифровка).ПолучитьПоля();
Задача простая, в отчете скд выводится поле с ссылкой на документ, необходимо открывать этот документ из отчета.
Заранее спасибо!
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Подскажите, кто-нибудь пожалуйста, как мне решить проблему.
Вывожу отчет вот так, подхватывая макет скд:
Вывожу отчет вот так, подхватывая макет скд:
&НаСервере
Процедура ВывестиОтчет(НазваниеМакета,НачалоПериода,КонецПериода)
//Получаем схему из макета
СхемаКомпоновкиДанных = ПолучитьМакет(НазваниеМакета);
//создадим компоновщик настроек и загрузим настройки по умолчанию, вместо настроек по умолчанию можно использовать восстановленные настройки
КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
//установка параметров отчета, без КомпоновщикНастроекКомпоновкиДанных делать это гораздо сложнее
Настройки = КомпоновщикНастроек.Настройки;
ПараметрПериод = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
Если ПараметрПериод <> Неопределено Тогда
ПараметрПериод.Значение.ДатаНачала=НачалоДня( НачалоПериода);
ПараметрПериод.Значение.ДатаОкончания=КонецДня( КонецПериода);
КонецЕсли;
ПараметрНачалоПериода = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("НачалоПериода"));
Если ПараметрНачалоПериода <> Неопределено Тогда
ПараметрНачалоПериода.Значение = НачалоДня(НачалоПериода);
КонецЕсли;
ПараметрКонецПериода = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("КонецПериода"));
Если ПараметрКонецПериода <> Неопределено Тогда
ПараметрКонецПериода.Значение = КонецДня(КонецПериода);
КонецЕсли;
Если НазваниеМакета = "ЗоВСП" тогда
Настройки.ПараметрыДанных.Элементы.Получить(3).Значение = ТекущаяДата();
Настройки.ПараметрыДанных.Элементы.Получить(3).Использование = Истина;
Настройки.ПараметрыДанных.Элементы.Получить(0).Значение = НачалоПериода;
Настройки.ПараметрыДанных.Элементы.Получить(0).Использование = Истина;
Настройки.ПараметрыДанных.Элементы.Получить(1).Значение = КонецПериода;
Настройки.ПараметрыДанных.Элементы.Получить(1).Использование = Истина;
Элементы.МакетАнализ.УстановитьДействие("ОбработкаРасшифровки","МакетАнализОбработкаРасшифровкиЗоВСП");
конецесли;
//Помещаем в переменную данные о расшифровке данных - здесь ненужный пункт, но пусть будет.
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
АдресДанныхРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки,УникальныйИдентификатор);
//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
//Передаем в макет компоновки схему, настройки и данные расшифровки
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровки);
//Выполним компоновку с помощью процессора компоновки
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
//Очищаем поле табличного документа
Результат = МакетАнализ;
Результат.Очистить();
//Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Результат.ОтображатьЗаголовки = Ложь;
Результат.ОтображатьСетку = Ложь;
КонецПроцедуры
Показать
Cкорее всего надо расшифровывать не скд, а именно поле табличного документа, потому что контекстное меню в отчете выглядит как контекстное меню в табличном документе, а не как в отчете скд, оно и понятно, я же его в поле таб дока вывожу
Прикрепленные файлы:
Да, действительно, дело в том, что при выводе отчета в поле таб документа, все значения ячеек становятся стринговыми 🥴
Читаю текущую ячейку, получаю не ссылку, а текст. Придется парсить дату и номер документа из этого текста
Читаю текущую ячейку, получаю не ссылку, а текст. Придется парсить дату и номер документа из этого текста
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот