|
Колдунства с СКД кодом | ☑ | ||
---|---|---|---|---|
0
beholder13
12.02.13
✎
17:40
|
Всем приветы =)
Решил я тут одну задачу решить способом, который у меня никогда не получался и использовать в нем сразу два интересных приема - подключение к СКД внешней таблицы в качестве источника данных и инициализация этой самой СКД кодом. Макет создал, в нем все как надо, набор данных "Объект", к нему прописаны поля так же, как в исходной таблице и т.д., беда, как я предполагаю, в том, что я что-то недопрописал в коде. Отладчик показывает, что ничего не выводится, тогда как, по сути, я просто перекрашиваю траву в зеленый цвет, т.е. вывожу таблицу средствами СКД. Ну снаружи, в предприятии, у меня тупо чистый лист. Что я забыл указать? (Под грцппировки потом перепишу, мне бы хоть что-то получить на выходе) Код: ЭлементыФормы.РезультатОтчет.Очистить(); СхемаКомпоновкиДанных = ЭтотОбъект.ПолучитьМакет("СхемаКомпоновкиДанных"); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); ВнешниеНаборыДанных=Новый Структура; ВнешниеНаборыДанных.Вставить("ВнешняяТаблица",Результат); КомпоновщикМакета=Новый КомпоновщикМакетаКомпоновкиДанных; Настройки=КомпоновщикНастроек.ПолучитьНастройки(); МакетКомпоновки=КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,Настройки,); ПроцессорКомпоновки=Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,); ДокументРезультат=ЭлементыФормы.РезультатОтчет; ПроцессорВывода=Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.НачатьВывод(); Пока Истина Цикл ЭлементРезультата=ПроцессорКомпоновки.Следующий(); Если ЭлементРезультата=Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); ДокументРезультат.ОтображатьСетку=Ложь; ДокументРезультат.ОтображатьЗаголовки=Ложь; ДокументРезультат.Показать(); |
|||
1
beholder13
12.02.13
✎
17:42
|
скрины настроек макета надо, не?
|
|||
2
kabanoff
12.02.13
✎
17:52
|
Настройки компоновки задал?
|
|||
3
sivalor
12.02.13
✎
17:52
|
Вывод детальных записей прописал?
|
|||
4
beholder13
12.02.13
✎
17:56
|
(3) да, вывод там нарисовал, с ресурсами, с итогами и прочим (2) а чо где как? вот тут-то я думаю и прокололся
|
|||
5
kabanoff
12.02.13
✎
17:56
|
И переменная ДокументРезультат это у тебя что: ПолеТабличногоДокумента или ТабличныйДокумент?
|
|||
6
beholder13
12.02.13
✎
17:58
|
(5) поле конечно, вывод-то в поле из СКД идет прямиком оО
|
|||
7
kabanoff
12.02.13
✎
18:02
|
(6) Тогда нахрена там ДокументРезультат.Показать()? Оно и без него выведется.
|
|||
8
beholder13
12.02.13
✎
18:04
|
(7) не важно, это от старого варианта осталось, у меня в процессоре вывода пусто, это куда важнее
|
|||
9
kabanoff
12.02.13
✎
18:07
|
Настройки в СКД зашил или в предприятии задаешь?
|
|||
10
beholder13
13.02.13
✎
08:42
|
(9) в скд в макете сидят, т.е. по идее вылазят в этом моменте (или я что-то упускаю):
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); |
|||
11
Defender aka LINN
13.02.13
✎
08:45
|
(10) Бросай свои идеи, они тебя до добра не доведут
|
|||
12
beholder13
13.02.13
✎
08:50
|
(11) я сделаю это! я не позволю снова сломить себя и не стану прописывать построчный вывод с группировками напрямую! Я почти добрался до сути, осталась какая-то мелочь)))
|
|||
13
beholder13
13.02.13
✎
09:01
|
Вот проблема в более наглядном виде (первая итерация цикла; в таблице-источнике 168 строк данных):
http://s3.postimage.org/4t46i8ef7/image.png |
|||
14
Defender aka LINN
13.02.13
✎
09:18
|
(13) Ты, смотрю, намеков не понимаешь, да?
|
|||
15
beholder13
13.02.13
✎
09:23
|
(14) зависит от намеков)
|
|||
16
beholder13
13.02.13
✎
09:29
|
(14) И что-то мне подсказывает, что ты знаешь решение этой проблемы =)
|
|||
17
beholder13
13.02.13
✎
09:53
|
Ладно, сроки поджимают, так что макет табдока и построчный вывод без СКД (((
|
|||
18
beholder13
13.02.13
✎
09:53
|
правда итоги придется вручную считать
|
|||
19
Defender aka LINN
13.02.13
✎
09:56
|
(15) Ок, я открытым текстом говорю: "Инициализировать" не имеет ничего общего с "перенести настройки".
Хотя в твоем случае вообще компоновщик не нужен. |
|||
20
beholder13
13.02.13
✎
10:03
|
(19) Вооот, и я думаю, что где-то туплю =) Так как же мне собрать схему из макета правильно?
|
|||
21
beholder13
13.02.13
✎
11:20
|
Сделал еще проще, нашел способ переписать формирование таблицы под язык запросов и все на СКД посадил, сдал задачу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |