Смекни!
smekni.com

Особенности архитектуры. Принципы организации регистров оперативного учета (стр. 6 из 6)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Принципы организации бухгалтерских операций и проводок

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

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

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

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

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