Здравствуйте.
При проведении документа выполняется код в модуле объекта:

```1c
    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    Если РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда
    МояПроцедура(Отказ);
    КонецЕсли;
    КонецПроцедуры
```

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

Спасибо, не подумал, что РежимЗаписи тоже можно менять.
---
Нужно еще проверять, не проведена ли ссылка на документ. И если проведена, то
РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения

(1) Вообще сама постановка задачи мне не нравится. Зачем сохранять документ? Почему это делать в модуле объекта, а не в форме? А если документы будут перепроводиться какой-либо обработкой (восстановлением последовательностей, например) - то не выйдет ли, что у вас из кучи документов какие-то внезапно станут из проведенных непроведенными, да еще и с измененными данными? И, для пущей радости - все это произойдет в закрытом периоде, который главбух решила перепровести для восстановления взаиморасчетов.

Не лучше ли сделать так:
Перед записью (в форме!) проверять, все ли в порядке. Если не все, задавать пользователю вопрос "У вас тут херня. Исправить херню?". И если он соглашается, исправлять, но не записывать! Оставлять форму с модифицированными данными открытой! И предоставить пользователю осознанную возможность провести исправленный документ, или закрыть его без сохранения, или записать без проведения
---
А зачем вообще записывать документ перед записью если он все равно будет записан со всеми вашими изменениями?
---
Хороший вопрос. Я просто не рассказал всей логики.

Дело в том мне нужно разделить документ на два документа, и во второй документ перенести часть строки из определенной табличной части первого документа.
Не записывая первый не будет достаточно данных и оснований делать динамически второй. Так сложились обстоятельства :)

p.s.
По поводу проведения не из формы конечно же я учел все моменты.
---
вешать на форму бизнес-логику это имхо моветон. по мне так форма - дело вторичное
в твоем случае я бы глянул в сторону создания чегототам на основании = прописываешь все шаманство в чегототам, а потом легким движением Заполнить()
и все дела
---
можно сделать так:
При проведении первичного документа проверять его на херню, и делать движение по регистру сведений "Документы с херней".
В форме списка как-то выделять эти документы. Блокировать их печать (если нужно).
Отдельной обработкой в транзакции модифицировать и перепроводить первичный документ и создавать и проводить документ вторичный. Сделать запуск обработки из формы списка по выбранному (выбранным) документам.
Можно включить обработку в регламентные задания.
---
Это вариант, как вы предлагаете пользователь должен сначала провести, увидеть, что провелся неправильно, нажать на кнопку исправить. Получается с одной стороны он проведен, что некрасиво на мой взгляд, да и пользователи считают, что если уж проведен, то значит все хорошо. Плюс еще один нюанс для пользователей. Что тоже на мой взгляд не очень хорошо.

У меня так: Он нажимает провести, получает вопрос с текстом о причине, почему проводить нельзя и создать ли еще один документ,
сразу жмет создать и получает второй документ, куда перенеслось часть строк из первого. И потом проводит первый и второй и они проводятся. А ведь при проведении тоже много нюансов, допустим если документ списывает товары, которых не может быть на складе.
По этой причине регламентное задание не вариант.
Создавать еще один документ в цепочке, который будет основанием тоже не хорошо, так как существенно замедлит скорость.
По моему вполне нормально делать так как я сделал. Динамически во время проведения.