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


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Получить время док-та после изменения
17. Сентября 2007 :: 17:13
Печать  
В стандартной процедуре "ПриИзмененииВремениДокумента" после изменения времени (в журнале) метод ПолучитьВремя() выдает время документа ДО его изменения. Очень хочется получить время ПОСЛЕ его изменения.
  

Константин
Наверх
 
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


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

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #1 - 18. Сентября 2007 :: 07:55
Печать  
Цитата:
В стандартной процедуре "ПриИзмененииВремениДокумента" после изменения времени (в журнале) метод ПолучитьВремя() выдает время документа ДО его изменения. Очень хочется получить время ПОСЛЕ его изменения.

В 1С все штатные предопределенные процедуры сделаны с таким расчетом, чтобы можно было отменить то действие, которое вызвало процедуру. Другими словами, чтобы ты имел возможность сказать СтатусВозврата(0).

Так что в штатной процедуре ты не получишь времени ПОСЛЕ, ибо сама процедура вызывается ДО.
Внимательно смотри в сторону FormEx, там введено большое количество дополнительных предопределенных процедур, причем событиям ПОСЛЕ там уделено большое внимание.
  
Наверх
www  
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #2 - 18. Сентября 2007 :: 17:20
Печать  
Цитата:
В 1С все штатные предопределенные процедуры сделаны с таким расчетом, чтобы можно было отменить то действие, которое вызвало процедуру. Другими словами, чтобы ты имел возможность сказать СтатусВозврата(0).
В штатной процедуре 1С ПриИзмененииВремениДокумента СтатусВозврат(0) не отменяет открытие штатного диалога изменения времени, так что подсунуть 1С-ке какую-нибудь обработку-заменитель.
Именно поэтому я и обратился на этот форум. Хочу, чтобы помогли. Может кто и сталкивался с подобной задачей. На Mista такое уже всплывало, но ответа нет.
А у Альфа в его "ПОСЛЕ" я что-то ничего подходящего не нашел. Может как-то можно перехватить "ДО"?
  

Константин
Наверх
 
IP записан
 
desty
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Апреля 2007
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #3 - 18. Сентября 2007 :: 18:14
Печать  
Улыбка

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

1. Так изменение у тебя Интерактивное, блокирую команду с помощью rWigets
2. вызывай модально собственную обработку по изменению времени
3. обработай нажатие кнопки ОК в своей обработке  Очень довольный
  
Наверх
 
IP записан
 
vip
1c++ power user
Отсутствует



Сообщений: 1570
Зарегистрирован: 19. Мая 2006
Re: Получить время док-та после изменения
Ответ #4 - 18. Сентября 2007 :: 18:53
Печать  
Цитата:
А у Альфа в его "ПОСЛЕ" я что-то ничего подходящего не нашел.

Плохо искал. Попробуй ПослеЗакрытия().
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #5 - 18. Сентября 2007 :: 19:33
Печать  
vip писал(а) 18. Сентября 2007 :: 18:53:
Плохо искал. Попробуй ПослеЗакрытия().


P.S. причем надо помнить, что СтатусВозврата(0) в ней уже не запользуешь.
  
Наверх
 
IP записан
 
КилоГрамм
Senior Member
****
Отсутствует


Таити, Таити...

Сообщений: 434
Зарегистрирован: 14. Июня 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #6 - 19. Сентября 2007 :: 15:19
Печать  
Цитата:
Плохо искал. Попробуй ПослеЗакрытия().
После открытия чего? Документ-то и не открывался, речь идет об изменении времени в журнале.
А вот Desty правильно понял идею - вместо стандартного диалога изменения времени подсунуть свою обработку, вот только я не пойму, как перехватить событие открытия диалога изменения времени.
  

Константин
Наверх
 
IP записан
 
desty
Full Member
***
Отсутствует



Сообщений: 135
Зарегистрирован: 19. Апреля 2007
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #7 - 19. Сентября 2007 :: 17:09
Печать  
так... а вот тут вопрос сложнее

вопрос
"в какой момент перхватывать изменение времени"
я думаю надо перефразировать
"когда он вообще появляется, это самый диалог"

навскидку:
1. На форме списка журнала, вызовом команды "Изменить время документа"
2. При записи/проведении в зависимости от установок в Сервис - Параметры.

Во втором случае я смутно понимаю как его перехватить Ужас
  
Наверх
 
IP записан
 
dnp
Senior Member
****
Отсутствует


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #8 - 20. Сентября 2007 :: 02:40
Печать  
по первому пункту
Дока на ВК RWidjets v.1.3.5, класс RMenu :
Цитата:
Процедура ПриПолученииКоманды(пКоманда, пЗаблокироватьКоманду)
КонецПроцедуры

Как обычно, вешаешь туда Сообщить( пКоманда ) и узнаешь, какой номер у нужной команды.

по второму - вариант только подавить этот диалог вовсе, и тогда уже решать, нужно ли что-то с этим временем делать. Подавить, на сколько я помню, в ПриЗаписи() не получается, только в ПриОткрытии(); должны помочь АвтоВремяОтключить() и его друзья.
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #9 - 20. Сентября 2007 :: 04:21
Печать  
Цитата:
А вот Desty правильно понял идею - вместо стандартного диалога изменения времени подсунуть свою обработку

Я пробовал перехватывать с помощью RWidjets событие смены интервала в журнале документов и не получилось.
Т.к. одна и та же команда используется и при нажатии на кнопку смены интервала или в меню Действия и при программном вызове УстановитьИнтервал Печаль
т.е. получается некая рекурсия, от которой мне так и не удалось избавиться Печаль
Вполне возможно, здесь будет то же самое, но естественно, нужно проверить.
  

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


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #10 - 20. Сентября 2007 :: 04:38
Печать  
artbear писал(а) 20. Сентября 2007 :: 04:21:
Т.к. одна и та же команда используется и при нажатии на кнопку смены интервала или в меню Действия и при программном вызове УстановитьИнтервал Печаль
т.е. получается некая рекурсия, от которой мне так и не удалось избавиться Печаль  ....

Хм. Я, конечно, не пробовал, но... От чего не применить, пусть не красивый, но работающий в известных случаях, ФлагЗащитыОт___ ? Перед попыткой программной смены интервала флаг взводишь, по завершении сбрасываешь, ПриПолученииКоманды() его проверяешь.
Придется лезть в ГМ, но уж..
  
Наверх
ICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #11 - 20. Сентября 2007 :: 04:54
Печать  
dnp писал(а) 20. Сентября 2007 :: 04:38:
Хм. Я, конечно, не пробовал, но... От чего не применить, пусть не красивый, но работающий в известных случаях, ФлагЗащитыОт___ ? Перед попыткой программной смены интервала флаг взводишь, по завершении сбрасываешь, ПриПолученииКоманды() его проверяешь.
Придется лезть в ГМ, но уж..

Вот об этом я и говорю, что у меня не получилось Печаль
  

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


.

Сообщений: 479
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #12 - 20. Сентября 2007 :: 05:02
Печать  
тогда упс.   Со сжатыми губами
  
Наверх
ICQ  
IP записан
 
newbas
Junior Member
**
Отсутствует



Сообщений: 32
Местоположение: Краснодар
Зарегистрирован: 29. Августа 2008
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #13 - 30. Июля 2009 :: 08:55
Печать  
Цитата:
Я пробовал перехватывать с помощью RWidjets событие смены интервала в журнале документов и не получилось.
Т.к. одна и та же команда используется и при нажатии на кнопку смены интервала или в меню Действия и при программном вызове УстановитьИнтервал

С чего бы это?
Команда изменения времени 32875, а установить интервал 32881
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получить время док-та после изменения
Ответ #14 - 18. Августа 2009 :: 02:23
Печать  
newbas писал(а) 30. Июля 2009 :: 08:55:
Цитата:
Я пробовал перехватывать с помощью RWidjets событие смены интервала в журнале документов и не получилось.
Т.к. одна и та же команда используется и при нажатии на кнопку смены интервала или в меню Действия и при программном вызове УстановитьИнтервал

С чего бы это?
Команда изменения времени 32875, а установить интервал 32881

Ты попробуй перехватить и сам посмотри.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать