Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Очень популярная тема (более 25 ответов) Как отловить начало попытки блокировки объекта? (число прочтений - 7486 )
Schtass
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 06. Апреля 2009
Как отловить начало попытки блокировки объекта?
06. Апреля 2009 :: 07:18
Печать  
Сразу скажу
Сильно не пинайте. С FormEx работаю недавно. Поэтому многого не знаю.

Теперь вопрос. Можно с FormEx ли отловить момент попытки блокировки объекта. Другими словами, при открытии объекта по двойному щелчку определить заблокирован ли объект или нет.

Для чего это нужно?

Вкуртил в свою конфу небольшую фичу. При блокировке объекта в отдельную таблицу вписываются блокируемый объект и пользователь. Теперь хочу сделать так, чтобы при попытке открыть объект вместо "Запись заблокирована!" выводилось что-то, типа "Документ заблокирован пользователем Иванов!".

Реально такое сделать?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #1 - 06. Апреля 2009 :: 09:26
Печать  
Реально.
Поиск по "ПриНачалеБлокировкиОбъекта"
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Schtass
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 06. Апреля 2009
Re: Как отловить начало попытки блокировки объекта?
Ответ #2 - 06. Апреля 2009 :: 09:44
Печать  
artbear писал(а) 06. Апреля 2009 :: 09:26:
Реально.
Поиск по "ПриНачалеБлокировкиОбъекта"

Можно тут поподробнее.
Этот метод я использую для регистрирации блокировки объекта. Когда объект уже кем-то заблокирован, то в эту процедуру вообще не захожу. Что я не так делаю?  Нерешительный
  
Наверх
 
IP записан
 
Schtass
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 06. Апреля 2009
Re: Как отловить начало попытки блокировки объекта?
Ответ #3 - 06. Апреля 2009 :: 09:45
Печать  
В догонку.
Если что, релиз FormEx версии 2.0.5.93
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #4 - 06. Апреля 2009 :: 13:47
Печать  
Schtass писал(а) 06. Апреля 2009 :: 09:44:
artbear писал(а) 06. Апреля 2009 :: 09:26:
Реально.
Поиск по "ПриНачалеБлокировкиОбъекта"

Можно тут поподробнее.
Этот метод я использую для регистрирации блокировки объекта. Когда объект уже кем-то заблокирован, то в эту процедуру вообще не захожу. Что я не так делаю?  Нерешительный


Скорее всего вопрос не так задаешь Улыбка

Вопрос IMHO должен звучать не "как перехватить блокировку объекта", а как перехватить сообщение "Объект заблокирован" и заменить его на свое. Вот это действительно проблема. Сообщение выскакивает еще до попытки создания контекста и т.п. фигни. и поэтому никакими мне известными методами имеющимися в 1С++ и FormEx не перехватывается Печаль
Если я не прав - буду рад! Пусть меня поправят знатоки/авторы 1С++ и FormEx....  
Самому давно хотелось подобной фичи

PS: То что есть платные ВК делающие подобное, я знаю. Но хотелось-бы как всегда "на халяву"  Смех
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #5 - 06. Апреля 2009 :: 15:03
Печать  
Процедура ОбработкаБлокировкиОбъекта(<?>,,)КонецПроцедуры
Синтаксис:
Процедура дуры
Назначение:
Предопределенная процедура
Параметры:
<Объект> - (Объект) объект который блокируется
<Повторить> - (Число) флаг повторения
<ДополнительныйТекст> - (Строка) дополнительный текст при блокировке
  

FormEx developer
Наверх
www  
IP записан
 
Schtass
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 21
Зарегистрирован: 06. Апреля 2009
Re: Как отловить начало попытки блокировки объекта?
Ответ #6 - 07. Апреля 2009 :: 04:41
Печать  
АЛьФ писал(а) 06. Апреля 2009 :: 15:03:
Процедура ОбработкаБлокировкиОбъекта(<?>,,)КонецПроцедуры
Синтаксис:
Процедура дуры
Назначение:
Предопределенная процедура
Параметры:
<Объект> - (Объект) объект который блокируется
<Повторить> - (Число) флаг повторения
<ДополнительныйТекст> - (Строка) дополнительный текст при блокировке


Ай спасибо, дарагой!!! Вот что мне нужно было!!!

З. Ы. Странно, но раньше этот метод у мну не срабатывал. Наверное, старый релиз FormEx был...
  
Наверх
 
IP записан
 
avgreen
Senior Member
****
Отсутствует



Сообщений: 254
Местоположение: Украина, Кривой Рог
Зарегистрирован: 20. Октября 2006
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #7 - 07. Апреля 2009 :: 06:36
Печать  
АЛьФ писал(а) 06. Апреля 2009 :: 15:03:
Процедура ОбработкаБлокировкиОбъекта(<?>,,)КонецПроцедуры
Синтаксис:
Процедура дуры
Назначение:
Предопределенная процедура
Параметры:
<Объект> - (Объект) объект который блокируется
<Повторить> - (Число) флаг повторения
<ДополнительныйТекст> - (Строка) дополнительный текст при блокировке


Тут пришел АЛьФ и всех рассудил  Улыбка
Спасибо огромное за твою работу!!! Как за компоненту, так и за терпение в объяснении нам, недалеким, как нею пользоваться. А то ведь нас если носом не ткнешь - мы очевидного не замечаем  Смущённый  Печаль
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #8 - 07. Апреля 2009 :: 08:15
Печать  
Schtass писал(а) 07. Апреля 2009 :: 04:41:
АЛьФ писал(а) 06. Апреля 2009 :: 15:03:
Процедура ОбработкаБлокировкиОбъекта(<?>,,)КонецПроцедуры

З. Ы. Странно, но раньше этот метод у мну не срабатывал. Наверное, старый релиз FormEx был...

Да, в некоторых старых релизах были баги для событий блокировки.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
rawlik
Junior Member
**
Отсутствует



Сообщений: 53
Зарегистрирован: 11. Сентября 2007
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #9 - 07. Апреля 2009 :: 09:41
Печать  
А возможен ли такой вариант ?

-> Пользователь хочет редактировать документ (кнопкой Изменить)
-> Объект Заблокирован
-> Вопрос "Хотите просмотреть документ ?" , Да/Нет
 Если Да
-> Открывается форма только просмотра.

Да и со справочниками, если можно.
  
Наверх
 
IP записан
 
alyuev
God Member
*****
Отсутствует


Гражданин Вселенной

Сообщений: 855
Местоположение: Одесса
Зарегистрирован: 07. Декабря 2007
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #10 - 07. Апреля 2009 :: 11:51
Печать  
АЛьФ писал(а) 06. Апреля 2009 :: 15:03:
<Повторить> - (Число) флаг повторения


АЛЬФ, подскажи пожалуйста, для чего нужен флаг повторения? Как он работает?
И еще вопрос. Стандартное окно "Запись заблокирована" показывается в любом случае? Его нельзя не показывать?
  

1C 7.7.025; 1C++ 3.2.4.3; Formex 2.0.5.94; 1sqlite
Наверх
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #11 - 09. Апреля 2009 :: 10:30
Печать  
alyuev писал(а) 07. Апреля 2009 :: 11:51:
АЛьФ писал(а) 06. Апреля 2009 :: 15:03:
<Повторить> - (Число) флаг повторения


АЛЬФ, подскажи пожалуйста, для чего нужен флаг повторения? Как он работает?
И еще вопрос. Стандартное окно "Запись заблокирована" показывается в любом случае? Его нельзя не показывать?


Мне тоже очень интересно знать ответ на этот вопрос.
  
Наверх
 
IP записан
 
viddik
Junior Member
**
Отсутствует



Сообщений: 37
Зарегистрирован: 22. Октября 2008
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #12 - 22. Мая 2009 :: 04:53
Печать  
blindvic писал(а) 09. Апреля 2009 :: 10:30:
alyuev писал(а) 07. Апреля 2009 :: 11:51:
АЛьФ писал(а) 06. Апреля 2009 :: 15:03:
<Повторить> - (Число) флаг повторения


АЛЬФ, подскажи пожалуйста, для чего нужен флаг повторения? Как он работает?
И еще вопрос. Стандартное окно "Запись заблокирована" показывается в любом случае? Его нельзя не показывать?


Мне тоже очень интересно знать ответ на этот вопрос.


http://www.1cpp.ru/forum/YaBB.pl?num=1151492841/24#24
  
Наверх
 
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Как отловить начало попытки блокировки объекта?
Ответ #13 - 22. Мая 2009 :: 07:16
Печать  
Цитата:
далее при вызове функции движка LockWithMessage() (в случае неудачной блокировке, перед выводом сообщения "Запись заблокирована!") вызывается глобальная предопределенная процедура ОбработкаБлокировкиОбъекта(Объект, Повторить);
- если в ней установлен статус возврата в ноль, то сообщение не выводится и со стороны пользователя ни чего не происходит;


Цитата:
Процедура ОбработкаБлокировкиОбъекта ( Объект, Повторить, ДополнительныйТекст ) // предопределенная процедура компоненты FormEx
     Сообщить ( "Объект (" + объект + ") заблокирован");
     СтатусВозврата(0);
КонецПроцедуры

Сообщение о блокировке "Запись заблокирована!" все равно выскакивает.
  
Наверх
 
IP записан
 
chessman
God Member
*****
Отсутствует



Сообщений: 1084
Зарегистрирован: 10. Августа 2007
Re: Как отловить начало попытки блокировки объекта?
Ответ #14 - 22. Мая 2009 :: 07:40
Печать  
А в перехватчике ОбработкаБлокировкиОбъекта должно обрабатываться...у меня почему-то работает, только в глобальнике?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать