|
программно вывести макет скд | ☑ | ||
---|---|---|---|---|
0
Vvvvv
21.10.14
✎
11:20
|
Можете помочь с вопросом.
Есть обработка, в ней есть макет имеет тип "схема компоновки данных". Как программно, по нажатию на кнопку вывести отчет. Интересно как в обычных так и в управляемых формах. В интернете много чего нашел, но все не то. Искал по ключевым словам "КомпоновщикМакетаКомпоновки", "ПроцессорКомпоновкиДанных", "ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент". |
|||
1
Looser-1c
21.10.14
✎
11:21
|
Возьми книжку по СКД - там есть пример.
|
|||
2
Vvvvv
21.10.14
✎
11:25
|
(1) книга "разработка сложных отчетов", у меня дома есть, давно ее не читал, но не помню, что бы там был такой функционал описан. Там только про СКД и конструктор запросов.
|
|||
3
Любопытная
21.10.14
✎
11:26
|
(2) про программный вывод отчета там тоже есть
|
|||
4
Vvvvv
21.10.14
✎
11:28
|
Хорошо, а на данный момент есть у кого нибудь пример? А то книга дома.
|
|||
5
Godofsin
21.10.14
✎
11:29
|
СхемаСКД = ПолучитьМакет("Макет");
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; Отбор.Настройки.ПараметрыДанных.Элементы[0].Значение = НачалоДня(НачПериода); Отбор.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина; Отбор.Настройки.ПараметрыДанных.Элементы[1].Значение = КонецДня(КонПериода); Отбор.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаСКД,Отбор.Настройки,,,Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновки.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТЗ = ПроцессорВывода.Вывести(ПроцессорКомпоновки); |
|||
6
Любопытная
21.10.14
✎
11:29
|
||||
7
Vvvvv
21.10.14
✎
11:42
|
не, это не совсем то. Эти коды уже видел. Может в них чего не хватает?
|
|||
8
Любопытная
21.10.14
✎
11:43
|
(7) Что конкретно вы хотите сделать?
|
|||
9
Vvvvv
21.10.14
✎
11:47
|
(8) просто, хочу знать как программно вывести макет скд.
|
|||
10
Looser-1c
21.10.14
✎
11:48
|
(9) см (5)
|
|||
11
Vvvvv
21.10.14
✎
11:52
|
(10) в (5) не полный, например, какое значение Отбор имеет?
Я раньше такого не делал, и хочу знать как это делается. Надо хоть что то вывести. |
|||
12
Любопытная
21.10.14
✎
11:53
|
(11) Господи, ну ты этот код засунь в свою обработку и посмотри, что работает, что не работает. Что получается в результате, или ничего не получается. На общие вопросы обычно получаются общие ответы.
|
|||
13
Godofsin
21.10.14
✎
11:55
|
(11)
Отбор это реквизит типа компоновщик настроек компоновки данных. СхемаСКД = ПолучитьМакет("Макет"); АдресСхемыСКД=ПоместитьВоВременноеХранилище(СхемаСКД,Новый УникальныйИдентификатор()); Отбор.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(АдресСхемыСКД)); Отбор.ЗагрузитьНастройки(СхемаСкд.НастройкиПоУмолчанию); |
|||
14
Vvvvv
21.10.14
✎
12:05
|
Простите, но все равно не то, или я не понимаю.
Отбор - реквизит с типом: КомпоновщикНастроекКомпоновкиДанных. Ошибка: Индекс находится за границами массива, ссылается на: Отбор.Настройки.ПараметрыДанных.Элементы[0] |
|||
15
Godofsin
21.10.14
✎
12:11
|
(14) Ну так у тебя может и не быть параметров данных-то
|
|||
16
Лодырь
21.10.14
✎
12:14
|
||||
17
Web00001
21.10.14
✎
13:01
|
Мне помогла эта статья http://infostart.ru/public/80164/ полностью взял процедуру, она безотказная делает все что попросишь, хочешь выводи в макет, хочешь в ТЗ.
|
|||
18
Vvvvv
21.10.14
✎
14:44
|
Сделал то, что я хотел. Вот код, как он должен выглядеть:
СКД=ПолучитьМакет("МакетОдни"); НастройкиСКД=СКД.НастройкиПоУмолчанию; КомпоновщикМакетаКД=Новый КомпоновщикМакетаКомпоновкиДанных; МакетКД=КомпоновщикМакетаКД.Выполнить(СКД, НастройкиСКД); ПроцессорКД=Новый ПроцессорКомпоновкиДанных; ПроцессорКД.Инициализировать(МакетКД, ); //ВнешниеДанные); ГотовыйОтчет=Новый ТабличныйДокумент; ПроцессорВыводаКД=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВыводаКД.УстановитьДокумент(ГотовыйОтчет); ПроцессорВыводаКД.Вывести(ПроцессорКД); ГотовыйОтчет.ОтображатьСетку=Ложь; ГотовыйОтчет.ОтображатьЗаголовки=Истина; ГотовыйОтчет.Показать(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |