0
- 16.04.2012 - 08:53
|
Доброго всем дня. Делаю небольшую конфижку на 8.1, столкнулся с таким вопросом. Есть отчёт, из строки которого по расшифровке можно открыть форму документа. Мне нужно, чтобы после изменения и закрытия этого документа, отчёт автоматом обновился. Для этого я добавил фрагмент в модуль формы документа, в процедуру ПриЗакрытии(): Если ВладелецФормы <> Неопределено Тогда ____Если ТипЗнч(ВладелецФормы) = Тип("Форма") Тогда ________Если ТипЗнч(ВладелецФормы.ЭтотОбъект) = Тип("ОтчетОбъект.МойОтчетТудаЕгоВКачель") Тогда ____________ВладелецФормы.КнопкаСформироватьНажати е(); ________КонецЕсли; ____КонецЕсли; КонецЕсли; Всё классно работает, после закрытия документа отчёт заново отрисовывается. Но! | | |
1
- 16.04.2012 - 08:56
|
Теперь я решил перенести этот отчёт на закладку рабочего стола (обработка РабочийСтол). В модулеобработки РабочийСтол добавил код: МойОтчет = Отчеты.МойОтчетТудаЕгоВКачель.Создать(); МойОтчет.НачДата = НачДата; МойОтчет.КонДата = КонДата; МойОтчет.Сотрудник = Сотрудник; МойОтчет.Клиент = Клиент; МойОтчет.СформироватьОтчет(ЭлементыФормы.Табличный Документ); После этого владелец формы потерялся. | | |
2
- 16.04.2012 - 08:59
|
Оно и понятно, ведь теперь вызов процедуры СформироватьОтчет(), расположенной в модуле отчёта, идёт не из формы этого отчёта, а из обработки РабочийСтол. В документе, параметр ВладелецФормы, теперь пустой. Вопрос: как в этом случае передать владельца? Или может, есть другое решение, более прямое? | | |
3
- 16.04.2012 - 09:05
| обновляй при активизации | | |
4
- 16.04.2012 - 09:13
|
(3) Зачем? Мне нужно обновлять именно при закрытии документа. Допустим, я сформировал отчёт, потом провалился в документ, потом не закрывая документ, снова переключился на окно отчёта, а потом обратно на документ (или ещё куда-то) И так 15-20 раз. Мне не нужно, чтобы каждый раз при активации переформировывался отчёт. Это заметное торможение. Мне нужно так: я переключился на окно документа, изменил его, записал и закрыл. И именно в этот момент отчёт перерисовался. То есть, обновление отчёта должно быть связано с событием закрытия документа. | | |
5
- 16.04.2012 - 09:23
| обновляй при активизации не весь отчет, а только тот док, в который провалился | | |
6
- 16.04.2012 - 09:25
| это как? | | |
7
- 16.04.2012 - 09:28
|
при формировании отчёта, выполняется запрос по документам за период. предлагаешь выполнить запрос по одному документу, и потом при формировании табличного документа, [*****] со строками, типа "здесь читать, здесь не читать, а здесь я рыбу заворачивал" ? | | |
8
- 16.04.2012 - 09:28
| [*****] = Т_Р_А_Х_А_Т_Ь_С_Я | | |
9
- 16.04.2012 - 09:29
|
когда выбираешь док в отчете и "проваливаешься" в него - его запоминаешь в отдельном списке, а при активизации анализируешь этот список и обновляешь документы по списку - отчет полностью выполнять не надо будут сложности в реализации - думай. | | |
10
- 16.04.2012 - 09:30
| (8) хи-хи | | |
11
- 16.04.2012 - 09:34
| Цитата:
Такая ситуация: сформировал отчёт, потом открыл по расшифровке документ. Потом решил снова освежить у себя в памяти отчёт, переключился на его окно. Потом снова переключился на документ, потом снова на отчёт. И так 50 раз. По твоей схеме, у меня 50 раз выполнится запрос и формирование печатной формы отчёта. Это не есть хорошо. | | |
12
- 16.04.2012 - 09:37
| (11) при активизации анализируешь этот список.... сначала анализируешь, потом обновляешь | | |
13
- 16.04.2012 - 09:42
|
(12) а какую-нибудь подписку на событие тут нельзя присобачить? У насведь всё-таки восьмёрка, на секундочку. А не какая-нибудь шестёрка, туда её в качель. Мне нужно, чтобы при закрытии документ сгенерировал какое-то событие, или типа того. А обработка РабочийСтол должна его поймать. Это реализуемо? | | |
14
- 16.04.2012 - 09:43
| (13) Оповещения кури | | |
15
- 16.04.2012 - 09:50
| (14) спасиб! | | |
16
- 16.04.2012 - 09:54
| Мне нужно, чтобы при закрытии документ сгенерировал какое-то событие, или типа того. не готично. Править придется все документы | | |
17
- 16.04.2012 - 09:58
|
ПриЗаписи Оповестить КонецПроцедуры Вешаешь на форму обработку оповещения. | | |
18
- 16.04.2012 - 10:08
|
7-Ирли Бёрд > 12-roma n > а отчетом несколько пользователей одновременно пользоваться не могут? 13-Ирли Бёрд > дурная затея с обновлением отчета при записи документа. кнопку "Сформировать" или "Обновить" пусть жамкает юзер. а по подписке при работе нескольких пользователей у тебя в отчете цифры будут прыгать постоянно. | | |
19
- 16.04.2012 - 10:18
| Цитата:
Напротив, это решение кажется мне изящнее, чем выборочное обновление одной строки отчёта. | | |
20
- 16.04.2012 - 12:07
|
(19) это решение свидетельствует о тупости разработчика. Да, оно проще, но требует изменения ВСЕХ документов если это самопал - решение вполне законное, если же это типовая - потом заниматься сексом при любом обновлении | | |
21
- 16.04.2012 - 14:41
|
(20) ну во-первых, не всех документов, а только одного (отчёт строится по одному виду документов). Во-вторых, в типовой я бы действительно не стал курочить модуль документа (или подумал бы 100 раз). Но здесь самописка, к тому же всё завязано именно на построение этого отчёта (это основная выходная форма программы). В-третьих, совсем не обязательно перерисовывать отчёт по закрытию любого документа любым активным пользователем. Можно организовать перерисовку только после закрытия документа текущим пользователем (в текущем сеансе). | | |
22
- 16.04.2012 - 15:05
|
ну тогда делай. Разрешаю ............................. Helen ............................ (подпись) | | |
23
- 16.04.2012 - 15:07
| |
| Интернет-форум Краснодарского края и Краснодара |