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

```1c
    Процедура ОбработкаПроведения(Отказ, Режим)
    ...
    Если Движения.Количество() = 0 Тогда
    Проведен = Ложь;
    КонецЕсли;
    КонецЦикла;
```

выше поправил смысл:
До момента оплаты документ не должен проводиться (формироваться движения) при нажатии на ОК, а только сохраняться.
---
тогда правильный ответ в (4) если оплаты нет тогда РежимЗаписи = РежимЗаписиДокумента.Запись
и Проведен = Ложь; потому что автоматом признак ставит только обработкапроведения
---
Проведен = Ложь; - это галка, она не влияет на наличие / отсутствие движений у документа
Вам написали - меняйте переменную Режим.
Режим = РежимЗаписиДокумента.Запись
---
В обработке проведения документа можно проанализировать, установлен флаг "к обеспечению" или нет.

```1c
    Если КОбеспечению тогда
    //пишете движения
    Иначе
    //ничего не делаете или выводите сообщение, что документ записан, но резервы не сформировал
    КонецЕсли
```
---
Вы описываете кейс и сразу предлагаете решение. Как заказчик вы должны описать кейс и правильно, что вы это сделали. Но учить программиста, как лучше ему будет реализовать эту задачу - ваша ошибка. Документ должен проводиться всегда, если это не черновик, который ещё не подготовили. А вот движения можно просто не делать без нужного вам признака. Лучше будет сделать так, вероятно.

Дисклеймер для остальных: Я не знаю процессов топикстартера, поэтому предлагаю решение исходя только из вводной. Возможно, всё решается просто грамотной настройкой их учётной системы.
---
Вы верно подметили - "черновик", и он (документ) должен таковым оставаться до определенного момента. И можно заставить пользователей, если черновик, то кнопка Сохранить, иначе - ОК, но это неудобно и пользователи будут путаться.
Все ради юзера и эффективности работы)
---
В модуле объекта ПередЗаписью анализируйте и по результатам изменяйте РежимЗаписи.
---
Вопрос решен, спасибо

```1c
    Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

    ...
    Если НЕ КОбеспечению Тогда
    РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения;
    КонецЕсли;

    КонецПроцедуры // ПередЗаписью()
```