Имя: Пароль:
1C
1С v8
Процедура после окончания обработки проведения
0 Dachka
 
14.01.17
22:14
Подскажите пожалуйста, можно ли как-то отловить окончание процедуры проведения документа в базе - именно окончание самой транзакции?

Есть центральная база и распределенная (8.2 обычное приложение): необходимо при записи и проведении документа в ЦБ по веб-сервису отправлять его в распределенную базу. Реализовала отправку документа в подписке на событие ОбработкаПроведения() - так как при отработке данного события документ проведен и движения его существуют. В принципе все работает-в режиме реального времени документ создается в распределенной базе.
Правда есть одно НО: в момент если что-то пошло не так - зависание базы, блокировки - получается, что документ в распред.базе уже создан, а в ЦБ транзакция завершается с ошибкой и документ не записывается. А хотелось бы отловить момент, когда он точно записан в базу. Есть в модуле формы процедура ПослеЗаписи(), но дело в том, что документы в ЦБ могут создаваться программно.
Можно конечно использовать регл.задание по отправке документов, стоящих на регистрации, но тогда это будет не совсем онлайн.
Может быть кто-то решал подобную проблему?
1 marvak
 
14.01.17
22:58
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ПриЗаписи (OnWrite)
Синтаксис:

ПриЗаписи(<Отказ>)
Параметры:

<Отказ>

Тип: Булево.
Признак отказа от записи документа. Если в теле процедуры-обработчика установить данному параметру значение Истина, то запись документа выполнена не будет.
Значение по умолчанию: Ложь.
Описание:

Возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи.
См. также:

ДокументОбъект.<Имя документа>, метод Записать


Не оно?
2 Armando
 
14.01.17
23:18
>> необходимо при записи и проведении документа в ЦБ по веб-сервису отправлять его в распределенную базу
Нельзя так делать

>> использовать регл.задание по отправке документов
Верное решение