Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Форма.ТолькоПросмотр (число прочтений - 4219 )
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Форма.ТолькоПросмотр
24. Июля 2009 :: 07:18
Печать  
При открытии формы при определенных условиях делаю
Код
Выбрать все
Форма.ТолькоПросмотр ( 1 ); 


но объект, к к-му принадлежит форма все равно блокируется, и другие пользователи не могут его редактировать.

Одна мысль:
При открытии формы проверять условия. Если нужно только для чтения, сделать Сервис.ВнешнееСобытие ( "система", ...) и закрыть форму. После закрытия вызовется ОбработкаВнешнегоСобытия глобального модуля, к-я откроет указанную форму для чтения.

Я хочу после Сервис.ВнешнееСобытие ( .. ) сразу прекратить выполнение дальнейшего кода модуля формы. Вроде была такая штука то ли в ФормЕкс, то ли в 1С++. Никто не даст ссылочку?

Думал воспользоваться Система.ЗакрытьФорму (...), но она по ходу вызывает предопределенные процедуры (ПриЗакрытии).
Цитата:
Немедленно закрывает форму с отработкой всех событий, обработчики которых есть в форме.


Какие комментарии? Спасибо
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Форма.ТолькоПросмотр
Ответ #1 - 24. Июля 2009 :: 07:27
Печать  
Может, FormEx::РасширениеФормы::Закрыть() ?
  
Наверх
ICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #2 - 24. Июля 2009 :: 07:38
Печать  
Спасибо. Попробую. Я помнил, что в ФормЕкс что-то такое было. Но документация давно устарела и там этого метода нет. Как и описания многих других новых фич.


РасширениеФормы.Закрыть() все равно вызывает предопределенные процедуры ПриЗакрытии и ПослеЗакрытия
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #3 - 24. Июля 2009 :: 10:26
Печать  
Насколько мне помнится, ни в 1С++, ни в ФормЕкс нет методов, закрывающих форму без отработки всех событий.

С помощью Перехватчика можно запретить подобные события при закрытии.

ЗЫ посмотри на всякий случай класс Окна из ФормЕкс.
  

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



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #4 - 24. Июля 2009 :: 11:33
Печать  
Цитата:
но объект, к к-му принадлежит форма все равно блокируется, и другие пользователи не могут его редактировать.

ну а другой способ обойти эту проблему кто-нить знает?
кто-нить наверняка уже с этим сталкивался
  
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #5 - 25. Июля 2009 :: 02:20
Печать  
blindvic писал(а) 24. Июля 2009 :: 11:33:
Цитата:
но объект, к к-му принадлежит форма все равно блокируется, и другие пользователи не могут его редактировать.

ну а другой способ обойти эту проблему кто-нить знает?
кто-нить наверняка уже с этим сталкивался


Поставить в параметрах базы режим открытия объектов - Просмотр.
Для всех это делается с помощью компоненты V7AppProfile.dll

Чтобы изменить объект, нужно нажать кнопку "Редактировать"
  
Наверх
ICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #6 - 25. Июля 2009 :: 06:54
Печать  
vivm писал(а) 25. Июля 2009 :: 02:20:
Чтобы изменить объект, нужно нажать кнопку "Редактировать"

Но эти объекта в большинстве случаев открываются не из журнала, а через ОткрытьФорму. Нерешительный
  
Наверх
 
IP записан
 
vivm
Full Member
***
Отсутствует



Сообщений: 159
Местоположение: Новосибирск
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #7 - 25. Июля 2009 :: 10:49
Печать  
ОткрытьФорму(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
  
Наверх
ICQ  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #8 - 25. Июля 2009 :: 16:32
Печать  
Ну это понятно. Проблема в том, что это код в открытой форме решает доступна ли форма только для чтения или для редактирования. Вот только Форма.ТолькоПросмотр(1) оставляет объект заблокированым. Все логично, но как это обойти попроще (переоткрыть форму только для чтения)?..
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #9 - 26. Июля 2009 :: 17:47
Печать  
blindvic писал(а) 24. Июля 2009 :: 07:18:
При открытии формы при определенных условиях делаю...

Проверяй эти условия до открытия формы.
  
Наверх
www  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #10 - 26. Июля 2009 :: 18:56
Печать  
fez писал(а) 26. Июля 2009 :: 17:47:
blindvic писал(а) 24. Июля 2009 :: 07:18:
При открытии формы при определенных условиях делаю...

Проверяй эти условия до открытия формы.

Т.е. не в модуле этой самой формы? Или я не правильно понял?
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #11 - 27. Июля 2009 :: 11:50
Печать  
blindvic писал(а) 26. Июля 2009 :: 18:56:
fez писал(а) 26. Июля 2009 :: 17:47:
blindvic писал(а) 24. Июля 2009 :: 07:18:
При открытии формы при определенных условиях делаю...

Проверяй эти условия до открытия формы.

Т.е. не в модуле этой самой формы?

Именно.
  
Наверх
www  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #12 - 27. Июля 2009 :: 18:03
Печать  
Ну, так это ясно. Просто хочется код, отвечающий за проверку ТолькоПросмотр формы включить в модуль этой самой формы...
...Значит нет других вариантов.
Буду играться с Сервис.ВнешнееСобытие()
  
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #13 - 27. Июля 2009 :: 18:57
Печать  
У тебя код не за ТолькоПросмотр отвечает, а за режим блокировки объекта. Очевидно, что такой код должен располагаться вне объекта, поскольку 1С не умеет блокировать/разблокировать объект "изнутри" него самого.
  
Наверх
www  
IP записан
 
blindvic
Senior Member
****
Отсутствует



Сообщений: 486
Местоположение: Moldova
Зарегистрирован: 23. Июня 2008
Пол: Мужской
Re: Форма.ТолькоПросмотр
Ответ #14 - 28. Июля 2009 :: 12:13
Печать  
fez писал(а) 27. Июля 2009 :: 18:57:
У тебя код не за ТолькоПросмотр отвечает, а за режим блокировки объекта. Очевидно, что такой код должен располагаться вне объекта, поскольку 1С не умеет блокировать/разблокировать объект "изнутри" него самого.

Ну, возвращаясь в началу темы, такой обходной путь, чтоб код был все-таки внутри объекта:
blindvic писал(а) 24. Июля 2009 :: 07:18:
Одна мысль:
При открытии формы проверять условия. Если нужно только для чтения, сделать Сервис.ВнешнееСобытие ( "система", ...) и закрыть форму. После закрытия вызовется ОбработкаВнешнегоСобытия глобального модуля, к-я откроет указанную форму для чтения.

Т.е. закрыть форму и открыть ее снова, но уже в режиме просмотра. Вот только, что пока не получается с  ервис.ВнешнееСобытие ()
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать