|
Создание Док.А при проведении Док.Б с добавлением ссылки в Док.А. | ☑ | ||
---|---|---|---|---|
0
M812
05.05.14
✎
12:11
|
Посоветуйте пожалуйста, как правильнее решить задачку.
Есть готовый нетиповой Док.А в УПП 1.3 (автоматическое удаление движений) в нем есть реквизит-ссылка на типовой документ УПП - Док.Б. При проведении нетипового Док.А делается проверка и создается(изменяется) на его основании типовой Док.Б, ссылку на который нужно добавить в соотвествующий реквизит в Док.А. Вопрос: как и где кашернее разместить код? Очевидных два варианта: ОбработкаПроведения и ПередЗаписью. Если использовать ПередЗаписью - можно будет изменить реквизит Док.А до его проведения, но если проведение не завершится будет создан ненужный документ. ОбработкаПроведения - Док.Б уже будет создан на основании корректно заполненного Док.А, но добавление ссылки в него на Док.Б приведет к перезаписи и перепроводке Док.А со всеми вытекающими. |
|||
1
Loyt
05.05.14
✎
12:17
|
(0) Дык проведение-то незавершится отказом, небось? А значит вся транзакция с начала ПрередЗаписью по конец Обработка проведения будет откачена. Включая и создание ДокБ.
|
|||
2
EugeniaK
05.05.14
✎
12:18
|
(0)Желательно все изменения документа только в ПередЗаписью() в режиме проведения.
Т.е. в момент ОбработкиПроведения() никакие реквизиты ДокА меняться не должны. Если проведение не завершится, то транзакция откатится и документ Б не появится. |
|||
3
Loyt
05.05.14
✎
12:19
|
(1) Единственное, в объекте ДокА реквизит ДокБ будет заполнен битой ссылкой, его просто подчистить.
|
|||
4
M812
05.05.14
✎
12:19
|
(1) Я конечно понимаю, что вопрос по матчасти. Но все же: прям вся-вся транзакция откатится, даже если Док.Б не создавался а менялся?
|
|||
5
Loyt
05.05.14
✎
12:20
|
(4) Ну а как? Это ж и есть смысл транзакции.
|
|||
6
M812
05.05.14
✎
12:25
|
(2) (5) Спс. Сейчас проверим.
А когда лучше проводить проверку на битую ссылку и чистить? |
|||
7
Loyt
05.05.14
✎
12:33
|
(6) Ели из формы проводишь, то сразу там, в "ПослеЗаписи".
Если эти фокусы на сервере могут проводиться, и с объектами после проведения ещё какие-то изменения происходят с последующей записью - то в модуле "ПередЗаписью", но такое - слишком специфично. Обычно если что на сервере проводится, то либо реквизиты уже заполнены и дёргаться лишний раз не будут, либо после отказа проведения идёт переход к другому объекту, а не повторная запись этого же - тут битая ссылка ничего не испортит. |
|||
8
Loyt
05.05.14
✎
12:35
|
+(7) На управляемых формах специфики не знаю, их пока только сам изучаю помаленьку.
|
|||
9
EugeniaK
05.05.14
✎
12:35
|
(6) Не нужно никакой проверки.
Вся транзакция откатится, включая запись ссылки. Нечего чистить. |
|||
10
Loyt
05.05.14
✎
12:36
|
(9) В самом объекте ссылка останется. В незаписанном. И в форме открытой.
|
|||
11
M812
05.05.14
✎
12:54
|
(10) (9) Как раз есть варианты создания Док.А в форме и обработкой.
В 99.9% случаев Док.А при создании обработкой не будет менятся, да и основная проверка корректности его заполнения происходит до создания Док.А, соответственно вероятность того, что он не проведется минимальна. Тогда остается почистить ссылку, при создании Док.А в его форме. Спасибо, за советы. Отпишусь после реализации, для жирной точки в теме. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |