0
spiller26
07.10.15
✎
11:14
|
Отчет. Формирование СКД происходит на сервере, затем передает на клиент структуру "ТабличныйДокумент" и "ДанныеРасшифровкиКомпоновкиДанных" (для своей реализации расшифровки по ячейкам в зависимости от данных строк, колонок и т.д.).
На "Толстом" всё срабатывает, но "Тонком" ругается на "ДанныеРасшифровкиКомпоновкиДанных" с выдачей ошибки:
"Отсутствует отображение для типа '{;
Вопрос как передать с сервера в клиент "ДанныеРасшифровкиКомпоновкиДанных". Через временное хранилище или ...?
|
|
2
spiller26
07.10.15
✎
11:42
|
(1) не то
Вот текст
&НаКлиенте
Процедура СформироватьОтчет(Команда)
РезультатСтруктура = СформироватьОтчетНаСервере();
Если ТипЗнч(РезультатСтруктура) = Тип("Структура") Тогда
Результат = РезультатСтруктура.РезультатТД; //заполненный отчет СКД
дДанныеРасшифровки = РезультатСтруктура.дДанныеРасшифровки; //для расшифровки
КонецЕсли;
&НаСервере
Функция СформироватьОтчетНаСервере()
ОтчетОбъект = РеквизитФормыВЗначение("Отчет");
СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("МакетФинРез");
Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию);
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
#Region Установка_Параметров
//установка параметров
#EndRegion
//Установка структуры вывода
#Region Установка_Структуры_вывода
#EndRegion
Настройки = КомпоновщикНастроек.Настройки;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
// Инициализируем процессор СКД
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
РезультатТД = Новый ТабличныйДокумент;
ОтчетОбъект.СкомпоноватьРезультат(РезультатТД, ДанныеРасшифровки);
РезультатВыполнения = Новый Структура;
РезультатВыполнения.Вставить("РезультатТД", РезультатТД);
РезультатВыполнения.Вставить("дДанныеРасшифровки", ДанныеРасшифровки);
Возврат РезультатВыполнения;
КонецФункции
&НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ВыбранноеПоле = дДанныеРасшифровки.Элементы[Расшифровка].ПолучитьПоля()[0];
КонецПроцедуры
|
|