Как вывести данные расшифровки на макет

1 отзывFavoriteLoadingВ закладки

Добрый день.

Для решения определенной задачи мне потребовалось хранить запрос в общем модуле. Затем он используется для нескольких отчетов.

Далее при программном выводе отчета происходит подключение внешней таблицы значений. Все получилось и вывелось, но расшифровки у записей нет. Никак не могу понять почему. Смотрел в автоматически созданной форме. Там используется реквизит формы “ДанныеРасшифровки”. Как я понял это ссылка на какое-то временное хранилище с данными. Поясните, пожалуйста, эту тонкость.

Ниже привожу пример программного вывода СКД:

“&НаСервере
Процедура ФормированиеСКД(Таб, ТипПрогноза=Неопределено)

//Получаем схему из макета
Если ФильтрПоказыватьТекущееМестоположение Тогда

СхемаКомпоновкиДанных = Отчеты.ПрогнозНаличияТСТЕ.ПолучитьМакет(“ТекущееМесторасположение”);

КонецЕсли;

Если ФильтрПоказыватьПрогнозМестоположения Тогда

СхемаКомпоновкиДанных = Отчеты.ПрогнозНаличияТСТЕ.ПолучитьМакет(“Прогноз”);

КонецЕсли;

//Из схемы возьмем настройки по умолчанию
Если ТипПрогноза = Неопределено Тогда

Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию;

Иначе

Если ТипПрогноза = “ТЕ” Тогда

Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.ПрогнозПоТЕ.Настройки;

ИначеЕсли ТипПрогноза = “ТС” Тогда

Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.ПрогнозПоТС.Настройки;

КонецЕсли;

КонецЕсли;

//Помещаем в переменную данные о расшифровке данных
Расшифровка = Новый ДанныеРасшифровкиКомпоновкиДанных;

//Формируем макет, с помощью компоновщика макета
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

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

ВнешниеПараметры = Новый Структура;
Если НЕ ТипПрогноза=Неопределено Тогда

Если ТипПрогноза=”ТЕ” Тогда
Таб.Колонки.Добавить(“ТипТС”);
Таб.Колонки.Добавить(“ТС”);
ИначеЕсли ТипПрогноза=”ТС” Тогда
Таб.Колонки.Добавить(“ТипТЕ”);
Таб.Колонки.Добавить(“ТЕ”);
КонецЕсли;

КонецЕсли;
ВнешниеПараметры.Вставить(“Таб”, Таб);

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

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

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных, Истина);

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

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Один комментарий

  1. Я все таки нашел ответ на этот вопрос. Оказалось, что для адекватной расшифровки требовалось сохраниять во временном хранилище схему компановки и расшифровку. Вот что пришлось добавить в выше приденный текст кода:
    “URLСхемы = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Новый УникальныйИдентификатор());
    АдресРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, Новый УникальныйИдентификатор());”

    Далее пришлось переписать обработку расшифровки. Пример взят с mista.ru:
    “&НаКлиенте
    Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

    Перем ВыполненноеДействие, ПараметрВыполненногоДействия;

    СтандартнаяОбработка = Ложь;
    ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(АдресРасшифровки,
    Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));

    ДоступныеДействия = Новый Массив;
    ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение);

    ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыполненноеДействие, ПараметрВыполненногоДействия, ДоступныеДействия);

    ОткрытьЗначение(ПараметрВыполненногоДействия);

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

Оставить комментарий

RSSКомментарии в RSS

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.