|
Отчет СКД на управляемых формах | ☑ | ||
---|---|---|---|---|
0
Natalika
06.08.15
✎
14:39
|
Есть отчет СКД на управляемых формах, построенный на объекте набора данных, который заполняется на форме отчета из запроса. Отчет формируется, теперь требуется обратиться к заполненной таблице набора данных СКД при нажатии на кнопку "Выгрузить". Как получить значения таблицы набора данных СКД?
Пишу: ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); СхемаКомпоновкиДанных = ОтчетОбъект.ПолучитьМакет("СхемаВыработкаКомплектовщиков"); Отладчиком проверяю, что хранится в СхемаКомпоновкиДанных.НаборыДанных[0] : есть Имя, ИмяОбъекта,ИсточникОбъекта и Поля. А можно ли получить саму таблицу значений объекта набора данных? Или можно другой вариант: создать для отчета ТабличнуюЧасть и при формировании отчета как заполнить эту ТабличнуюЧасть? ОтчетОбъект = РеквизитФормыВЗначение("Отчет"); ОтчетОбъект.ТаблЧасть.Очистить(); //работает ОтчетОбъект.ТаблЧасть = ТЗРезультатЗапроса; - выдает ошибку "Поле объекта недоступно для записи (ТаблЧасть)" Помогите, пожалуйста. Никак не получается самой справиться с этой задачей. Заранее спасибо. |
|||
1
vicof
06.08.15
✎
14:41
|
ОтчетОбъект.ТаблЧасть.Загрузить(ТЗРезультатЗапроса.Выгрузить())
|
|||
2
Nuobu
06.08.15
✎
14:43
|
НастройкиКомпоновки = Объект.Компоновщик.ПолучитьНастройки();
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаРезультатОтбора, НастройкиКомпоновки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ТаблицаВывода = ТаблицаРезультатОтбор.Выгрузить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); |
|||
3
Natalika
06.08.15
✎
15:14
|
(1) ТаблЧасть остается пустой при нажатии на кнопку "Выгрузить"
(2) Ошибка "Не найден внешний набор данных "ТаблицаРез", хотя если посмотреть в отладчике в Макете компоновки есть наборДанных1 с имя объекта есть "ТаблицаРез". Процедура выполняется на сервере. |
|||
4
vicof
06.08.15
✎
15:25
|
(3) Значит,а ТЗРезультатЗапроса не было данных
|
|||
5
Nuobu
06.08.15
✎
15:32
|
(3) &НаКлиенте
Процедура Команда1(Команда) ВЫполнитьНаСервере(); КонецПроцедуры &НаСервере Процедура ВыполнитьНаСервере() НастройкиКомпоновки = Отчет.КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; ОтчетЗначение = РеквизитФормыВЗначение("Отчет"); МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(ОтчетЗначение.СхемаКомпоновкиДанных, НастройкиКомпоновки,,, Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений")); ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений; ТаблицаРезультат = ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных); КонецПроцедуры |
|||
6
Natalika
06.08.15
✎
15:33
|
(4) Извиняюсь, все заполнилось. У меня просто наименования полей не совпали из-за синтаксической ошибки. Все исправила, заработало!!! Спасибо!!! Буду пользоваться этим вариантом. Он оказался проще!!!
|
|||
7
Natalika
06.08.15
✎
15:38
|
(5) У меня все так же написано, но не работает. Как будет время я разберусь. Всем спасибо большое!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |