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