|
Как узнать из обработки открыт ли документ? |
☑ |
0
ferry
09.09.13
✎
10:45
|
Не знаю как правильно спросить, но задача следующая: есть обработка, которая делает изменения в документах. Надо узнать при старте обработки открыт ли где то обрабатываемый документ. Как это сделать?
|
|
1
Rie
09.09.13
✎
10:47
|
(0) Спросить насчёт блокировок? Не?
|
|
2
cw014
09.09.13
✎
10:47
|
Заблокирован() ???
|
|
3
Fish
гуру
09.09.13
✎
10:47
|
(1) Если просто открыта форма документа, но не внесены изменения, то имхо не поможет.
|
|
4
ferry
09.09.13
✎
10:49
|
так дело в том что он не заблокирован если его просто открыли и ничего там не поменяли. а вот потом начинаются проблемы: изменения то обработка вносит, а у пользователей, у которых документ открыт на просмотр база вешается.
|
|
5
ferry
09.09.13
✎
10:49
|
(3) ага
|
|
6
cw014
09.09.13
✎
10:50
|
Вешается??? Просто возникает текст, дескать было изменено, пока вы втыкали в форму... Закрываешь, открываешь и дальше работай
|
|
7
ferry
09.09.13
✎
10:53
|
(6) вот именно вешается. на форме есть событие приактивациистроки. вот оно начинает работать в цикле и вылетает при достижении максимально возможного количества таких обработок этого события.
|
|
8
Fish
гуру
09.09.13
✎
10:55
|
(7) А вот вешаться не должно.
|
|
9
Maxus43
09.09.13
✎
10:55
|
(7) ну очевидно, что код кривой.
Есть способ дебильный - при открытии формы блокировать документ, в итоге при попытке записать из обработки будет исключение. Но реально не стоит
|
|
10
Maxus43
09.09.13
✎
10:57
|
В обработке сделать Оповестить, в доке в ОбработчикеОповещения - перечитать объект, правда если там вносят изменения - они волшебным образом исчезнут для пользователя
|
|
11
ferry
09.09.13
✎
10:59
|
(10) да, видимо так и придется сделать. потому что вешается именно строчка реквизитформывзначение("объект") в документе
|
|
12
palpetrovich
09.09.13
✎
11:09
|
мо попытаться удалить в транзакции+попытке? если незаблокирован - транзакцию отменить
|
|
13
Maxus43
09.09.13
✎
11:09
|
(12) дак он и не заблокирован, просто форма открыта, не ведёт к блокировке
|
|
14
palpetrovich
09.09.13
✎
11:11
|
(13) если он у кого-то открыт - пометку удаления поставить не удастся - стало-быть вопрос из (0) решен :)
|
|
15
palpetrovich
09.09.13
✎
11:12
|
хотя - насчет транзакции - эт я погарячился, она там вообще не нужна
|
|
16
Maxus43
09.09.13
✎
11:16
|
(14) нет, с чего бы?
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший