Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Закрыть док без сохранения (число прочтений - 4787 )
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Закрыть док без сохранения
16. Мая 2007 :: 01:25
Печать  
Что-то не могу придумать как покрасивше енто организовать...
Задача такая:
Через ОткрытьФорму() открываются документы. Предназначение только для просмотра, но при открытии документа некоторые поля могут изменится. Как сделать так, чтоб пользователь не имел возможности случайно сохранить эти изменения. В частности интересует как обламать выскакивающее при закрытия дока даже [х] вопроса "Сохранить документ?" При этом всё нужно организовать так чтобы не править модули форм документов.
  
Наверх
ICQ  
IP записан
 
desty
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Апреля 2007
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #1 - 16. Мая 2007 :: 03:31
Печать  
Может быть глобальное событие FormEx

Цитата:
Синтаксис: ПослеОткрытия(Контекст)

Параметры:
Контекст - контекст открытой формы


а там Сброс Модифицированности, в соответствии с Форма.Параметр

или что еще лучше на мой взгляд, посмотреть на класс Общие.Конфигурация и ФабрикаСобытийГлобальногоМодуля....

еще можно сделать класс ТДокумент : Документ, и открывать Форму КОП, а не документа... В классе и отрабатывать нужные тебе вещи

навскидку так.... но видимо можно еще как-то Подмигивание
  
Наверх
 
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #2 - 16. Мая 2007 :: 05:05
Печать  
Юзай третий параметр функции ОткрытьФорму().
Код
Выбрать все
ОткрытьФорму(<Документ>,<КонтекстФормы>,<РежимПросмотра>)
...
<РежимПросмотра> - необязательный параметр. Числовое выражение: 1 - открыть
форму в режиме только просмотра; 0 - открыть форму в режиме редактирования; -1
(минус единица) - в этом случае используется вариант, предусмотренный текущим
значением параметра ''Режим открытия объектов'', установленным пользователем
интерактивно.
 

  

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



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #3 - 16. Мая 2007 :: 05:39
Печать  
Сброс модифицированности не помогает и третий параметр в ОткрытьФорму() не помогут, т.к. открывается форма нового документа и заполняется данными. Нужно, чтоб пользователь нечаянно этот док не сохранил.
В принцыпе, все атрибуты формы дока делаю недоступными, а номер и дата док-та приравнивается уже существующему в базе документу, поэтому, если даже пользователь нажмет Сохранить, все равно выдается ошибка Номер не уникальный и сохранения не происходит... но всё-таки хотелось бы как-то покрасивше...
  
Наверх
ICQ  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #4 - 16. Мая 2007 :: 05:58
Печать  
Не используй форму нового документа. Создай один служебный документ, который и открывай (при открытии очищай, перезаполняй и сбрасывай флаг модифицированности). И пусть они его сохраняют сколько угодно.

А зачем тебе вообще такие извраты? Почему не сделать обработку?
  

FormEx developer
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #5 - 16. Мая 2007 :: 06:00
Печать  
Открывай форму нового документа внутри транзакции, а потом просто отменяй транзакцию, форма будет на экране, а док даже сохранить будет нельзя Улыбка
Т.е.
Код
Выбрать все
НачатьТранзакцию();
ОткрытьФорму("Документ.ТакойТо");
ОтменитьТранзакцию();
 

  

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



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #6 - 16. Мая 2007 :: 07:22
Печать  
Цитата:
А зачем тебе вообще такие извраты? Почему не сделать обработку?

Долго рассказывать, но если в общих чертах, то идея отслеживать изменения документов и возможность показать пользователю документ по состоянию на такую-то дату+такое-то время.
  
Наверх
ICQ  
IP записан
 
DionX
Senior Member
****
Отсутствует



Сообщений: 373
Местоположение: Кемерово
Зарегистрирован: 22. Августа 2006
Пол: Мужской
Re: Закрыть док без сохранения
Ответ #7 - 16. Мая 2007 :: 07:23
Печать  
artbear писал(а) 16. Мая 2007 :: 06:00:
Открывай форму нового документа внутри транзакции, а потом просто отменяй транзакцию, форма будет на экране, а док даже сохранить будет нельзя Улыбка
Т.е.
Код
Выбрать все
НачатьТранзакцию();
ОткрытьФорму("Документ.ТакойТо");
ОтменитьТранзакцию();
 


спасиб, попробуем
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать