Как можно программно узнать открыт документ или нет #28160


#0 by Генс
Как можно программно узнать открыт документ.
#1 by Таня
ОткрытьФорму Пока форма открыта, тип значения данного параметра равен 100 (см. ТипЗначения), если закрыта — 0.
#2 by Таня
<КонтекстФормы> это про него
#3 by Rovan
Синтаксис: Блокировка(<ВклВыкл>) Назначение: Установить/прочитать режим блокировки.....
#4 by Фокусник
#5 by Матрейя
Но ведь док может быть и не заблокирован, когда открыт.
#6 by Соратник
5) А как это?
#7 by Фокусник
Этот случай программно не определяется :)
#8 by Rovan
Тогда, если очень надо, делается справочник объектов открытых на просмотр.
#9 by Фокусник
Жаль только, что это гарантии не дает, пользователи имеют привычку иногда отваливаться, соответственно этот справочник привирать может :) Для чего может понадобится знать открыт док или нет (не для редактирования)? Версии со шпионским уклоном не предлагать :)
#10 by Матрейя
7. Определяется. 8. Один?
#11 by Генс
Очень надо.Это как справочник объектов открытых на просмотр.
#12 by Фокусник
Как ? :)
#13 by Матрейя
12. Я ведь не обязан учить 1с-ников. Читайте книжки.
#14 by Фокусник
А если пользователь открыл документ, сделал Печать (например), закрыл документ. И смотрит себе спокойно. Этот случай нужно определять ?
#15 by Фокусник
А вариант этот способ тоже определит ?
#16 by Матрейя
15. Конечно.
#17 by Фокусник
А если он эту печатную форму себе на флешку сохранил и дома смотрит ?
#18 by Матрейя
17. Не понял. Речь ведь идет о том, чтобы узнать в пределах сессии 1с?
#19 by zzzzz
5)- как это? хоть один пример
#20 by Матрейя
19. Мои ветки удаляются на этом форуме. Поэтому нет никакого резона отвечать бесплатно в тематических.
#21 by Фокусник
Т.е. в пределах сессии 1С можно определить, что пользователь смотрит ПЕЧАТНУЮ форму документа (и какого именно)?
#22 by NiGMa
Без дополнительных ухищрений (типа справочника или СЗ) не получится определить открытые документы :( Да и вообще открытые формы :((( Ну нет в 7.7 таких методов!
#23 by NiGMa
Кто подскажет - нет ли ВК, чтобы получить список окон и перебрать их? Вот тогда по контексту можно было бы узнать, кто есть ху.
#24 by Матрейя
21. Именно так.
#25 by HIDDEN MESSAGE
#26 by Матрейя
23. Полно.
#27 by NiGMa
Тогда второй вопрос - как узнать список окон ДРУГОГО сеанса?
#28 by Матрейя
27. Не знаю. Наверное только ведением базы регистраций открытий-закрытий. По крайней мере готовых разработок по этой теме не видел.
#29 by NiGMa
Абыдно, да?
#30 by Матрейя
29. Почему должно быть Абыдно?
#31 by NiGMa
Да насколько я понимаю, узнать открытые документы хочется в 2 случаях: 1) В пределах сеанса - чтобы 2-й раз не открыть то же окно. И вообще, чтобы окнами "дирижировать". 2) В пределах базы - и вот здесь хотелось бы видеть окна "на просмотр", "на изменение", причем у вторых еще видеть признак "модифицирован". Чтобы заранее предотвратить конфликт "запись заблокирована". Хотя мне лично это пока не надо.
#32 by Матрейя
31. Вот вариант простейшего решения. При открытии создавать соединение - записывать в глобальную временную таблицу : юзера, имя формы и режим. При закрытии - сессия отваливается -> запись из временной таблицы убирается.
#33 by Генс
Я так и делаю спасибо.
#34 by NiGMa
В смысле в справочник?
#35 by Матрейя
34. Нет.
#36 by NiGMa
Тогда она будет видна только в пределах одного сеанса :(
#37 by NiGMa
Хотя есть еще вариант - через анализ 1cv7.mlg
#38 by Матрейя
36. Всем подключенным юзерам.
#39 by NiGMa
ЧТО? Глобальная переменная видна только в сеансе!
#40 by fez
(32, 38) Имеется в виду - таблица на сервере БД? А если файловый вариант?
#41 by Матрейя
40. Я не знаю решения файлового варианта.
#42 by NiGMa
пардон - неверно понял про временную таблицу.
#43 by MMF
для любого варианта базы можно определить какие объекты и кем открыты через блокировки в файлах со смещением идентификатора объекта. Но если юзеры локальные (терминальные), то вычислить их простыми средствами (NetFileEnumNT/NetFileEnum) не удастся.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям