Документ не может быть проведен оперативно

Оперативное проведение подразумевает проведение в текущей дате. Проведение предыдущей и последующей датой, не может быть оперативным. Поэтому в оперативном проведении используется текущая системная дата.

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

В ходе оперативного проведения система изменяет время документа таким образом, чтобы очередной документ, проводимый в оперативном режиме, имел бы момент времени более поздний чем, у предыдущего оперативно проведенного документа. Для этого используется понятие оперативной отметки времени. Оперативная отметка получается системой автоматически при оперативном проведении, но может быть получена во встроенном языке в явном виде с помощью метода ПолучитьОперативнуюОтметкуВремени () .

Все пользователи обращаются к единому механизму оперативной отметки времени, а механизм выдает каждому пользователю очередную отметку. Механизм получения оперативной отметки времени обеспечивает получение даты, большей, чем предыдущая отметка, полученная этим или другим пользователем в данном сеансе работы. В этом случае под сеансом работы понимается не работа одного пользователя, а работа всех пользователей, от момента входа первого пользователя в систему, до выхода последнего.

В качестве оперативной отметки система, как правило, возвращает текущее время (текущую дату и текущее время). Однако если текущее время больше или равно последней выданной какому-либо пользователю отметке, то возвращается значение на секунду большее, чем значение последней выданной отметки. Таким образом обеспечивается получение при каждом обращении значения по возможности соответствующего текущему времени, но в обязательном порядке большего, чем предыдущее полученное значение.

Изменение даты документа при оперативном проведении влияет на время в пределах дня, но не изменяет день. Это объясняется тем, что время документа используется, в основном, для обеспечения правильного порядка документов в пределах дня, а день имеет существенное влияние на отражение документа в учетных механизмах, например, влияет на налогообложение по конкретной хозяйственной операции. Поэтому время документа в пределах дня система изменяет автоматически, а день может изменить только пользователь.

В файловом варианте в качестве исходного значения для получения оперативной отметки используется текущее время компьютера пользователя, который обратился за получением оперативной отметки. Полученное значение сверяется с последним выданным значением, хранимым в служебном файле в каталоге информационной базы, и если оно меньше или равно сохраненному значению, то сохраненное значение увеличивается на секунду и выдается в качестве оперативной отметки.

В клиент-серверном варианте в качестве исходного значения для получения оперативной отметки используется системное время компьютера, на котором работает сервер 1С:Предприятия, а последнее выдаваемое значение сохраняется в памяти сервера.

Из описанных особенностей реализации механизма оперативной отметки времени следует, что для корректной работы оперативного проведения необходимо обеспечить правильную установку системного времени на компьютерах пользователей.

При этом не обязательно, чтобы время было синхронизировано с точностью до секунды. В основном, проблемы будут возникать, если у пользователя стоит неправильный день. Например, если у пользователя на компьютере стоит завтрашнее число, то в файловом варианте при оперативном проведении документа оперативная отметка времени будет запомнена в соответствии с его текущей датой. Соответственно у других пользователей этой информационной базы при попытке выполнить оперативное проведение будет выдаваться сообщение об ошибке, так как день получаемой оперативной отметки времени не будет соответствовать дню даты документа, установленной на основании текущей даты компьютера пользователя.

Для исправления этой ситуации необходимо завершить работу всех пользователей с этой информационной базой, включая режим запуска Конфигуратор. При этом запомненное значение оперативной отметки будет стерто, и очередная отметка будет получена при следующем обращении.

В аналогичном случае в клиент-серверном варианте пользователю с неправильно установленной системой датой при попытке выполнить оперативное проведение сразу будет выдано сообщение об ошибке, так как день даты введенного им документа не будет соответствовать дню системной даты компьютера, на котором установлен сервер 1С:Предприятия.

Работать будующей датой в 1с теоретически можно. Чтобы документ провелся будующей датой, нужно выключить у него оперативный режим проведения (флаг РежимПроведения в форме) и тогда он проведется будующей датой.

При этом, правда, остатки на текущую дату (и на оперативную отметку времени) не изменятся. Поэтому если не быть внимательным, то один и тот же товар можно провести дважды.

Подобный финт требует доработок программы. Поэтому некоторые пользователи делают по другому – меняют дату компьютера, затем проводят документ будующей датой, а потом меняют дату обратно.

Но при таком способе в файловой базе при попытке провести текущей датой возникает ошибка » Дата документа не соответствует текущей дате или дате последнего оперативно проведенного документа. Документ не может быть проведен оперативно». Чтобы от нее избавиться, нужно перезагрузить компьютер, где находится файловая база. Отмена проведения проведенного будущим числом документа, естественно, не помогает.

На диске ИТС в статье «Особенности использования системной даты компьютера при оперативном проведении документов».

, то для данной формы действует расширение формы документа. Посредством него решаются вопросы специфичной функциональности формы документа. Расширение помогает обрабатывать различные команды пользователя, выполнять предварительные проверки и другие сервисные действия.

Кроме того, действие расширения формы документа распространяется и на механизмы записи и проведения документа. При этом неважно, была вызвана запись документа интерактивными действиями пользователя в форме документа или средствами языка Записать().

Рассмотрим ряд примеров работы этих механизмов.»>

Если основной реквизит формы имеет тип значения ДокументОбъект. , то для данной формы действует расширение формы документа. Посредством него решаются вопросы специфичной функциональности формы документа. Расширение помогает обрабатывать различные команды пользователя, выполнять предварительные проверки и другие сервисные действия.

Кроме того, действие расширения формы документа распространяется и на механизмы записи и проведения документа. При этом неважно, была вызвана запись документа интерактивными действиями пользователя в форме документа или средствами языка Записать().

Рассмотрим ряд примеров работы этих механизмов.

Установка даты документа при открытии формы

Если дата документа изначально не установлена, то при открытии формы нового документа происходит установка дате документа значения текущей даты сеанса.

Причем время документа будет установлено в зависимости от следующих настроек. Если свойство АвтоВремя расширения формы документа имеет значение НеИспользовать то время документа будет установлено по значению текущей даты сеанса. В остальных случаях дате документа присваивается время начала дня (00:00:00).

Установка даты нового документа при записи нового документа в форме

При записи документа в режиме оперативного проведения значение даты документа устанавливается согласно выданной оперативной отметке времени. Тут настройки свойств расширения формы не играют роли.

Но если время документа «нулевое» (0:00:00), то при неоперативном проведении документа оно будет изменено согласно настройкам свойства АвтоВремя. Исключение – когда АвтоВремя имеет значение НеИспользовать тогда время документа не меняется.

.

Запрет интерактивной записи проведенного документа без проведения (перепроведения)

Запрет интерактивной записи проведенного документа без проведения (перепроведения) используется, чтобы не создавалась, например, такая ситуация: сначала документ реализации был заполнен и проведен, при проведении сформированы движения по регистру с указанием количества, соответствующего количеству в документе. После этого пользователь исправил данные документа и сохранил без проведения.

В результате таких манипуляций в документе будут записаны новые данные, а в движениях по регистру останутся данные от прошлого проведения документа, то есть они никак не будут соответствовать текущим данным документа.

Предотвращение подобных ситуаций достигается за счет установки свойства расширения формы документа ПриЗаписиПерепроводить значение Истина. Тогда отказ в обработке проведения приведет к откату транзации – документ не будет и перезаписан.

Установка режима проведения

При проведении документа из формы система проверяет наличие у пользователя соответствующих прав (Проведение, Интерактивное проведение, Интерактивное проведение неоперативное). Если их нет, то выдается сообщение о невозможности проведения документа, и запись с проведением документа из формы отменяется. Мы будем рассматривать только возможность отсутствия/наличия прав на неоперативное проведение, в зависимости от которого система может менять свое поведение, так как если нет первых двух прав, то документ не может быть проведен из формы в принципе.

Если интерактивное проведение разрешено, сам выбор варианта проведения должен быть обусловлен логикой применения механизма установки режима проведения из формы. То есть в некоторых ситуациях система должна выбирать режим жестко, в некоторых право выбора режима можно предоставить пользователю. Для этого разработчик обладает рядом возможностей, предоставляемых системой посредством разграничения прав и расширениями формы документа.

При записи документа из формы расширение формы документа выполняет установку режима проведения документа.

Для реализации данного функционала система использует вариант (Автоматически, Оперативный, Неоперативный, Запрашивать) указанный в качестве значения свойства ИспользоватьРежимПроведения расширения формы документа.

Вариант «Автоматически»

Вариант Автоматически устанавливается посредством выбора значения Автоматически у свойства ИспользоватьРежимПроведения расширения формы документа. Платформа стандартно устанавливает это значение для новой формы.

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

Для проводимого документа происходит проверка положения даты документа относительно текущей даты сеанса.

Если дата документа (без учета времени) равна текущей дате сеанса, то система автоматически выбирает вариант проведения Оперативный.

Если дата документа (без учета времени) больше текущей даты сеанса, пользователю выдается предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если дата документа (без учета времени) меньше текущей даты сеанса, выбирается вариант проведения Неоперативный. При этом если у пользователя нет права на неоперативное проведение, выдается предупреждение: «Недостаточно прав для неоперативного проведения», и проведение документа отменяется.

Вариант «Оперативный»

Вариант Оперативный устанавливается посредством выбора значения Оперативный у свойства ИспользоватьРежимПроведения расширения формы документа.

В данном варианте, если дата документа (без учета времени) меньше текущей даты сеанса, выдается предупреждение: «Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если дата документа (без учета времени) равна текущей дате сеанса, производится запись документа с оперативным проведением.

Если дата документа (без учета времени) больше текущей даты сеанса, выдается предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Вариант «Неоперативный»

Вариант Неоперативный устанавливается посредством выбора значения Неоперативный у свойства ИспользоватьРежимПроведения расширения формы документа.

При испльзовании данного варианта проведение документа из формы всегда производится в неоперативном режиме, независимо от положения даты документа по отношению к текущей дате сеанса.

При этом еслу у пользователя нет права на неоперативное проведение, выдается предупреждение: «Недостаточно прав для неоперативного проведения», и проведение документа отменяется.

Вариант «Запрашивать»

Вариант Запрашивать устанавливается посредством выбора значения Запрашивать у свойства ИспользоватьРежимПроведения расширения формы документа.

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

В данном варианте пользователь перед началом проведения должен будет выбрать режим проведения документа в специальном системном окне.

Поведение системы при этом варианте определяется прежде всего положением даты документа (без времени) по отношению к текущей дате сеанса.

При равенстве этих дат далее проверяется, имеет ли пользователь право проводить документ неоперативно. Если пользователь такого права не имеет, система проводит данный документ в оперативном режиме. Если право на неоперативное проведение есть, пользователю выдается диалог с режимом выбора проведения. После выбора режима проведения система проводит документ соответственно в оперативном или неоперативном режиме.

Если дата документа (без учета времени) меньше текущей даты сеанса, поведение системы определяется опять же наличием права на неоперативное проведение у пользователя. Если пользователь таким правом не обладает, выдается предупреждение: «Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если право на неоперативное проведение есть, пользователю выдается диалог с режимом выбора проведения. После выбора неоперативного режима проведения система проводит документ в неоперативном режиме. Если же пользователь выберет оперативный режим проведения, выдается предупреждение: «Дата оперативно проводимого документа меньше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если дата документа (без учета времени) больше текущей даты сеанса, система не позволяет проводить документ оперативно. Поэтому если права неоперативного проведения нет, сразу выдается предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменяется.

Если право на неоперативное проведение есть, пользователю выдается диалог с режимом выбора проведения. После выбора неоперативного режима проведения система проводит документ в неоперативном режиме. Если же пользователь выберет оперативный режим проведения, будет выдано предупреждение: «Дата оперативно проводимого документа больше текущей. Документ не может быть проведен оперативно!», и проведение документа отменится.

Прочие функции

Кроме выбора режима проведения и установки даты документа, расширение формы документа реализует также следующий функционал:

  • при открытии формы проведенного документа, если у пользователя нет права Интерактивное изменение данных форма переводится в режим ТолькоПросмотр;
  • при открытии формы документа, в которой находятся таблицы, отражающие движения основного реквизита (объекта документа), эти движения автоматически считываются из базы данных и отображаются;
  • при записи из формы (даже если и программной – посредством Записать()) система выполняет проверку прав на интерактивное проведение или интерактивную отмену проведения.

При проектировании конфигурации 1С:Предприятия весьма важным моментом для понимания является процесс проведения документа.

Фактически документ в системе 1С:Предприятие являются объектом отражающим в информационной базе некоторое событие произошедшее в хозяйственной жизни предприятия (оприходование товара, получение денег от покупателя, оформление отпуска сотруднику, переоценка валютных остатков и т.д.). Структура данных документа должна отражать различные характеристики конкретного события. Документы, как объекты прикладной задачи, тесно связаны с различными учетными механизмами 1С:Предприятия. Причем эта связь проявляется именно в процессе проведения документа. Некоторые документы вообще могут не использовать механизм проведения. В этом случае они используются просто как средство регистрации события и печати формы первичного документа. Для таких документов, рекомендуется отключить признак проведения в свойствах документа в метаданных. Однако для большинства видов документов выполняется проведение для того, чтобы отразить событие в различных учетных механизмах 1С:Предприятия.

При проведении документа сама система только помечает его как проведенный. Собственно все действия документа при проведении описываются в конфигурации в модуле документа в процедуре «ОбработкаПроведения» на встроенном языке. В принципе в этой процедуре можно описать практически любые изменения в информационной базе. Однако механизм проведения документов предназначен для выполнения вполне ленных действий:

— Запись значений периодических реквизитов справочников, для которых установлена возможность изменения документами;

— Запись движений регистров оперативного учета;

— Запись данных в журнал расчетов;

— Запись бухгалтерских операций и проводок.

Заметим, что все перечисленные действия должны выполняться специальными средствами, ориентированными именно на использование в процессе проведения документа. Например, запись значения периодического реквизита справочника должна выполняться методом «УстановитьРеквизитСправочника», а не методами объекта «Периодический».

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

То есть все перечисленные действия записываются в информационную базу с привязкой к документу. Это позволяет не только посмотреть, какой документ выполнил конкретные действия, но и произвести их аннулирование и повторное воспроизведение. Например, если документ при проведении записал бухгалтерскую операцию с проводками то при его перепроведении ранее сформированные проводки автоматически удаляются и вычитаются из бухгалтерских итогов а новые записываются и вновь отражаются в итогах. То есть это позволяет автоматически изменять влияние события отражаемого документом на различные механизмы 1С:Предприятия.

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

Рекомендуется в алгоритме проведения документа не выполнять иных изменений в информационной базе кроме тех, которые приведены выше. Это объясняется тем, что все остальные действия, выполненные в процессе проведения, не будут привязаны к документу, то есть не будут автоматически аннулироваться при отмене проведения документа или его перепроведении.

Модуль документа может содержать две предопределенные процедуры «ОбработкаПроведения» и «ОбработкаУдаленияПроведения». В отличии от всех других предопределенных процедур 1С:Предприятия, которые в основном предназначены для специфической обработки интерактивных действий пользователя, эти две процедуры вызываются всегда при выполнении проведения и отмене проведения документа, вне зависимости от того, происходит это интерактивно или из встроенного языка.

Эти процедуры вызываются в автоматически открываемой системой транзакции вместе с собственно проведением и отменой проведения, что позволяет однозначно логически увязать действия, выполняемые в данных процедурах, с самим фактом пометки документа как проведенного и снятия этой пометки.

Следует учитывать, что если в ходе выполнения этих процедур выполняется изменение значений реквизитов документа, то по окончанию выполнения процедуры эти изменения будут записаны. Причем запись будет выполняться в той же транзакции.

Процедура «ОбработкаУдаленияПроведения» выполняется и в случаях удаления и пометки на удаление документа, то есть при любых случаях, когда отменяются выполненные документом при проведении действия, кроме случая перепроведения документа, так как при проведении выполняется процедура «ОбработкаПроведения».

Наличие предопределенной процедуры «ОбработкаУдаленияПроведения», позволяет в отдельных случаях организовать автоматическое аннулирование некоторых дополнительных изменений в информационной базе, которые выполняются в процессе проведения. Однако организация такого алгоритма требует особой аккуратности и хорошего понимания выполняемых действий. В общем случае, рекомендуется выполнять при проведении документа только перечисленные выше изменения в информационной базе, которые система сможет автоматически контролировать при любых действиях с документом. При использовании в процедуре проведения только специализированных средств изменения информационной базы написания предопределенной процедуры «ОбработкаУдаленияПроведения» не потребуется. В то же время, она может быть создана для контроля правомерности отмены проведения документа.

Таким образом, действия, которые должны быть логически жестко увязаны с проведением документа или отменой проведения нужно размещать именно в процедурах «ОбработкаПроведения» и «ОбработкаУдаленияПроведения» модуля документа, а не в предопределенных процедурах, обрабатывающих, например, интерактивные действия пользователя в журналах документов.

В версии 7.7 введена дополнительная возможность управления процессом проведения. В метаданных свойствах документа может быть отключен автоматический режим удаления движений в процессе проведения и отмены проведения. Отключение режима автоматического удаления движений рекомендуется выполнять в специальных случаях, так как очевидно, что это потребует более сложного написания модулей. Следует заметить, что отключение автоматического режима удаления не нарушает основной концепции проведения документов. Главным отличием этого варианта является то, что появляется возможность в процессе проведения уже проведенного документа записывать движения не «с чистого листа», а дописывать к созданным при прошлом проведении. А само удаление движений может быть выполнено в процессе перепроведения вызовом специального метода. При отмене проведения, разумеется, движения документа удаляются в любом случае. Разница заключается лишь в том, что при, выключенном режиме автоматического удаления движений, движения реально удаляются системой не до выполнения предопределенной процедуры «ОбработкаУдаленияПроведения», а после.

Особенности проведения документов оперативного учета

Проведение документов, относящихся к оперативному учету, имеет ряд особенностей, которые необходимо учитывать, как при создании конфигурации, так и при администрировании работы пользователей. Идеология механизмов компоненты «Оперативный учет» предполагает преимущественно последовательный ввод и проведение документов. Проведение документов «задним числом» должно осуществляться как исключение и обрабатывается системой отдельно.

Рекомендуется изменение и проведение документов задним числом рассматривать в качестве исправления ошибочно введенных или не введенных данных в информационной базе. То есть изменение и проведение документа задним числом должно производиться с целью приведения информационной базы в соответствие с реально произошедшими событиями, а не внесения произошедших позднее событий в качестве изменений в более ранние документы. Например, если выяснилось, что вчера на складе был оприходован товар, но не была введена соответствующая приходная накладная, то такой документ следует ввести задним числом, так как реально событие уже произошло. Аналогично можно исправить неверно заполненную приходную накладную, если оказалось, что на самом деле товаров было оприходовано больше, чем введено в документе . Если же сегодня осуществляется возврат товара от покупателя, проданного вчера по расходной накладной, то неверным будет исправление введенной расходной накладной (уменьшение количества отпущенного товара с учетом возврата). Заметим, что при этом остаток товаров на складе на утро текущего дня будет неверным. Правильно будет ввести текущей датой документ, отражающий возврат товара покупателем. В этом случае порядок следования и содержание документов в информационной базе будет соответствовать последовательности и содержанию событий хозяйственной жизни предприятия и это позволит реально восстановить картину учета на любой момент времени.

Так как запись и проведение документов может выполняться раздельно, в системе предусмотрен механизм обеспечивающий расположение документов не в порядке их записи, а в порядке проведения. Это позволяет обеспечить проведение всех документов в реальном времени, то есть с обращением в процессе проведения к текущим остаткам регистров. Ключевым моментом в этом механизме является точка актуальности (ТА), отражающая обычно позицию последнего проведенного документа, то есть последнее событие в хозяйственной жизни предприятие, зафиксированное в информационной базе.

Соответственно регистры оперативного учета отражают наличие различных средств на этот момент, или точнее «по этот момент», так как движения документа стоящего на ТА включается в текущие остатки регистров.

В процессе проведения документа пользователем из формы документа система распознавая возможность появления конфликтных ситуаций, выдает пользователю сообщения-запросы, чтобы корректно разрешить возможный конфликт. Таких ситуаций может быть три:

  • дата проводимого документа меньше даты ТА (документ проводится задним числом);
  • после нового документа существуют проведенные документы (документ проводится той же датой, что и дата ТА, но время нового документа меньше времени ТА);
  • существуют более ранние проведенные документы (новый документ проводится за ТА, но между новым документом и ТА уже есть ранее проведенные документы).

Рассмотрим подробнее эти ситуации. На приведенных ниже схемах обозначена ось времени с отметками моментов перехода на новую дату, времени Точки

Актуализации (ТА), времени ввода нового документа ( Новый документ ).

Значком на схемах обозначены существующие проведенные документы.

Значкомна схемах обозначены новые документы, которые проводятся.

Значкомна схемах обозначены существующие проведенные документы, которые

находятся за моментом ТА (они не учтены в остатках регистров).

Дата документа меньше ТА

На рисунке приведена схема ситуации, когда документ проводится задним числом, дата документа меньше даты ТА и между документом и ТА существуют ранее проведенные документы.

Время документа в 1С:Предприятии служит в основном для расстановки документов в определенном порядке, а не для отражения астрономического времени ввода документа. Поэтому при проведении документа время может быть исправлено. Однако дата документа является его важным реквизитов и не исправляется системой автоматически.

Так как в данном случае дата документа меньше ТА, то система не может обеспечить проведение данного документа в реальном времени. В этом случае система выдает следующее сообщение:

«Дата документа меньше ТА! Провести документ задним числом ?»

Данным сообщением программа предупреждает пользователя, что проведение документа нарушает естественную последовательность ввода документов. Если алгоритм Модуля движения регистров данного документа предусматривает данную ситуацию, например, запускает временный расчет регистров, или для данного документа эта ситуация не является конфликтной (например для выписки приходной накладной не анализирующей текущие остатки регистров), то можно нажимать кнопку «Да». В противном случае, когда правильность проведения нового документа зависит от временной последовательности проведения документов, следует нажимать кнопку «Нет». Тогда документ будет записан, но не проведен. В дальнейшем можно будет провести данный документ в режиме группового проведения, используя операцию «Управление итогами», откатив ТА назад, а затем снова вперед с одновременным перепроведением документов. При групповом проведении документы проводятся последовательно, в естественном временном порядке с получением текущих итогов регистров.

Решение, которое должен принимать пользователь, зависит от конкретной конфигурации и алгоритма проведения конкретного документа. Поэтому мы рекомендуем, по возможности, предусматривать в алгоритмах проведения документов обработку ситуаций проведения документов задним числом или ограничить возможность пользователей проведения документов задним числом.

После данного документа существуют проведенные документы

На рисунке приведена схема ситуации, когда документ проводится той же датой, что и дата ТА, но время документа меньше времени ТА и между документом и ТА существуют ранее проведенные документы.

В этом случае система выдает следующее сообщение:

«Время документа меньше точки актуальности. Существуют более поздние проведенные документы.»

Пользователю предлагается выбрать один из двух вариантов:

  • Провести документ задним числом.
  • Изменить время документа.

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

Как уже отмечалось, компонента оперативного учета предполагает последовательный ввод и проведение документов, поэтому данный вопрос системы позволяет автоматически перенести документа за точку актуальности в процессе проведения, то есть провести его в актуальном состоянии.

Выбор пользователя в данном случае должен определяться тем, отражает ли данный документ событие, происходящее в данный момент времени, или он отражает событие произошедшее в начале дня (в более раннем времени) и по ошибке не нашедшее отражение в системе.

Наиболее типовым случаем, когда выдается данный вопрос, является ситуация, при которой пользователь записал новый документ, но перед тем как он начал его проводить, другим пользователем был проведен более поздний документ.

Так как событие документа фактически отражается им в регистрах в момент проведения, разумеется, для соблюдения последовательность проведения документов следует выбирать вариант «Изменить время документа».

Вариант «Провести документ задним числом» следует выбирать в том случае, когда документ умышленно помещен до точки актуальности, и он отражает событие, которое произошло ранее событий отраженных более поздними проведенными документами.

Следует заметить, что параметры системы, настраиваемые пользователем в закладке «Оперативный учет» режима «Параметры», позволяют установить режим, при котором данный вопрос выдаваться не будет. Проведение документа с переносом его за ТА будет выполняться автоматически при проведении новых документов в текущей дате. Кроме того, существует возможность установить параметр, который будет автоматически выбирать время записи нового документа более поздним , чем ТА . Это позволит уменьшить вероятность возникновения описанной ситуации, даже при сильных расхождениях таймеров компьютеров пользователей, так как новые документы будут записываться не с текущим временем компьютера, а после ТА.

Кроме того, существует возможность регулировать проведение документов (проводить в реальном времени или задним числом) в модуле формы документа средствами встроенного языка (при использовании метода «Провести»). В этом случае, существует специальная возможность проводить в реальном времени уже проведенный документ. При этом, фактически, обеспечивается перепроведение документа в реальном времени (с переносом его за ТА). Очень важно, что в этом случае и удаление существующих движений и формирование новых выполняется в единой транзакции. Например, в типовой конфигурации «Торговля и склад» (редакция 8) этот механизм используется для предварительного проведения расходной накладной. Фактически, пользователь может несколько раз выполнять проведение документа в текущей дате в реальном времени. Если бы он распроводил документ и проводил заново, то существовала бы вероятность того, что другой пользователь отгрузит «дефицитный» товар и повторное проведение уже не будет выполнено. При перепроведении в реальном времени, другие пользователи не могут «вклиниться» между удалением движений и формированием новых.

Существуют более ранние проведенные документы

Приведенная на рисунке схема отражает ситуацию, когда документ проводится после ТА, но между проводимым документом и ТА уже есть ранее проведенные документы.

В этом случае система выдает следующее сообщение:

«Существуют более ранние проведенные документы!»

Этим сообщением программа предупреждает пользователя о том, что проведение документа сейчас невозможно, т.к. в данном случае проведение документа должно подразумевать сдвиг ТА вперед с зачислением в регистры движений ранее проведенных документов. Но такой процесс, должен производиться только в режиме «Управления оперативными итогами» или операцией «Установить ТА на документ». Поэтому в данном случае документ не проводится.

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

Особенности написания алгоритма проведения оперативного документа

При написании модуля оперативного документа следует учитывать, что использование текущих итогов регистра в процессе проведения может выполняться только если метод «ИтогиАктуальны» возвращает значение «1». При этом обращение к текущим итогам может выполняться методами объекта «Регистр» или объектом «Запрос» с периодом без указания конечной границы.

Если метод «ИтогиАктуальны» возвращает «0», то при использовании объекта «Регистр» следует выполнять временный расчет на текущий документ, а при использовании объекта «Запрос», следует указывать в качестве конечной границы текущий документ.

Кроме того, при написании алгоритма проведения в некоторых случаях следует учитывать, что проведение может выполняться в процессе группового проведения (метод «ГрупповаяОбработка»). Например, в этом случае, очевидно, не следует выполнять проверку наличия товара на складе и прерывать проведение, если текущее количество товаров не соответствует затребованному, так как документ уже был оформлен и должен быть перепроведен в соответствии с указанными данными. Проверки текущего наличия товаров, обычно, имеют смысл при текущей работе пользователей, чтобы исключить продажу закончившегося товара.