Собираю данные для отчета отдельно в ТЗ.
Если открываю отчет через Файл - Открыть. Все замечательно все работает. Но как только помещаю отчет в "Дополнительные отчеты и обработки" расшифровка перестает работать. Данные из хранилища пусты.
>ПолучитьИзВременногоХранилища(ДанныеРасшифровки.Настройки.ДополнительныеСвойства.АдресВнешнегоНабораДанных);
Я так понимаю, что отчет делается в режиме фонового задания и данные в хранилище формируются из под фонового задания.
Как правильно передать данные?
Если ЭтоРасшифровка Тогда
ВнешниеНаборыДанных = ПолучитьИзВременногоХранилища(ДанныеРасшифровки.Настройки.ДополнительныеСвойства.АдресВнешнегоНабораДанных);
иначе
ВнешниеНаборыДанных = Новый Структура("тзРезультат", ПолучитьТЗРезультат());
ДанныеРасшифровки.Настройки.ДополнительныеСвойства.Вставить("АдресВнешнегоНабораДанных", ПоместитьВоВременноеХранилище(ВнешниеНаборыДанных, Новый УникальныйИдентификатор));
КонецЕсли;
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки);
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
В СП к методу ПоместитьВоВременноеХранилище написано как можно получить данные из ФЗ.
Но не понятно как это можно тут применить.
По логике работы отчета он при каждом запуске должен заново получать все данные для формирования. В том числе эту ТЗ. Надо передавать не адрес хранилища, а параметры для формирования этой ТЗ
(1) Зачем? Это расшифровка текущего сформированного отчета по какой ни будь группировке. Зачем мне выбирать данные снова?
(2) Нет. Формы то нет. Отчет это просто СКД + ПриКомпоновкеРезультата()
Сделал через параметр СКД. В него сохраняю данные. Но мне кажется это как то некрасиво.
Если ЭтоРасшифровка Тогда
ВнешниеНаборыДанных = КомпоновкаДанныхКлиентСервер.ПолучитьПараметр(ДанныеРасшифровки.Настройки,"НаборДанных").Значение.Получить();
иначе
ВнешниеНаборыДанных = Новый Структура("тзРезультат", ПолучитьТЗРезультат());
КомпоновкаДанныхКлиентСервер.УстановитьПараметр(ДанныеРасшифровки.Настройки,"НаборДанных",Новый ХранилищеЗначения(ВнешниеНаборыДанных));
ДанныеРасшифровки.Настройки.ДополнительныеСвойства.Вставить("ЭтоРасшифровка", Истина);
КонецЕсли;
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший