|
При удачном проведении документа требуется провести второй документ. Как лучше? | ☑ | ||
---|---|---|---|---|
0
yabes
23.06.20
✎
17:07
|
Добрый день. Задача такая: после удачного проведения Документа_1 необходимо перепровести Документ_2. Проведение Документа_1 не обязательно должно выполняться из формы, оно может выполняться в обработке или, например, при обмене - т.е. нельзя воспользоваться методами модуля формы ПослеЗаписиНаСервере() и т.д. В модуле объекта Документа_1 процедура ОбработкаПроведения() выполняется последней. Так как будет правильно решить такую задачу?
|
|||
1
FIXXXL
23.06.20
✎
17:09
|
(0) Очередь запилить, к примеру
|
|||
2
dka80
23.06.20
✎
17:10
|
Пишешь в регистр, потом регзаданием смотришь регистр и проводишь свои документы.
|
|||
3
fisher
23.06.20
✎
17:18
|
Если на вложенных транзакциях делать будешь - то пофиг, что там последним выполняется. Откат вложенной записи откатит внешнюю запись и наоборот.
|
|||
4
yabes
23.06.20
✎
17:18
|
(1) Что ты имеешь в виду? Например, при выполнении кода Документ_1.Записать() должно выполняться дополнительно и проведение Документа_2 при удачном проведении Документа_1. Т.е. я не могу предварительно сформировать очередь Документ_1, Документ_2, а потом последовательно провести документы, так как в таком случае во всех частях кода где записывается Документ_1 нужно будет это учитывать
|
|||
5
vova1122
23.06.20
✎
17:18
|
а что делать с Документом2 при распроведении документа1?
|
|||
6
yabes
23.06.20
✎
17:20
|
(3) В том-то и дело. Тут другой момент. При неудачном проведении Документа_2, для Документа_1 не должно быть отката транзакции.
|
|||
7
yabes
23.06.20
✎
17:26
|
Если взять прикладную задачу, то Документ_1 - это СписаниеСРасчетногоСчета, а Документ_2 - это АвансовыйОтчет. В одном АвансовомОтчете может быть несколько Списаний и при перепроведении Списания должен перепроводится и Авансовый отчет. Если же при проведении Списания Авансовый отчет не перепроведется - ничего страшного, главное, чтобы Списание в любом случая провелось. Такую задачу поставили аналитики, какая есть) (5) Ничего не должно происходить)
|
|||
8
fisher
23.06.20
✎
17:34
|
(6) Интересная задача. Если неудачное проведение Документа2 - некритично, то предлагаю не проводить никакие Документы2.
Ну а если серьезно, то тебе уже предлагали записывать очередь проведения Документов2 в регистр сведений и выгребать их оттуда регламентом. Как раз те, что не провелись - будут там оставаться и можно будет придумать любую политику поведения в этих случаях. |
|||
9
Маленький Вопросик
23.06.20
✎
17:47
|
Делай все через попытку, если что-то в условии не выполнится - все откатится назад.
|
|||
10
dka80
23.06.20
✎
17:49
|
(9) А потом нарвется на сообщение "В данной транзакции уже были ошибки" и будет искать причину до посинения
|
|||
11
abibas
23.06.20
✎
18:11
|
(7) Т.е., если в одном авансовом отчете 10 списаний, то этот авансовый отчет будет 10 раз проведен?
|
|||
12
Лефмихалыч
23.06.20
✎
18:56
|
1. бизнес-события, как в ДО
2. тупо регламентным заданием 3. любой другой доступный способ сэмулировать или использовать очередь |
|||
13
Злопчинский
23.06.20
✎
19:27
|
(2) херняс получится. ибо логически это связанные вещи могут быть, а по исполнению между ними - дырка. в которую может вклиниться что-то другое и "получить" неверный "результат"
|
|||
14
Злопчинский
23.06.20
✎
19:36
|
(7) какую-то адскую хрень поставили ваши оналитеги имхо.
это в принуипе два события, разнесенные по времени. а вы их впиливаете как единомоментное событие. что-то не так в консерватории. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |