|
Получить стандартный отчет СКД в таблицу значений во внешней обработки | ☑ | ||
---|---|---|---|---|
0
AvtorVoprosa
18.05.17
✎
10:10
|
УТ 11.1.
Необходимо перехватить данные одного СКД отчета в таблицу значений либо дерево значений, неважно, главное получить строки отчета, не выводя сам отчет на экран. Все что пробую из интернета выводит пустые значения. Помогите |
|||
1
cw014
18.05.17
✎
10:12
|
А что пробуешь то?
|
|||
2
AvtorVoprosa
18.05.17
✎
10:13
|
(1) Всякое вот такое
Процедура СформироватьОтчетВТаблицуЗначений(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено) Экспорт Настройки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры |
|||
3
AvtorVoprosa
18.05.17
✎
10:13
|
Таких примеров кода в интернете довольно много, но мне не помогают
|
|||
4
cw014
18.05.17
✎
10:15
|
(3) А где ты это пробуешь?
|
|||
5
AvtorVoprosa
18.05.17
✎
10:16
|
(4) Модуль Формы внешней обработки
Вообще такой например код у меня &НаСервере Процедура ПолучитьНаСервере() Результат = Новый ДеревоЗначений; Отчет = РеквизитФормыВЗначение("Объект"); СКД = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); Результат = СформироватьОтчетВТаблицуЗначений(СКД); КонецПроцедуры &НаКлиенте Процедура Получить(Команда) ПолучитьНаСервере(); КонецПроцедуры &НаСервере Функция СформироватьОтчетВТаблицуЗначений(СКД) Экспорт СКД.Параметры.НачалоПериода.Значение = Дата("20170401"); СКД.Параметры.КонецПериода.Значение = Дата("20170430"); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СКД, КомпоновщикНастроек.Настройки, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ДеревоЗначений = Новый ДеревоЗначений; ПроцессорВывода.УстановитьОбъект(ДеревоЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); Возврат ДеревоЗначений; КонецФункции |
|||
6
AvtorVoprosa
18.05.17
✎
10:17
|
ОсновнаяСхемаКомпоновкиДанных имеется в обработке
|
|||
7
cw014
18.05.17
✎
10:17
|
В процедуре "ПолучитьНаСервере" в Результат что помещается?
|
|||
8
cw014
18.05.17
✎
10:18
|
"СКД.Параметры.НачалоПериода.Значение = Дата("20170401");"
А СКД.Параметры.НачалоПериода.Использование чему равно? |
|||
9
AvtorVoprosa
18.05.17
✎
10:19
|
(8) Авто
|
|||
10
Вафель
18.05.17
✎
10:19
|
параметры нужно задавать в компоновщик настроек
|
|||
11
Вафель
18.05.17
✎
10:20
|
ну и
КомпоновщикНастроек.ПолучитьНастройки() |
|||
12
cw014
18.05.17
✎
10:21
|
(9) Врешь, у типа Булево нет значения Авто
|
|||
13
AvtorVoprosa
18.05.17
✎
10:27
|
(12) Не поверишь, но у меня Авто
|
|||
14
AvtorVoprosa
18.05.17
✎
10:39
|
(11) Если вы имеете ввиду что это надо дописать, то все равно потом пусто
|
|||
15
AvtorVoprosa
18.05.17
✎
10:39
|
(12) Это не булевский тип, а ИспользованиеПараметраКомпоновкиДанных
|
|||
16
cw014
18.05.17
✎
10:40
|
(13) Все, понял. Ты зачем то ставишь параметр у схемы, а надо у настроек компоновки
|
|||
17
AvtorVoprosa
18.05.17
✎
10:43
|
(16) У какой переменной в моем случае, у КомпоновщикНастроек.Настройки или у КомпоновщикНастроек или где?)
|
|||
18
cw014
18.05.17
✎
10:44
|
НастройкиКомпоновкиДанных
|
|||
19
AvtorVoprosa
18.05.17
✎
10:47
|
(18) Переменная не определена (НастройкиКомпоновкиДанных)
|
|||
20
cw014
18.05.17
✎
10:47
|
(19) А инициализироать - не?
|
|||
21
AvtorVoprosa
18.05.17
✎
10:47
|
А, нашел
|
|||
22
AvtorVoprosa
18.05.17
✎
10:49
|
Что здесь выбрать, параметров даты не вижу http://s013.radikal.ru/i322/1705/36/0d278e94a6b8.png
|
|||
23
cw014
18.05.17
✎
10:50
|
"Все что пробую из интернета выводит пустые значения." - либо плохо пробуешь, либо плохо изучаешь
|
|||
24
cw014
18.05.17
✎
10:50
|
С этого момента уже начинается писанина кода за тебя
|
|||
25
AvtorVoprosa
18.05.17
✎
10:51
|
(24) Это философия, если решение простое и понятное то лучше сразу его дать, я считаю)
|
|||
26
cw014
18.05.17
✎
10:52
|
СКД простое и понятное для тех, кто его знает. Кто его не знает - пусть изучает, читает и вникает
|
|||
27
AvtorVoprosa
19.05.17
✎
10:30
|
Вроде бы готовый и правильный вариант
Компоновщик = Новый КомпоновщикНастроекКомпоновкиДанных; Компоновщик.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД)); Компоновщик.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию); //Настройки получим из настоящего отчета Компоновщик.Восстановить(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СКД, Компоновщик.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки); ТаблицаЗначений = Новый ТаблицаЗначений; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений); ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |