Имя: Пароль:
1C
1С v8
Модуль объекта документа
0 _Demos_
 
13.01.12
13:00
Как в модуле документа узнать, что открыта форма документа?
1 _Demos_
 
13.01.12
13:15
up
2 Cube
 
13.01.12
13:16
Управляемый режим?
3 _Demos_
 
13.01.12
13:18
(2) Обычный
4 kosts
 
13.01.12
13:19
В модуле и не нужно знать, что открыта форма.
5 Cube
 
13.01.12
13:20
(4) +1.
(3) А зачем?
6 Пopyчик-З
 
13.01.12
13:22
(0) Скажи, что хочешь сделать. В модуле объекта никак не узнать, какая форма открыта.
7 _Demos_
 
13.01.12
13:23
(5) модуль исправил (самописька)
(4) + 100500
8 DrHiHi
 
13.01.12
13:28
Если узнать открыта ли тобой, то тогда получи форму документа и проверь на открыта()... если кем-то, то тогда никак... или добавь блокировку объекта при открытии и потом через попытку попробуй заблокировать объект, если удалось, то тогда форма никем не открыта, а если нет, то тогда кем-то открыта (у меня была такая задача, так как 2разных менеджера могли редактировать один и тот же документ, а вот записать мог только один, так что приходилось при открытии выдавать сообщение о том, что это документ уже кем-то открыт)
9 Defender aka LINN
 
13.01.12
13:36
(8) Да, да... Получи форму на сервер, молодец.
10 DrHiHi
 
13.01.12
13:39
(9) на какой сервер??
(0) расскажи суть того, что ты делаешь... можеть быть так более будет понятно, что тебе нужно
11 Fish
 
13.01.12
13:41
(8) Жесть :)))
12 DrHiHi
 
13.01.12
13:49
(11) а что тут жестокого??
13 Fish
 
13.01.12
13:54
(12) По поводу бредовости функционала:
1. Если я открыл форму и ничего на ней не трогал, и никакими обработчиками данные не менялись, то попытка заблокировать очень даже удастся, и ты никак не определишь, что форма уже мной открыта.
2. Если я уже поменял какие-то данные, то при попытке изменить этот же документ вторым пользователем выдаётся сообщение о заблокированности объекта на уровне платформы. И никаких сообщений выдавать не надо, система сама всё сделает :))
14 DrHiHi
 
13.01.12
14:02
(13)
приоткрытии()
модульТРАЛИВАЛИ.заблокироватьобъект(ЭтотОбъект);

заблокироватьобъект(Объект)экспорт
Попытка
Объект.Заблокировать();
Исключение
Предупреждение(КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;


когда второй пользователь откроет форму, то ему выдаст сообщение :)))
2.я не говорил, что нужно блокировать и выдавать сообщения при записи %))
15 Fish
 
13.01.12
14:17
(14) Просто непонятно зачем это нужно, если это и так реализовано на уровне платформы.
16 DrHiHi
 
13.01.12
14:21
(15) где??
один менеджер открыл документ, набил какуе-то номенклатуру и в это же время этот же документ открыл другой менеджер и так же набил некую номенклатуру... в итоге один запишет, а второй нет... и проделанная работа второго менеджера пойдет на смарку... а так хоть предупредит второго менеджера, о том что этот документ уже кем-то открыт... "предупрежден, значит вооружен"
17 Fish
 
13.01.12
14:28
(16) Не буду объяснять, но попробуй, и увидишь, что второй ничего не сможет вбить :)))
18 DrHiHi
 
13.01.12
14:38
(17)работает))) а раньше такого не было, ну хотя я не проверял, менеджеры жаловались)))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн