что такое неоперативное проведение документа в 1с
Оперативное и неоперативное проведение документов 1С
В системе 1С Предприятие существует два вида проведения документов: оперативное и неоперативное. Рассмотрим, чем они отличаются.
Что такое проведение?
В общем, с точки зрения пользователя проведение — это процесс «утверждения» документа в системе 1С. Пока документ не проведён, он не имеет никакой силы и не влияет на учёт предприятия.
С технической точки после проведения в системе образуются образуются проводки и движения — записи регистров, пока документ не проведен, записей быть не должно (бывают и исключения).
Оперативное и неоперативное проведение документов 1С
Режим проведения и контроль остатков в типовых конфигурациях 1С
В типовых конфигурациях фирма 1С грамотно подошла к вопросу реализации контроля остатков в документах.
В режиме неоперативного проведения система НИКОГДА не контролирует остатки.
Это достаточно логичный подход, если хозяйственный документ вводится задним числом, это уже не нормальная ситуация с точки зрения учета, и система перекладывает ответственность за остатки в прошлом периоде на пользователя.
Получите понятные самоучители по 1С бесплатно:
Другие статьи по 1С:
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Инструменты пользователя
Инструменты сайта
Боковая панель
Базовые положения
Общие объекты
Общие метаданные
Прикладные объекты
Содержание
Документы
Описание
Документы в 1С как правило отражают хозяйственную деятельность организации (поступление товара, расход из кассы, продажа товара итд), как правило на каждое такое действие, существует бумажный документ, которые фиксирует это событие, например расходная накладная фиксирует факт продажи товара. А платежное поручение факт списания денежных средств с расчетного счета. Документы разумеется не всегда имеют бумажные аналоги, бывают случаи, когда нужно просто зафиксировать какое то событие(клиент спросил товар который закончился). Любой документ в 1С имеет следующие стандартные реквизиты:
Момент времени
Дата и время документа.
При вводе документа система автоматически устанавливает текущие дату и время документу. Это поведение настраивается на уровне свойств документа.
Оперативное и неоперативное проведение документа
При написании обработчика проведения документа, следует обратить внимание что перепроведение не измененного документа не должно изменять его движений, вне зависимости от режима проведения. Движения документа должны опираться на данные документа а не на данные базы данных. Бывают исключения(например расчет себестоимости) но в целом это правило должно соблюдаться.
Оперативное проведение
Оперативное проведение – это проведение и получения остатков(например для контроля) на текущий момент, то есть при оперативном перепроведении дата будет сдвигаться на текущую и в таком случае можно при списании остатков проверить «текущий» остаток, что происходит достаточно быстро, благодаря хранению текущих остатков в отдельной таблице.
Неоперативное проведение
Неоперативное проведение – это проведение документа, на любую дату в прошлом, как правило ввод докумнта «задним числом» или отражение какой либо уже свершившейся операции. Предполагается, что так как документ фиксирует уже свершившийся факт, то к примеру контроль остатков ему уже не нужен, в то же время получение остатков на дату отличную от текущей предполагает под собой некоторые вычисления и снижает производительность системы при проведении документа.
Состояние документа
Документ всегда находится в каком то одном из трех состояний
Движения документа
Часто используемые классы
У документа может быт настроен период в рамках которого номер считается уникальным, в таком случае необходимо указать любую дату из этого интервала.
Здесь мы отобрали все документы, у которых дата попадает в 2008 год и значение реквизита «Клиент» равно содержимому переменной «СпрИванов».
Ввод на основании
Ввод на основании служит для ввода нового объекта одного вида, на основании данных объекта другого вида, например ввод счета фактуры на основании документа реализация. Этот прием удобен тем, что при вводе на основании в приемнике срабатывает процедура ОбработкаЗаполнения в которой доступен источник ввода на основании, и его данные можно использовать для заполнения данных текущего объекта. Данные заполняются из программного кода, автоматически система ничего не фиксирует. Ввод на основании доступен для следующих типов метаданных:
Что такое неоперативное проведение документа в 1с
Этот вопрос задает себе каждый пользователь, который слышит эти слова.
Немного прописных истин:
Что такое вообще проведение документа? Это как подпись документа в реальной жизни. Документу придали силу. До подписи (проведения) — это просто бумажка, после — событие!
Оперативное проведение — это проведение документа текущим временем.
Неоперативное — это проведение документа ранее текущего времени. Даже в тот же день, тот же час, пусть на секунду раньше текущего времени — это уже неоперативно. Классический вариант — перепроведение документов прошедшей датой.
Позже текущего времени, или как говорят, «будущей датой», в 8-ке документ провести нельзя в принципе.
Опыт, накопленный годами:
Фирма 1C по пятнадцатилетнему опыту развития и поддержки 7-ки решила, что в 8-ке контроль остатков (товаров, взаиморасчетов и т.д.) будет проводиться только при оперативном проведении. В случает отсутствия остатков, документ не будет проведен. Внимание! А при неоперативном проведении документ будет проведен всегда! Последнее предложение надо перечитать несколько раз.
Как же так, спросите вы? А если товара нет, какие движения сформирует документ?! Такие, какие сможет.
Чтобы это понять (и принять), у меня ушло два месяца. А еще спустя полгода, я понял всю силу такого подхода. Это действительно хорошее решение!
Смысл в том, что контроль имеет смысл только при оперативной работе. А если задним числом что-то съехало — это результат работы задним числом. Кто ломал, тот пусть и делает.
В частности, в результате такого подхода меняется характер работы с базой. Теперь база перепроводится на ура, но в ней надо искать ошибки. Для этого существует серия обработок для проверки.
В заключение хочется отметить, что такая методика работы не связана с самой платформой 1С 8. В 8-ке можно было бы сохранить методику, заложенную в 7-ке. И в 7-ке можно было бы реализовать рассмотренную здесь методику. Поменялся именно подход к работе с базой.
Получается, что в 7-ке, где в одном отчете о продажах за день может быть 1000 позиций и не проводится только из-за одной, не проводится весь документ.
А в 8-ке, где в одном отчете о продажах за день может быть 1000 позиций, и ругается только по одной, ошибка только по этой позиции.
Подробнее о записи и проведении документов.
Оперативное и неоперативное проведение документов в 1С 8.3
Режим проведения документа
В первом случае файл проводится с учетом нынешнего времени, благодаря этому программа может контролировать многие торговые процессы, к примеру, списание товаров или их продажа. Данный режим стоит применять, если нужна информация на текущий момент, так как если провести операцию чуть позже, данные будут уже совсем другими. Новый документ автоматически будет работать в данном режиме.
Неоперативное проведение ведет работу с прошлым или будущим, не ведя учет остатков. Часто бывает, что пользователь создал документ, но еще не провел его. Именно для таких случаев и предназначен этот режим, он позволяет избежать контроля программы, но это может привести к некоторым ошибкам или неточности учета. Например, будут списаны товары, которых уже нет в наличии. Так что лучше доверить выбор режима проводки 1С, программа сама подберет нужный способ.
Значения свойства «Оперативное проведение» у документов: «Разрешить» и «Запретить»
Рассмотрим, какие действия нужно провести чтобы включить оперативную настройку в программе «1С: Бухгалтерия предприятия 3.0». В предыдущих версиях порядок будет идентичным.
Запускаем программу через режим «Конфигуратор», открываем конфигурацию. Далее, находим дерево метаданных, раздел «Документы» и открываем свойство любого файла.
Для того, чтобы проводка была совершенна немедленно, ставим параметр «Разрешить». Проводить документы таким способом можно в обоих режимах. Регистры не влияют на оперативный вариант. С установленным значением «Разрешить» проводка может осуществляться как в прошлом, так и нынешнем времени. В случае использования прошедшей даты документ будет проведен в неоперативном режиме.
Крайне не рекомендуется менять настройки установленные разработчиком, так как это может повлиять на процессы проведения документов и сбить алгоритмы программы. Не стоит изменять системное время и день проведения работы в 1С для того, чтобы поменять дату оперативного проведения. Это приведет к неправильным бухгалтерским расчетам, которые в дальнейшем вызовут вычислительные ошибки в учете.
Назначение и методика использования механизма оперативного проведения документов
Для ввода в систему информации о событиях, происходящих в жизни предприятия, таких, как отгрузка товара, приход денег на счет и т.д. в 1С:Предприятии используются документы. Для отражения событий в различных учетных механизмах (регистрах) существует механизм проведения документов. В процессе проведения документ записывает движения в различные регистры. Проведение может выполняться в оперативном и неоперативном режиме. Таким образом, оперативное проведение является частью механизма проведения документов.
Механизм оперативного проведения предназначен для того, чтобы разделить случаи, когда документ проводится в реальном времени, и случаи, когда проведение документа отражает уже свершившийся факт.
Проведение в реальном времени необходимо тогда, когда ввод и проведение документа не просто фиксируют в системе произошедшее событие, а участвуют в его формировании, помогая оператору правильно ввести информацию. Разумеется, это имеет смысл только в тот момент, когда данное событие происходит в реальной жизни.
Классическим примером является ввод и проведение документа, отражающего продажу товаров со склада. При вводе такого документа в задачу оператора входит не только правильный ввод списка товаров, которые приобретает покупатель, но и выполнение различных проверок. Прежде всего, необходимо проверить, что запрашиваемый товар имеется на указанном складе. При этом очень важно, чтобы проверка учитывала тот факт, что одновременно с этим оператором работают и другие операторы, которые могут одновременно выписывать те же самые товары. Соответственно задачей системы является не допустить продажу одного и того же товара двум покупателям. Кроме того, может потребоваться и проверка доступного покупателю размера кредита или наличие факта оплаты счета, а также другие самые разнообразные проверки.
Однако, если документ вводится задним числом, то есть в момент его ввода известно, что такое событие уже произошло в жизни предприятия, например, конкретный товар уже отгружен клиенту, необходимость в таких проверках отпадает и нужно просто отразить в учете произошедшее событие. В этом случае проведение документа только фиксирует событие, а не участвует в его формировании.
Таким образом, задача механизма оперативного проведения заключается в разделении этих двух вариантов проведения и с точки зрения пользователя, чтобы он понимал, какой вид проведения выполняется, и с точки зрения алгоритма проведения документа, чтобы тот отработал действия, соответствующие текущему варианту проведения.
Рассмотрим, как система обеспечивает поддержку данного механизма.
Саму возможность оперативного проведения нужно устанавливать в метаданных для конкретного вида документов (свойство «Оперативное проведение»). По умолчанию, возможность оперативного документа включена. Соответственно, для тех документов, для которых оперативное документа не имеет смысла, его следует в метаданных отключить. Тогда любое проведение документа будет считаться неоперативным.
Однако кроме передачи информации в обработчик при оперативном проведении выполняется также автоматическое изменение времени документа. Для этого используется поддерживаемый системой механизм оперативной отметки времени. Он позволяет при одновременной работе нескольких пользователей получать возрастающую последовательность значений типа Дата в пределах дня. Механизм оперативной отметки выдает текущее время или большее на одну секунду последней выданной какому-либо пользователю отметки, если последняя выданная отметка больше или равна текущему времени.
Оперативная отметка позволяет расставить документы в той хронологической последовательности, в которой реально происходили события в жизни предприятия. Это весьма полезно для того, чтобы порядок следования документов и их движений в информационной базе соответствовал реальной последовательности событий, а, следовательно, адекватно бы отражался в различных учетных задачах зависящих от последовательности движений, например, в задачах списания товаров по методам LIFO и FIFO. При записи документа с оперативным проведением система получает очередную оперативную отметку времени и присваивает ее свойству Дата документа. Соответственно, в процессе оперативного проведения документ перемещается в пределах дня на время, выданное механизмом оперативной отметки. Таким образом, все оперативно проводимые документы располагаются в пределах дня в порядке их проведения, то есть в том порядке, в котором происходили события в жизни предприятия.
При оперативном проведении документа система меняет время документа, однако не меняет день. Это объясняется тем, что дата документа (без времени) имеет, как правило, юридический смысл и должна вводиться пользователем в явном виде. Подробнее про работу механизма оперативной отметки времени можно прочитать в статье «Особенности использования системной даты компьютера при оперативном проведении документов».
Так как неоперативное проведение является более ответственной операцией, то система предоставляет разработчику возможность отдельно регулировать права пользователей на такой вид проведения. Для этого используется право «Интерактивное проведение неоперативное». Следует заметить, что это право действует только при использовании стандартных команд, предоставляемых расширениями форм. Если вызов проведения выполняется средствами встроенного языка, то данное право следует проверять в модулях самостоятельно.
В обработчике ОбработкаПроведения() разработчик, получая текущий режим проведения в качестве значения параметра, должен самостоятельно реализовать изменение алгоритма проведения в зависимости от значения данного параметра. При этом рекомендуется для оперативного проведения выполнять различные проверки, которые необходимы для определения правомерности совершаемой операции. Это может быть проверка наличия товаров на складе, проверка задолженности покупателя и т.д. В этих проверках следует обращаться к текущим остаткам регистров, а не получать итоги на момент времени документа. Система поддерживает текущие остатки в актуальном состоянии, поэтому обращение к текущим остаткам должно выполняться быстро и такое обращение должно обеспечивать высокую параллельность, так как транзакционные блокировки будут накладываться на записи (а точнее, диапазоны ключей) соответствующие запрашиваемым данным.
При неоперативном проведении не рекомендуется выполнять такого рода проверки. С одной стороны, расчет итогов на момент времени документа может занять продолжительное время, а с другой стороны такая проверка не имеет большого смысла. Например, проверяя наличие товаров на некоторый момент времени, мы можем проверить только правомерность выписки конкретного документа, но при этом изменятся условия проведения всех последующих документов и, соответственно, необходимо проверять все последующие документы, в которых отпускались данные товары.
Кроме того, если документ вводится по уже совершенной операции, то в системе отражается уже свершившийся факт, и даже если при этом получаются, например, отрицательные текущие остатки, то ошибка может быть совсем не в этом документе, а в любом другом. Таким, образом, речь уже не идет о проверке правомерности совершения операции и соответственно проверки, выполняемые при оперативном проведении делать не нужно.
В любом случае, необходимо понимать, что проверки которые будут выполняться при неоперативном проведении это не проверки правомерности совершения операции, а проверки правильности ввода документа и при анализе целесообразности включения таких проверок следует соотносить затраты времени на такие проверки и их эффективность. Проверки отдельных документов могут выявить только незначительное количество ошибок и требуют при этом достаточно больших затрат времени, что может существенно сказаться на производительности всей системы.
Для проверки правильности заполнения документов после изменения задним числом, если это необходимо, можно предусмотреть специальную регламентную обработку, которая будет проверять все документы за период и, соответственно, не будет замедлять текущую работу при вводе этих документов.
Наряду с вводом документов задним числом можно записывать документы и их движения будущим временем, то есть вводить информацию, о еще не произошедших событиях. Однако следует учитывать, что это нарушает логику работы механизма оперативного проведения, так как текущие остатки регистров при этом перестают отражать реальное состояние учета (складских остатков, задолженностей и т.д.) и в этом случае проверки текущих остатков при оперативном проведении не будут выдавать адекватной информации. Стандартные команды форм не разрешают пользователю проводить оперативно документы, введенные будущей датой, и не предлагают для них при автоматическом выборе режима проведения выполнить неоперативное проведение. Если выполняется попытка программно вызвать оперативное проведение документа будущей датой (относительно текущей даты или оперативной отметки времени), то выдается соответствующее сообщение.
Разумеется, накладываемые ограничения это только предлагаемая методология оперативного проведения. Существует возможность вызвать неоперативное проведение программно и предоставить пользователю возможность в форме самостоятельно выбрать режим неоперативного проведения. Однако рекомендуется, без особых оснований, не нарушать логику работы оперативного проведения и обеспечивать наличие движений в регистрах только по уже совершенным операциям (не допуская наличия движений по еще не совершенным операциям). Тогда текущие итоги регистров будут отражать реальное состояние учета, и это позволит при оперативном проведении получать адекватные результаты при проверке текущих итогов регистров.
Также не рекомендуется разрешать пользователям менять системную дату компьютера для изменения логики работы механизма оперативного проведения. Подробнее этот момент отражен в статье «Особенности использования системной даты компьютера при оперативном проведении документов».
Следует заметить, что, как и сам механизм проведения, оперативное проведение является только предлагаемой платформой методологией. Разработчик прикладного решения может использовать ее, или нет для каждого вида документов по своему усмотрению. Однако, использование стандартной методологии в прикладных решениях для тех задач, для которых она предназначена, позволяет, с одной стороны, решить задачу достаточно быстро, а с другой стороны, делает создаваемое решение понятным для любого разработчика, которому будет необходимо в нем разобраться.