К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Потерялся владелец :(

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
Цитата:
Сообщение от Helen 1986
его запоминаешь в отдельном списке, а при активизации анализируешь этот список и обновляешь документы по списку
Не готично.
Такая ситуация: сформировал отчёт, потом открыл по расшифровке документ. Потом решил снова освежить у себя в памяти отчёт, переключился на его окно. Потом снова переключился на документ, потом снова на отчёт.
И так 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


К списку вопросов






Copyright ©, Все права защищены