Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

При удачном проведении документа требуется провести второй документ. Как лучше?

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.