![]() |
Потерялся владелец :( Доброго всем дня. Делаю небольшую конфижку на 8.1, столкнулся с таким вопросом. Есть отчёт, из строки которого по расшифровке можно открыть форму документа. Мне нужно, чтобы после изменения и закрытия этого документа, отчёт автоматом обновился. Для этого я добавил фрагмент в модуль формы документа, в процедуру ПриЗакрытии(): Если ВладелецФормы <> Неопределено Тогда ____Если ТипЗнч(ВладелецФормы) = Тип("Форма") Тогда ________Если ТипЗнч(ВладелецФормы.ЭтотОбъект) = Тип("ОтчетОбъект.МойОтчетТудаЕгоВКачель") Тогда ____________ВладелецФормы.КнопкаСформироватьНажатие(); ________КонецЕсли; ____КонецЕсли; КонецЕсли; Всё классно работает, после закрытия документа отчёт заново отрисовывается. Но! |
Теперь я решил перенести этот отчёт на закладку рабочего стола (обработка РабочийСтол). В модулеобработки РабочийСтол добавил код: МойОтчет = Отчеты.МойОтчетТудаЕгоВКачель.Создать(); МойОтчет.НачДата = НачДата; МойОтчет.КонДата = КонДата; МойОтчет.Сотрудник = Сотрудник; МойОтчет.Клиент = Клиент; МойОтчет.СформироватьОтчет(ЭлементыФормы.ТабличныйДокумент); После этого владелец формы потерялся. |
Оно и понятно, ведь теперь вызов процедуры [b]СформироватьОтчет()[/b], расположенной в модуле отчёта, идёт не из формы этого отчёта, а из обработки РабочийСтол. В документе, параметр ВладелецФормы, теперь пустой. Вопрос: как в этом случае передать владельца? Или может, есть другое решение, более прямое? |
обновляй при активизации |
(3) Зачем? Мне нужно обновлять именно при закрытии документа. Допустим, я сформировал отчёт, потом провалился в документ, потом не закрывая документ, снова переключился на окно отчёта, а потом обратно на документ (или ещё куда-то) И так 15-20 раз. Мне не нужно, чтобы каждый раз при активации переформировывался отчёт. Это заметное торможение. Мне нужно так: я переключился на окно документа, изменил его, записал и закрыл. И именно в этот момент отчёт перерисовался. То есть, обновление отчёта должно быть связано с событием закрытия документа. |
обновляй при активизации не весь отчет, а только тот док, в который провалился |
это как? |
при формировании отчёта, выполняется запрос по документам за период. предлагаешь выполнить запрос по одному документу, и потом при формировании табличного документа, [filolog]трахаться[/filolog] со строками, типа "здесь читать, здесь не читать, а здесь я рыбу заворачивал" ? |
[*****] = [b]Т_Р_А_Х_А_Т_Ь_С_Я [/b] |
когда выбираешь док в отчете и "проваливаешься" в него - его запоминаешь в отдельном списке, а при активизации анализируешь этот список и обновляешь документы по списку - отчет полностью выполнять не надо будут сложности в реализации - думай. |
(8) хи-хи |
[quote=Helen 1986]его запоминаешь в отдельном списке, а при активизации анализируешь этот список и обновляешь документы по списку[/quote] Не готично. Такая ситуация: сформировал отчёт, потом открыл по расшифровке документ. Потом решил снова освежить у себя в памяти отчёт, переключился на его окно. Потом снова переключился на документ, потом снова на отчёт. И так 50 раз. По твоей схеме, у меня 50 раз выполнится запрос и формирование печатной формы отчёта. Это не есть хорошо. |
(11) при активизации анализируешь этот список.... сначала анализируешь, потом обновляешь |
(12) а какую-нибудь подписку на событие тут нельзя присобачить? У насведь всё-таки восьмёрка, на секундочку. А не какая-нибудь шестёрка, туда её в качель. Мне нужно, чтобы при закрытии документ сгенерировал какое-то событие, или типа того. А обработка РабочийСтол должна его поймать. Это реализуемо? |
(13) Оповещения кури |
(14) спасиб! |
[b]Мне нужно, чтобы при закрытии документ сгенерировал какое-то событие, или типа того.[/b] не готично. Править придется все документы |
ПриЗаписи Оповестить КонецПроцедуры Вешаешь на форму обработку оповещения. |
7-Ирли Бёрд > 12-roma n > а отчетом несколько пользователей одновременно пользоваться не могут? 13-Ирли Бёрд > дурная затея с обновлением отчета при записи документа. кнопку "Сформировать" или "Обновить" пусть жамкает юзер. а по подписке при работе нескольких пользователей у тебя в отчете цифры будут прыгать постоянно. |
[quote=Зелёный тролль]дурная затея с обновлением отчета при записи документа... ...по подписке при работе нескольких пользователей у тебя в отчете цифры будут прыгать постоянно[/quote] Не вижу ничего дурного в этой затее. Напротив, это решение кажется мне изящнее, чем выборочное обновление одной строки отчёта. |
(19) это решение свидетельствует о тупости разработчика. Да, оно проще, но требует изменения ВСЕХ документов если это самопал - решение вполне законное, если же это типовая - потом заниматься сексом при любом обновлении |
(20) ну во-первых, не всех документов, а только одного (отчёт строится по одному виду документов). Во-вторых, в типовой я бы действительно не стал курочить модуль документа (или подумал бы 100 раз). Но здесь самописка, к тому же всё завязано именно на построение этого отчёта (это основная выходная форма программы). В-третьих, совсем не обязательно перерисовывать отчёт по закрытию [u][b]любого [/b][/u]документа [u][b]любым [/b][/u]активным пользователем. Можно организовать перерисовку только после закрытия документа [u][b]текущим [/b][/u]пользователем (в текущем сеансе). |
ну тогда делай. Разрешаю ............................. Helen ............................ (подпись) |
[img]http://pics.livejournal.com/khaodar/pic/000tsa50[/img] |
Текущее время: 14:30. Часовой пояс GMT +3. |