|
Расшифровка в СКД | ☑ | ||
---|---|---|---|---|
0
leoway
23.04.13
✎
14:57
|
Всем доброго времени суток. Возник вопрос по расшифровке данных в отчете. Прошу помощи.
Вызываю процедуру (см. ниже) из документа. Создал в документе поле "ТабличныйДокумент" - "Календарь" и заполняю его данными из отчета "ГрафикПоДоговоруПоРегистр" построенного на СКД. Вопрос следующий: почему-то в место расшифровки выдаются числа. Как поправить? Заранее спасибо. &НаКлиенте Процедура ГруппаСтраницыПриСменеСтраницы(Элемент, ТекущаяСтраница) Календарь.Очистить(); Календарь = ПечатьГрафикПоДоговору(); Календарь.ПоказатьУровеньГруппировокСтрок(1); Календарь.ПоказатьУровеньГруппировокСтрок(2); КонецЕсли; КонецПроцедуры &НаСервере Функция ПечатьГрафикПоДоговору() ДокументОбъект = РеквизитФормыВЗначение("Объект"); СхемаКомпоновкиДанных = Отчеты.ГрафикПоДоговоруПоРегистр.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); //СхемаКомпоновкиДанных = УстановитьСхему(); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; Настройки.ПараметрыДанных.Элементы[0].Значение = ?(ЗначениеЗаполнено(ДокументОбъект.ОсновнойДоговор), ДокументОбъект.ОсновнойДоговор, ДокументОбъект.Ссылка); //Настройки = УстановитьНастройки(СхемаКомпоновкиДанных); //КомпоновщикНастроек.ЗагрузитьНастройки(Настройки); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; //ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки); ДокументРезультат = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Возврат ДокументРезультат; КонецФункции |
|||
1
cw014
23.04.13
✎
14:57
|
Не числа, а Идентификаторы расшифровки результата.
|
|||
2
cw014
23.04.13
✎
14:59
|
Точнее это тип ИдентификаторРасшифровкиКомпоновкиДанных
|
|||
3
cw014
23.04.13
✎
14:59
|
ОписаниеОбработкиРасшифровкиКомпоновкиДанных.По умолчанию (DataCompositionDetailsProcessDescription.Default)
ОписаниеОбработкиРасшифровкиКомпоновкиДанных (DataCompositionDetailsProcessDescription) Основной Синтаксис: Новый ОписаниеОбработкиРасшифровкиКомпоновкиДанных(<Данные>, <Идентификатор>, <ПрименяемыеНастройки>) Параметры: <Данные> (необязательный) Тип: Строка; Неопределено. Адрес хранилища, из которого нужно получать данные расшифровки. <Идентификатор> (необязательный) Тип: ИдентификаторКомпоновкиДанных; Неопределено. Идентификатор расшифровки. <ПрименяемыеНастройки> (необязательный) Тип: Настройки компоновки данных; Неопределено. Настройки, применяемые для расшифровки. Описание: Создает описание обработки расшифровки компоновки данных |
|||
4
cw014
23.04.13
✎
14:59
|
В общем поколупайся в СП - вдруг что умное вычитаешь
|
|||
5
leoway
23.04.13
✎
15:05
|
а какой-нибудь пример можно?
|
|||
6
cw014
23.04.13
✎
15:06
|
О ты какой. Я "какой нибудь" пример писал около двух суток
|
|||
7
cw014
23.04.13
✎
15:07
|
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
ТекРасшифровка = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ТекущаяРасшифровка = ДанныеРасшифровки.Элементы[Расшифровка]; РодителиТекущейРасшифровки = ТекущаяРасшифровка.ПолучитьРодителей(); ПоляТекущейРасшифровки = ТекущаяРасшифровка.ПолучитьПоля(); Если ПоляТекущейРасшифровки.Количество() > 0 Тогда ПолеТекущейРасшифровки = ПоляТекущейРасшифровки[0]; Иначе ПолеТекущейРасшифровки = Неопределено; КонецЕсли; |
|||
8
leoway
23.04.13
✎
15:09
|
вопрос тогда: почему теряются расшифровка?
|
|||
9
leoway
23.04.13
✎
15:09
|
(7) спасибо.
|
|||
10
cw014
23.04.13
✎
15:12
|
(9) Спасибо много - 300 р в самый раз
|
|||
11
leoway
06.05.13
✎
11:33
|
Всем доброго времени суток. Потихоньку разобрался как расшифровывать данные в отчет. Ниже приводу пример, как это можно реализовать.
Дополнительно в реквизитом формы добавил: мДанныеРасшифровки, АдресХранилищаСКД - тип "Строка" 100 символов. Для передачи данных с клиента на сервер. Надеюсь, что кому-то помог своим комментарием. P.S. (10) 300р. это что-то много для форума, где все призваны друг другу помочь. Хочешь помочь помогай, не хочешь не разводи флуд. &НаКлиенте Процедура ОтчетНаш(Команда) РезультатОтчет = ОтчетНашПечать(); КонецПроцедуры &НаСервере Функция ОтчетНашПечать() СхемаКомпоновкиДанных = Отчеты.МестаРаботы.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Настройки = СхемаКомпоновкиДанных.НастройкиПоУмолчанию; ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки,, ДанныеРасшифровки); ДокументРезультат = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); АдресХранилищаСКД = ПоместитьВоВременноеХранилище(СхемаКомпоновкиДанных, Новый УникальныйИдентификатор); мДанныеРасшифровки = ПоместитьВоВременноеХранилище(ДанныеРасшифровки, Новый УникальныйИдентификатор); Возврат ДокументРезультат; КонецФункции &НаКлиенте Процедура РезультатОтчетОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) Перем ВыполненноеДействие, ПараметрВыполненногоДействия; СтандартнаяОбработка = Ложь; ДоступныеДействия = Новый Массив; ДоступныеДействия.Добавить(ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение); ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(мДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресХранилищаСКД)); ОбработкаРасшифровки.ВыбратьДействие(Расшифровка, ВыполненноеДействие, ПараметрВыполненногоДействия, ДоступныеДействия); Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.ОткрытьЗначение Тогда ОткрытьЗначение(ПараметрВыполненногоДействия); КонецЕсли; КонецПроцедуры |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |