|
Варианты Отображения отчета (Рабочий Стол / через кнопку выбора) | ☑ | ||
---|---|---|---|---|
0
ixilimuse
12.06.13
✎
10:05
|
Доброго времени суток, коллеги!
Продолжаю углубляться в Управляемые формы и тонкий клиент. Столкнулся с проблемкой. Ответа не нашел. Был похожий вопрос: v8: УФ. Сформировать отчёт при открытии, только на рабочем столе Но если честно не нашел в этой теме ответа. Который бы понял. И который бы сработал. Суть задачи такова: Есть отчет. Его форма отображается на Рабочем Столе. Хочу определить в какой момент форма открывается на Рабочем столе, а в какой момент она открыта пользователем в отдельной форме. В зависимости от этого я хочу либо автоматически вызывать формирование и скрывать кнопку "Сформировать" с параметрами такими как "Дата". Либо не формировать при открытии, а давать пользователю возможность настроить параметры и нажать кнопку, прежде чем он увидит результат. Заранее спасибо ) |
|||
1
Wobland
12.06.13
✎
10:11
|
в четвёртом посте всё написано
|
|||
2
ixilimuse
12.06.13
✎
10:27
|
ЭтаФорма.Окно = Неопределено
|
|||
3
ixilimuse
12.06.13
✎
10:31
|
Попытался вот так:
&НаСервере Функция ПолучитьФормуОтчета() Возврат Отчеты.ДВК_Сегодня.ПолучитьФорму("ФормаОтчета"); КонецФункции &НаКлиенте Процедура ПриОткрытии(Отказ) ДатаСведений = ТекущаяДата(); КоличествоДней = 7; ФормаОтчета = ПолучитьФормуОтчета(); Если ФормаОтчета.Окно.Основное Тогда СформироватьОтчет(ДатаСведений); ТабДок.Показать(); КонецЕсли; КонецПроцедуры Но ругается на "ПолучитьФорму".. {Отчет.ДВК_Сегодня.Форма.ФормаОтчета.Форма(15)}: Ошибка при вызове метода контекста (ПолучитьФорму) Возврат Отчеты.ДВК_Сегодня.ПолучитьФорму("ФормаОтчета"); по причине: Интерактивные операции недоступны |
|||
4
ixilimuse
12.06.13
✎
10:45
|
С параметром тоже идея хорошая, спору нет. Вопрос в том, в какой момент мне присвоить параметр?
По идее можно было бы при вызове с кнопки, но опять же, где в управляемых приложениях, найти то событие, которое срабатывает при вызове отчета через тонкого клиента из подсистемы через стандартную ссылку которая формируется системой при открытии вкладки подсистемы? |
|||
5
ixilimuse
12.06.13
✎
11:04
|
В общем нашел решение. Правда не самое рациональное наверное, но железно работает.
В модуле управляемого приложения завел экспортную переменную. В событии ПередНачаломРаботыСистемы(Отказ) присваиваю данной переменной Ложь. В событии ПриНачалеРаботыСистемы() присваива Истина. Перем СистемаНачалаРаботу Экспорт; Процедура ПриНачалеРаботыСистемы() СистемаНачалаРаботу = Истина; КонецПроцедуры Процедура ПередНачаломРаботыСистемы(Отказ) СистемаНачалаРаботу = Ложь; КонецПроцедуры Теперь в событии ПриОткрытии() в форме отчета, я смотрю на переменную СистемаНачалаРаботу. Если НЕ СистемаНачалаРаботу Тогда СформироватьОтчет(ДатаСведений); ТабДок.Показать(); КонецЕсли; То есть, с помощью переменной видно, если все происходит перед началом работы системы, значит отчет открывается для отображения на рабочем столе. В противном случае, пользователь вызвал отчет ручками. |
|||
6
ixilimuse
12.06.13
✎
11:08
|
Нет, каюсь.. При повторном открытии рабочего стола схема накрывается медным тазом..
|
|||
7
ixilimuse
12.06.13
✎
12:44
|
В общем вкурил очередную порцию глобальных понятий..
Изначально вариант с копированием формы отвергал так как формирование отчета было реализовано в модуле формы. Если бы скопировал форму, появился бы риск расхождения между двумя формами (функции получения отчета).. Сейчас проблему решил таким образом. Весь механизм формирования отчета перенес в модуль менеджера отчета. И создал две формы. Одна полная для пользовательского режима, с настройками. И вторая форма для рабочего стола где единственный отображаемый объект - Табличный документ с результатом работы отчета. Собственно и все. Все важные механизмы хранятся в одном месте. При желании можно создать кучу разных форм под разные нужды которые будут пользоваться общими механизмами. Различия будут только в специфических наворотах самих форм. Всем спасибо за внимание )))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |