|
СКД, программный вывод, МАКЕТ не заполняется | ☑ | ||
---|---|---|---|---|
0
Крутил_
Вертел_1С 23.04.13
✎
02:36
|
Привет, не думал что когда то задам вопрос по СКД т.к. опыта там очень мног, НО появилась необходимость.
Есть СхемаКомпоновкиДанных, получаю эту схему, обрабатываю и вывожу. В этйо схеме есть группировка + макет, то есть своя шапка. До этого делал всегда работало, но щас когда выводит свою шапку НЕ заполняются параметры шапки, хотя они указаны. То-есть если делать отчет на основании СКД, то всё отлично работает, если программно вывод делать, то параметры в своём макете на заполняются. Вопрос: Как победить? Результат = Новый ТабличныйДокумент; СхемаКомпоновкиДанных = ПолучитьМакет("Компоновка"); КомпоновщикНастроекКомпоновкиДанных = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроекКомпоновкиДанных.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроекКомпоновкиДанных.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", СсылкаНаОбъект); КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки()); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ТабДок = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДок = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ТабДок.Показать(); |
|||
1
Крутил_
Вертел_1С 23.04.13
✎
02:38
|
Почему то не отрабатывает заполнение своей части макета, может нужно вызвать ещё обработчик? даже использую примитивный запрос, выбираем док по ссылке и ставим в макет его номер, ошибок нет, вывода номера нет.
Опять же обратите внимание если автоматом вызывать схему, то всё норм, дело именно в программном вызове |
|||
2
Cube
23.04.13
✎
04:51
|
Хм... А разве так можно?
КомпоновщикНастроекКомпоновкиДанных.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("Ссылка", СсылкаНаОбъект); |
|||
3
Крутил_
Вертел_1С 23.04.13
✎
04:53
|
(2) да)) ссылка передаётся нормально, в отчете в шапке выводит Параметры: Ссылка - документ......
то-есть параметр заполняется правильно, тем более в запросе другом идет отбор по параметру ссылка и он все верно отбирает. |
|||
4
Крутил_
Вертел_1С 23.04.13
✎
04:55
|
То-есть у меня выводится через СКд шапка(мой макет) и таблица автоматом, таблица заполняется верно по документу(параметр ссылка) но шапка не видит вообще реквизиты некакие(хотя всё стоит на закладке макеты - параметры)
|
|||
5
Cube
23.04.13
✎
04:56
|
(3) "да))"
Мда... А я всё "по-старинке" в три строки каждый параметр устанавливаю... :) |
|||
6
Cube
23.04.13
✎
04:57
|
(4) В смысле "шапка не видит вообще реквизиты некакие"?
|
|||
7
Крутил_
Вертел_1С 23.04.13
✎
05:00
|
(6) ну в конструкторе СКД.
Закладка - Макеты, там добавлен макет и привязан к группировке, которая выводится. Когда мы делаем привязку макета к группировке то в нижней левой таблице "параметры макета" заполняются параметры найденные на моём макете, а там уже ставлю от куда брать данные. В обычных ситуация всегда пшло(когда СКД автоматом код выполняет свой), щас эти параметры пустые всегда, пробовал указать им разный путь к данным, без толку. Через пол часа ещё попробую варианты. |
|||
8
Cube
23.04.13
✎
05:01
|
Попробуй вместо
МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекКомпоновкиДанных.ПолучитьНастройки()); написать МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроекКомпоновкиДанных.Настройки); |
|||
9
Cube
23.04.13
✎
05:03
|
И вместо
ТабДок = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ТабДок = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ТабДок.Показать(); написать ТабДок = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТабДок); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); ТабДок.Показать(); |
|||
10
Cube
23.04.13
✎
05:04
|
(9) Хотя... Это можно не делать...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |