|   |   | 
| 
 | При удачном проведении документа требуется провести второй документ. Как лучше? | ☑ | ||
|---|---|---|---|---|
| 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) какую-то адскую хрень поставили ваши оналитеги имхо.
 это в принуипе два события, разнесенные по времени. а вы их впиливаете как единомоментное событие. что-то не так в консерватории. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |