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