|
СКД: Как сделать расшифровку при заданном предопределённом макете? | ☑ | ||
|---|---|---|---|---|
|
0
Лойфер
30.03.09
✎
11:26
|
Добрый день!
Стандартная расшифровка СКД (Системы Компоновки Данных) позволяет расшифровать любое поле табличного документа. Однако, стоит указать полю предопределённый макет с параметром - расшифровка сразу же пропадает. Книжка Хрусталёвой "Разработка сложных отчётов в 1С:Предприятии 8" касается только вершины айсберга. И в примерах с расшифровкой использует стандартные макеты :( Может Параметр надо как-то по особому обзывать или что-то эдакое писать в Параметре расшифровки (по идее там должен быть объект типа ИдентификаторРасшифровки)? Подскажите, пожалуйста! |
|||
|
1
IronDemon
30.03.09
✎
11:28
|
Программно выводишь?
|
|||
|
2
Лойфер
30.03.09
✎
11:32
|
Пробовал выводить НЕ программно. Только заводишь макет для поля - любого - расшифровка моментом отрубается.
|
|||
|
3
Krom
30.03.09
✎
11:35
|
(2), выводи программно
Перем ТЗ Экспорт; Процедура ВывестиОтчет() Экспорт ДанныеРасшифровки = Неопределено; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных.ВложенныеСхемыКомпоновкиДанных.Найти("ОсновнаяСхемаКомпоновкиДанных"), КомпоновщикНастроек.Настройки, ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, Новый Структура("Данные", ТЗ), ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.НачатьВывод(); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Пока ЭлементРезультата <> Неопределено Цикл ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); КонецПроцедуры Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка) //Перем ВыполненноеДействие; // //СтандартнаяОбработка = Ложь; //ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); //НастройкиРасшифровки = ОбработкаРасшифровки.Выполнить(Расшифровка, ВыполненноеДействие); // //Если НастройкиРасшифровки <> Неопределено Тогда // // Если ВыполненноеДействие = ДействиеОбработкиРасшифровкиКомпоновкиДанных.Упорядочить Тогда // // Если требется упорядочить - упорядочим в текущем отчете // КомпоновщикНастроек.ЗагрузитьНастройки(НастройкиРасшифровки); // ВывестиОтчет(); // Иначе // // При других действиях - создадим новый отчет, откроем форму, сформируем отчет в ней // КонецЕсли; // //КонецЕсли; КонецПроцедуры |
|||
|
4
Лойфер
30.03.09
✎
11:43
|
(3) Я верно понимаю, что заполнять Расшифровку параметра надо в этом цикле? :
ЭлементРезультата = ПроцессорКомпоновки.Следующий(); Пока ЭлементРезультата <> Неопределено Цикл ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); ЭлементРезультата = ПроцессорКомпоновки.Следующий(); КонецЦикла; |
|||
|
5
Лойфер
30.03.09
✎
11:57
|
Что-то у меня работает ни разу ваш код. Если заполнить ДанныеРасшифровки неопределённым, то отчёт вообще вылезет пустым. Где заполнять параметр расшифровки в переменной ЭлементРезультата тоже неясно.
Можно попросить пару комментариев к коду? |
|||
|
6
Лойфер
30.03.09
✎
12:09
|
Хотя насчёт ДанныеРасшифровки = Неопределено; я погорячился - эта строка бесполезна полностью. Одним словом приведённый код мне ничем не помог.
|
|||
|
7
Лойфер
30.03.09
✎
12:28
|
Да даже если бы можно было писать в ЭлементРезультата - это бы мне не сильно помогло. Выходит что в СКД либо красивое оформление либо расшифровка... либо у меня лыжи не едут :)
Неужели никто не писал ДЕЙСТВИТЕЛЬНО сложных отчётов в СКД?? |
|||
|
8
AquaKosh
30.03.09
✎
12:53
|
(7) Сложность-то бывает разная. :) У кого-то навороченное получение данных, но типовая расшифровка, а у кого-то - свои макеты. :)
|
|||
|
9
Лойфер
30.03.09
✎
12:58
|
(8) Ну, понятное дело, я не хотел ни кого обидеть :). Придётся опять изголяться - уберу предопределённые макеты для детальных полей-ресурсов и создам свой макет оформления. Может прокатит...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |