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


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Последовательность вызова Предопределенных процедур.
23. Августа 2012 :: 10:28
Печать  
Встала задача:
Нужно отслеживать
События работы с документами.
ПриУдаленииДокумента()
ОбработкаОтменыПроведения()
Смысл следующий.
1.Если документ проведен и его Помечают на удаление то ни каких действий делать не надо.
2.Если документ проведен и делать только его распроведение надо выполнить определенные действия в системе (скажем записать в промежуточную таблицу информацию).
3.Если документ не проведен и его помечают на удаления то требуется удалить из промежуточной таблицы информацию если таковая имеется.

Начал отталкиваться от ПриУдаленииДокумента(), но тут заты происходит.
В ОбработкеУдаленияПРоведения()
ТекущийДокумент().ПометкаУдаления=0
А последовательность Вызова
Сперва ПриУдаленииДокумента()
Потом ОбработкаУдаленияПРоведения()

Может кто что нить такое решал?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Последовательность вызова Предопределенных процедур.
Ответ #1 - 23. Августа 2012 :: 10:49
Печать  
^)))
в ОбработкаУдаленияПроведения документ всегда проведён по-определению.

ЗЫ: ты забыл еще про ПриОтменеПроведенияДокумента
это как раз второй случай, для всего остального.. статусвозврата в ПриУдаленииДока и привет
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Последовательность вызова Предопределенных процедур.
Ответ #2 - 23. Августа 2012 :: 11:08
Печать  
А блин точно.
Заработался я однако.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Последовательность вызова Предопределенных процедур.
Ответ #3 - 23. Августа 2012 :: 11:27
Печать  
мне одному кажется что состав этой таблички будет равен выборке из журнала с условием ismark=0 and closed=0 ?
  

1&&2&&3
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Последовательность вызова Предопределенных процедур.
Ответ #4 - 23. Августа 2012 :: 12:15
Печать  
trad писал(а) 23. Августа 2012 :: 11:27:
мне одному кажется что состав этой таблички будет равен выборке из журнала с условием ismark=0 and closed=0 ?

Это ты к чему?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Последовательность вызова Предопределенных процедур.
Ответ #5 - 23. Августа 2012 :: 13:30
Печать  
varelchik писал(а) 23. Августа 2012 :: 12:15:
trad писал(а) 23. Августа 2012 :: 11:27:
мне одному кажется что состав этой таблички будет равен выборке из журнала с условием ismark=0 and closed=0 ?

Это ты к чему?


к этому:

Цитата:
Смысл следующий.
1.Если документ проведен и его Помечают на удаление то ни каких действий делать не надо.
2.Если документ проведен и делать только его распроведение надо выполнить определенные действия в системе (скажем записать в промежуточную таблицу информацию).
3.Если документ не проведен и его помечают на удаления то требуется удалить из промежуточной таблицы информацию если таковая имеется.
  

1&&2&&3
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Последовательность вызова Предопределенных процедур.
Ответ #6 - 24. Августа 2012 :: 09:42
Печать  
trad писал(а) 23. Августа 2012 :: 11:27:
мне одному кажется что состав этой таблички будет равен выборке из журнала с условием ismark=0 and closed=0 ?


Ну, не сказано же, что делают с записью таблицы после последующего повторного проведения?
И если после этого второй раз распроведут и не удалят.



varelchik писал(а) 23. Августа 2012 :: 10:28:
Смысл следующий.
1.Если документ проведен и его Помечают на удаление то ни каких действий делать не надо.
2.Если документ проведен и делать только его распроведение надо выполнить определенные действия в системе (скажем записать в промежуточную таблицу информацию).
3.Если документ не проведен и его помечают на удаления то требуется удалить из промежуточной таблицы информацию если таковая имеется.


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


Если же наоборот - то вообще не париться и всегда в ОбработкаУдаленияПроведения() писать в табличку "это отмена проведения".
В ПриУдалении() - вычищать из таблички.

Кстати, лично у меня есть дурная привычка распроводить документы методом "Del, Enter, Del".
Ты это тоже учитывай.
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Последовательность вызова Предопределенных процедур.
Ответ #7 - 24. Августа 2012 :: 10:51
Печать  
Satans Claws писал(а) 24. Августа 2012 :: 09:42:
trad писал(а) 23. Августа 2012 :: 11:27:
мне одному кажется что состав этой таблички будет равен выборке из журнала с условием ismark=0 and closed=0 ?


Ну, не сказано же, что делают с записью таблицы после последующего повторного проведения?
И если после этого второй раз распроведут и не удалят.

ну да, верно. Не учел, значит мне показалось Улыбка
  

1&&2&&3
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать