Перехват документ во время проводки
|
Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Ср Апр 15, 2009 11:56  Перехват документ во время проводки |
|
Полезность: Нет оценки
|
Коллеги, а кто-нибудь знает, как перехватить переход документа (определенного) в промежуточное состояние (не PROV и не FORM), и выполнить свой код.
Похожее можно сделать через HOOK MD_FOR_PROV_1, но он не перехватывает состояние в "В кассу".
Это необходимо для того чтобы писать фактические операции в договор, в момент проводки или менять статус договора если при проводке документ встал В кассу. |
|
 |
Alex2019 Профи
Вступление в Клуб: 02.07.2007
|
Ср Апр 15, 2009 17:52  Re: Перехват документ во время проводки |
|
Полезность: Нет оценки
|
dbmaslov пишет: | Коллеги, а кто-нибудь знает, как перехватить переход документа (определенного) в промежуточное состояние (не PROV и не FORM), и выполнить свой код.
Похожее можно сделать через HOOK MD_FOR_PROV_1, но он не перехватывает состояние в "В кассу". | А как насчет MD_DO_TRANS_1? |
|
 |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Вт Апр 21, 2009 19:28   |
|
Полезность: Нет оценки
|
Александр, к сожалению, в этот хук, передается документ до проводки, получается, что вижу только состояние FORM, а в какое состояние он пришел - не вижу. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Апр 22, 2009 07:55   |
|
Полезность: Нет оценки
|
А зачем писать фактические операции или менять состояние договора (или производить прочие действия) до момента проводки (до состояния PROV)? Даже если документ меняет свое состояние на "В кассу", то это не означает, что далее он будет проведен. Он может быть и возвращен кассиром.
У нас в свое время тоже стояла такая задача. В результате мы все делаем в MD_FOR_PROV_1 именно, когда документ получает состояние "Проведен".
Есть одно НО! В этом хуке P_MESS = 'END' не означает, что отработали все продуктовые анализы. Нам, не помню почему, приходилось с этим бороться. |
|
 |
dbmaslov Профи
Вступление в Клуб: 11.07.2007
|
Ср Апр 22, 2009 08:51   |
|
Полезность: Нет оценки
|
У договора, который породил документы есть статус в кассу.
Это промежуточный статус, который дает возможность понять что документы ушел в другое подразделение.
Конечно, можно держать договор в состоянии "На обработку" до момента проводки всех документов, но хочется как лучше, т.к. будет непонятно обрабатывали его или еще нет.
Тогда напрашивается вариант ввести промежуточный статус "Обработан" - который и будет означать, что документы сформировались, а вы уж сами разбирайтесь, что с ними и где они валяются (Касса, РКО итд), ну а когда документ проведется, договор перейдет в состояние "Исполнен" и запишутся фактические операции. |
|
 |
timochev Эксперт
Вступление в Клуб: 02.07.2007
|
Ср Апр 22, 2009 09:10   |
|
Полезность: Нет оценки
|
Можно анализировать состояния документов и выводить "наименьшее" из состояний при отображении договора. |
|
 |
sergius_79 Участник со стажем
Вступление в Клуб: 08.07.2007
|
Вт Апр 28, 2009 10:21   |
|
Полезность: Нет оценки
|
Задача поставлена интересная. Попробуйте написать проверочную операцию для FORM_TO_KS_ACT. Что-то типа такого:
Код: | begin
if P_EVENT = 'EXECUTE' and P_METHOD_CLASS = 'MAIN_DOCUM' and P_METHOD_NAME = 'FORM_TO_KS_ACT' then
debug_pipe ('Хехехе!', 0);
end if;
end; |
В ней же можно перехватывать некоторые другие переходы, для которых есть операции. Больше ничего (кроме триггеров) в голову не приходит. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|