|
1с8.2 Управляемое приложение: необходимо вывести на экран табличный документ | ☑ | ||
---|---|---|---|---|
0
DenAst
06.06.12
✎
09:09
|
Добрый день, коллеги!
Начал осваивать управляемые приложения на 1с:8.2 и первая задача - это перевести сложный отчет на упр формы, который ранее написан на обычном приложении. Форму нарисовал, получение данных запроса сделал, результат получил. Отчет сложный, компоновал несколько запросов и получение различных результатов различными методами, но не в этом суть. Как итог результат вывел в вирт таблицу значений, которую теперь надо вывести на экран. Точнее хочу вывести в табличный документ как отдельным окном, чтобы при необходимости мог поменять данные в настройках отчета и вывести второй вариант отдельным окном, не прибегая ни к каким сохранениям предыдущего варианта в Эксель и проч. Вариант размещения табличного документа на форме отчета реализовал - так не устраивает, надо отдельным окном. СКД тоже не устраивает. пробовал сделать по методу обычного приложения, но сформированная печатная форма не выходит на экран вообще. Вот пример того, что пытаюсь реализовать: &НаСервере Процедура СформироватьНаСервере() //большой блок получения данных запросами и различными переборами с вызовами других процедур, скидывание все в вирт таблицу значений с специальными сортировками Внотчет = ВнешниеОтчеты.Создать("ОтчетПроба"); Макет = Внотчет.ПолучитьМакет("Отчет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ТабДок = Новый ТабличныйДокумент; ТабДок.Очистить(); ОбластьШапка.Параметры.КонДата = Отчет.КонДата; ТабДок.Вывести(ОбластьШапка); //вывод на экран ТабДок.ФиксацияСверху = 6; ТабДок.ТолькоПросмотр = Истина; ТабДок.ОтображатьСетку = Истина; ТабДок.АвтоМасштаб = Истина; ТабДок.ОтображатьЗаголовки = Истина; ТабДок.Показать("План-Отчет"); КонецПроцедуры &НаКлиенте Процедура Сформировать(Команда) СформироватьНаСервере(); КонецПроцедуры |
|||
1
ДенисЧ
06.06.12
✎
09:13
|
&НаСервере
Функция СфоормироватьОтчет() //тут код заполнения Возврат табДок; КонецФункции &НаКлиенте Процедура Сформировать(Команда) рез = СфоормироватьОтчет(); Если рез <> Неопределено Тогда рез.Показать(); Иначе Сообщить("облом-сЪ"); КонецЕсли; КонецПроцедуры |
|||
2
Азат
06.06.12
✎
09:20
|
(0) такое ощущение, что автор не до конца улавливает разницу между словами "Клиент" и "Сервер"... Ибо смысл показывать таб док на сервере? его как раз надо сначала на клиента получить
|
|||
3
DenAst
06.06.12
✎
09:27
|
1) спасибо, так получилось
&НаСервере Функция СформироватьОтчет() //большой блок получения данных запросами и различными переборами с вызовами других процедур, скидывание все в вирт таблицу значений с специальными сортировками Внотчет = ВнешниеОтчеты.Создать("ОтчетПроба"); Макет = Внотчет.ПолучитьМакет("Отчет"); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ТабДок = Новый ТабличныйДокумент; ТабДок.Очистить(); ОбластьШапка.Параметры.КонДата = Отчет.КонДата; ТабДок.Вывести(ОбластьШапка); //вывод на экран ТабДок.ФиксацияСверху = 6; ТабДок.ТолькоПросмотр = Истина; ТабДок.ОтображатьСетку = Истина; ТабДок.АвтоМасштаб = Истина; ТабДок.ОтображатьЗаголовки = Истина; //ТабДок.Показать("План-Отчет"); Возврат табДок; КонецФункции &НаКлиенте Процедура Команда2(Команда) рез = СформироватьОтчет(); Если рез <> Неопределено Тогда рез.Показать(); Иначе Сообщить("облом-сЪ"); КонецЕсли; КонецПроцедуры 2) теперь все ли правильно? или строки: ТабДок = Новый ТабличныйДокумент; ТабДок.Очистить(); следует на клиенте вызывать? |
|||
4
gosn1ck
06.06.12
✎
09:28
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |