![]() |
|
Программный вывод отчета на скд (без макета) | ☑ | ||
---|---|---|---|---|
0
gabd_marat
04.07.17
✎
00:36
|
Народ подскажите как программно вывести отчет на скд?
Есть скд (набор данных запрос без макета), нужно программно вывести отче, смотрел примеры не помогает. Скорее всего не могу понять саму логику В модуле формы отчета: &НаСервере Процедура СформироватьОтчетНаСервере() СхемаКомпоновкиДанных = Отчеты.МТ_ОстаткиТоваровНаСкладах.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных"); КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных; УстановитьЗначениеПараметраСКДОрганизация("Организация"); УстановитьЗначениеПараметраСКДСклад("Склад"); УстановитьЗначениеПараметраСКДКонецПериода("КонецПериода"); КомпоновщикНастроек.Инициализировать( Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных)); КомпоновщикНастроек.ЗагрузитьНастройки(СхемаКомпоновкиДанных.НастройкиПоУмолчанию); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(),,, Тип("ГенераторМакетаКомпоновкиДанных")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; Результат = Новый ТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры &НаСервере Процедура УстановитьЗначениеПараметраСКДСклад(НазваниеПараметра,ЗначениеПараметра = Неопределено) ПараметрСКД = Отчет.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("Склад"); ПараметрСКД.Использование = Истина; Если ЗначениеПараметра = Неопределено Тогда ПараметрСКД.Значение = Отчет["Склад"]; Иначе ПараметрСКД.Значение = ЗначениеПараметра; КонецЕсли; КонецПроцедуры При компоновке результата: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки,,, Тип("ГенераторМакетаКомпоновкиДанных ")); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; Результат = Новый ТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ДокументРезультат.Вывести(Результат); КонецПроцедуры |
|||
1
gabd_marat
04.07.17
✎
00:37
|
Скопировал с инета, и изменил под свою задачу, не выводит ничего.
|
|||
2
gabd_marat
04.07.17
✎
00:38
|
Пробывал без процедуры при компоновке результата, все равно не выводит ничего
|
|||
3
gabd_marat
04.07.17
✎
00:39
|
Где можно почитать что бы понять как программно вывести отчет на скд?
|
|||
4
PCcomCat
04.07.17
✎
00:43
|
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаНачалаАнализа")); Если Параметр <> Неопределено Тогда Параметр.Значение = ДатаНачала; Параметр.Использование = Истина; КонецЕсли; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ДатаОкончанияАнализа")); Если Параметр <> Неопределено Тогда Параметр.Значение = КонецДня(ДатаОкончания); Параметр.Использование = Истина; КонецЕсли; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПериодАнализаНачалоДня")); Если Параметр <> Неопределено Тогда Параметр.Значение = НачалоДня(ДатаОкончания); Параметр.Использование = Истина; КонецЕсли; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ПериодАнализаГраницаКонец")); Если Параметр <> Неопределено Тогда ГраницаОкончания = Новый Граница(КонецДня(ДатаОкончания),ВидГраницы.Включая); Параметр.Значение = ГраницаОкончания; Параметр.Использование = Истина; КонецЕсли; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ТекущаяДата")); Если Параметр <> Неопределено Тогда Параметр.Значение = ТекущаяДата(); Параметр.Использование = Истина; КонецЕсли; Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СортироватьПоДатеОтгрузки")); Если Параметр <> Неопределено Тогда Параметр.Значение = СортироватьПоДатеОтгрузки; Параметр.Использование = Истина; КонецЕсли; ДанныеРасшифровкиОтчета = Новый ДанныеРасшифровкиКомпоновкиДанных; КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.Настройки, ДанныеРасшифровкиОтчета); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровкиОтчета); ТаблицаРезультата = Новый ТабличныйДокумент; ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ТаблицаРезультата); ПроцессорВывода.Вывести(ПроцессорКомпоновки); ЭлементыФормы.Результат.Очистить(); ЭлементыФормы.Результат.Вывести(ТаблицаРезультата); ЭлементыФормы.Результат.ТолькоПросмотр = Истина; ЭлементыФормы.Результат.ПоказатьУровеньГруппировокСтрок(0); ЭлементыФормы.Результат.ФиксацияСлева = 1; ЭлементыФормы.Результат.ФиксацияСверху = 6; ТаблицаРезультата.Очистить(); |
|||
5
gabd_marat
04.07.17
✎
01:16
|
(4) После нажатия на кнопку, пишет отчет не свормирован, и просто макет пустой
|
|||
6
PCcomCat
04.07.17
✎
01:19
|
(5) Отладчиком смотри. Может по схеме действительно пустой отчет. Проверь результат запроса. Плюс группировки должны быть в схеме - одного запроса не достаточно.
|
|||
7
gabd_marat
04.07.17
✎
09:23
|
2 задача состоит в том чтобы группировки формировались программно а не через скд.
Сделал форму по которой выбираются реквизиты, по нажатию выбрать и закрыть выбранные реквизиты записываются в реквизит отчета(ТЗ), нужно по реквизитам в ТЗ создать отчет с группировкой. Как программно создать группировки? |
|||
8
gabd_marat
04.07.17
✎
09:24
|
(6) 2 задача состоит в том чтобы группировки формировались программно а не через скд.
Сделал форму по которой выбираются реквизиты, по нажатию выбрать и закрыть выбранные реквизиты записываются в реквизит отчета(ТЗ), нужно по реквизитам в ТЗ создать отчет с группировкой. Как программно создать группировки? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |