Всем доброго времени суток!
У меня такая проблема:
В обработкеПроведения выполняется код:

```1c
    ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
```

а дальше мне надо выполнить некие действия с Регистром в котором создается запись как раз таки в при проведении, т.е.:

```1c
    ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);

    УстановитьДатыЗаписи();
```

но в "УстановитьДатуЗаписи" записи в Регистре еще нет, она появляется чуть позже.
Вот, теперь вопрос: как дождаться завершения предыдущей процедуры?

Как выполнить "УстановитьДатыЗаписи();" только после завершения выполнения "ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);["?
Где-то видела, но Сама ни разу не использовала, помогите пожалуйста!
---
Облачите первое действие в транзакцию.
---
Меняйте в ЭтотОбъект.Движения. Что бы два раза с дивана не вставать не напрягать базу повторной записью регистра.
---
Мне надо провести документ и сразу после проведения поменять период, это поможет?
Спасибо, попробую!
---
Запись регистров происходит по окончании транзакции проведения, если только нет явного Движения.Записать(). Но так лучше не делать, это не по стандарту 1С.
---
Хм... Учту!
Спасибо!
---
Вам не нужно этого делать. Это не может решить какую-либо задачу, которую нельзя решить более адекватным способом.
---
Например?
---
Никакую значит 0, не существует таких и не существует примера несуществующих вещей.

У вас задача перейти с закрытыми глазами на красный свет. Безусловно, существует много способов её решить, но большинство тех, кто решал, никогда об этом не расскажут. Какая-то часть проявит эрудицию, но сами так делать не станут. Единицы поинтересуются к чему такие сложности.

А в самом конце обсуждения выяснится, что в ТЗ опечатка и переходить надо было на зеленый.

Этот длинный спич к тому, что в практике такие задачи возникают исключительно редко и достаются тем, кто советов не спрашивает.

P.S. В расширении можно добавить свою обработку проведения с директивой &После, она запустится после обработки проведения, но в той же транзакции.
---
А как будет правильнее поменять период записи регистра накопления?
Вот я его провела с одним периодом, закрыла документ и сразу надо поменять период на другой
---
Менять не закрывая документ - самый правильный подход.
---
Даже когда не закрываю, не успевает провести
---
Облачите первое действие в транзакцию.
---
Сейчас попробую.
Спасибо!
---
Помогло! Спасибо!!!
---
Чтобы действие выполнилось сразу после этой строчки, достаточно написать его на следующей строке после этой. Так работает платформа, код исполняется сверху вниз слева направо.

Т.е. можно даже вот так написать

```1c
    ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);МояПроцедураПосле();
```
---
Это так в бейсике было, а тут если сервер, там фоны, длительные операции, самое правильное разнести процессы по разным процедурам
---
так до сих пор везде, кроме пролога. Есть одна очевидная вещь, процедура заканчивается ключевым словом "КонецПроцедуры", всё что до него - все еще та же процедура и все команды в ней выполняются строго друг за другом.
---
Если бы все было так просто!
Они синхронно выполняются и "Моя процедура" по факту успевает выполниться до Проведения!
---
у набора регистра записи есть событие "при записи"

Вы пишите лучше задачу сразу, Вам подскажут как это обычно делается.
---
А я как написала?
---
Вопрос уже закрыт! Вы не видите?
Решение уже найдено
---
Любопытствую что за задача была? Какая-то временная обработка на один раз?
---
Нет, не временная. Посмотрите РМК в УТ, там после ОбработкиПроведения в модуле формы происходит корректировка регистров и повторное проведение, у меня была аналогочная задача
---
Кстати там как и мне подсказали (3) используется Транзакция, но не в Обработке проведения, а после в модуле формы
---
УТ нет. А как так получается что ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ) продолжает выполняться, а уже вызывается УстановитьДатыЗаписи()? Обработка проведения в фоновом задании запускается?
---
Э... а асинхронные вызовы Вам ни о чем не говорят, там как раз процедура запускает другую и не контролирует отработку кода
---
Это служебный обработчик, не уверена что его можно менять
---
Ну, нужно решить, меняем мы или нет, но менять результаты проведения в самом доке который проводится очень не камильфо. Как вариант обработка по расписанию, которая пройдется по докам и сделает все что нужно, можно через внешнюю, можно через регламент. Если док интерактивный, то в модуле формы есть ПослеЗаписи и ПослеЗаписиНаСервере, можно их поковырять в расширении, там уже должно быть все записано
---
Вопрос уже решен.
Не надо "велосипед" придумывать
---
```1c
    Асинх Процедура П1...

    Процедура П2

    Ожидать П1
```