1с 8.3 бух обработка установка последовательности. Бухучет инфо. Процесс записи документа

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

Рассмотрим настройку и свойства последовательностей в 1С 8.2.

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

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

Получите 267 видеоуроков по 1С бесплатно:

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

Пример использования последовательности в 1С

Пример программной установки границы последовательности:

Последовательности. ПартионныйУчет. УстановитьГраницу(МоментВремени() ) ;

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

ГраницаМоментВремени = Последовательности. ПартионныйУчет. ПолучитьГраницу() ;

Последовательность и производительность 1С Предприятие

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

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

Восстановление границы последовательности проведения документов в 1с 8.3

Печать (Ctrl+P)

Последовательности документов

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

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

Управление списком последовательностей

Работа по созданию объектов конфигурации типа Последовательность ведется в окне Конфигурация. Для последовательности отведена отдельная ветвь дерева конфигурации, которая расположена «внутри» ветви Документы и начинается у ключевого слова Последовательности .

Свойства последовательности документов

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

Свойства последовательности

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

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

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

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

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

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


Свойства измерения последовательности

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

Работа с последовательностями документов

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

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

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

1.2. Дата и время документа

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

1.3. Порядок расположения документов

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

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

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

1.4. Изменение документов "задним числом"

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

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

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

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

1.5. Перепроведение документов

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

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

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

2. Проблема проведения последовательности при работе с УРБД

Давно уже хотел разобраться, почему бывает так что не работает стандартное проведение последовательности.
  • Было взято 3 метода: ПринадлежитПоследовательности - как метод документа;
  • ПринадлежитПоследовательности - как метод последовательнсоти;
  • Сравнить - как метод последовательности. Был проведен опыт на базе, с УРБД (ЦБ) в SQL формате.
Для опыта использовались таблицы _1SJOURN, _1SSTREAM. В Таблице журналов собственно интересовало поле "DS7536" где 7536 - десятичный код последовательности.

При попытке востановить последовательность проводятся лишь те доки, для которых поле DS7536 = 1. Т.е. для рещения проблемы восстановления последовательности - надо для всех проведенных доков и которые после ГП установить поле DS7536 = 1. А теперь собственно говоря, почему такое возникает? Т.е. почему при доступных значениях метода последовательности "ПринадлежитПоследовательности" 0 и 1 есть еще значения и 2?

Первое условие:
Все документы вводятся в переферийной ИБ, при этом в свойствах миграции последовательности стоит флаек на "Единая последовательность в центральной ИБ". Соответсвенно в переферийной ИБ (где вводятся все документы) поле DS7536 всегда равно или 0 или 2, и соответсвенно метод ПринадлежитПоследовательности всегда возвращает 0 или 2. И что интересно, при автообмене в ЦБ также передается значение поля DS7536 равным 2

Теперь вспомним что происходит при проведении последовательности стандартным методом. 1С делает не проверку через метаданные принадлежности последовательности (что правильно, так как есть еще движения, влияющие на последовательность и только по движениям/проводкам можно сказать что документ входит в последовательность или нет), а проверяет поле DS7536, которе равно 2. Ну и конечно же 2 <> 1 и восстановленеи последовательности не приводит к проведению доков, входящих в последовательность.

Подытожим.

  1. Если база распределенная и документы вводится не в ЦБ, при этом стоит флажок в окне свойств последовательности "Единая последовательность в центральной ИБ", то поле DS7536 всегда равно 0 или 2 (что в принципе правильно).
  2. Во время автообмена происходит глюк, который приводит к тому, что поле DS7536 загружается с периферийной ИБ и становится равным 2. 3. 1С во время проведения перепроводит только те документы у которых поле DS7536 = 1.
ЗЫ Возможно, что глюк не на втором этапе, а на третьем.

Как побороть?

  1. Можно восстанваливать последовательность своими методами, проверяя принадлежность документа к последовательности через метаданные (что может привести к избыточности проводимых документов, так как документ может и не делать движений(проводок) по значениям влияющих на пересчет итогов).
  2. надо установить поле DS7536 = 1, для тех случаев когда оно равно 2
Также что выяснилось в процессе исследования: - в переферийной ИБ всегда последовательность находится на последнем (по времени на оси времени, или по полю Date_time_IDDOC) проведенном документе. - каким то непонятным образом (пока непонятным) если последовательность отслеживается по бух счетам и регистрам - выборка происходит только по проводкам, т.е. движения регистров игнорируются (может я чего то недоглядел).

ПОСЛЕДОВАТЕЛЬНОСТЬ …и как "я" её понимаю …

Последовательностьесть объект метаданных 1С.

Последовательность - предназначена для упорядоченного хранения множества документов согласно дате и времени.

Граница последовательности (ГП) - позиция, последнего введённого документа в последовательность. Если после ГП есть другие документы в последовательности, то последовательность считается нарушенной и её необходимо восстановить.

Логически - последовательность можно условно представить как «Общий» журнал документов входящих в эту последовательность. Условно, потому, чтона последовательностях строится логика учета.

У некоторых последовательностей, для дополнительного контроля автоматически при движении регистров, отслеживается связь: регистр - последовательность. Если изменился регистр, должна измениться и последовательность.

Физически - последовательность состоит из двух таблиц:

1. Таблица регистрации;

2. Таблица границ.

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

Таблица границ (ТГ) - хранит границу последовательности в разрезе измерений, одно измерение - одна запись если измерений нет, то у ТГ одна запись. Запись ТГ показывает, какой документ в ТР является последним правильно проведённым, т.е. не нарушившим правильное ведение учёта.

Обе таблицы идентичны по составу колонок: «Период», «Регистратор», «Измерение».

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

Механизм «последовательность» имеет подчинённые объекты, свойство - измерения.

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

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

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

Регистрация документа в последовательности, т.е. в ТР, производится в момент его записи.

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

Запись в ТГ происходит при проведении документа.

При проведении документа, его движения учитываются в:

· «Оперативном учёте» - записывает движения документа в регистрах;

· «Бухгалтерском учёте» - запись проводок.

ПоследовательностьМенеджер.< ИмяПоследовательности > - Данный менеджер предназначен для управления последовательностью:

Последовательность.«ИмяПоследовательности».

Восстановить

ПолучитьГраницу

ПолучитьГраницы

Принадлежит

Проверить

СоздатьНаборЗаписей

УстановитьГраницу

Вся работа «ПоследовательностьМенеджер» складывается из анализа и работы с ТР и ТГ. Например, метод «Проверить» - если документ в ТГ, есть последний в ТР, значит, последовательность не нарушена и наоборот и т.д.

вооОоот …

П.С.1.

Как пользоваться обработкой.

В зависимости от закладки появляются необходимые реквизиты для заполнения. При их заполнении, в закладке, в соответствующих таблицах смотрим данные.

П.С.2.

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

П.С.3.

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

С уважением, Шёпот теней.

Общее

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

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

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

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

Реализация

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

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

Регистрация документа в последовательности может осуществляться автоматически. Для этого разработчик должен настроить соответствия между реквизитами документа и измерениями последовательности документа. Если в соответствии был указан один или несколько реквизитов табличной части документа, то документ будет зарегистрирован в последовательности ровно столько раз, сколько в данной табличной части строк с уникальной комбинацией значений соответствующих реквизитов. Если в соответствиях с измерениями последовательности были указаны реквизиты разных табличных частей, то документ будет зарегистрирован столько раз, сколько уникальных комбинаций значений можно составить из соответствующих реквизитов этих табличных частей. Если все табличные части имеют во всех строках уникальные сочетания значений соответствующих реквизитов, то количество регистраций будет равно N1*N2...*Ni раз, где Ni количество строк соответствующей табличной части, реквизиты которой участвуют в соответствиях.

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

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

Таблица регистрации имеет следующие поля: период, регистратор, измерения последовательности. В таблице регистрации документов хранятся записи уникальные по измерениям в пределах одного регистратора. То есть для определенной комбинации значений измерений по одному регистратору, хранится только одна запись, но может храниться множество записей с одним и тем же набором значений реквизитов для различных регистраторов. Работа с данными этой таблицы происходит через набор записей регистрации документа в последовательности документа. У объекта документа есть коллекция наборов записей регистрации в последовательностях документов. Наборы записей из этой коллекции используются для регистрации документа в последовательностях при записи документа. Важно помнить, что при отмене проведения, отмена регистрации в последовательностях документов не происходит. Но не проведенный документ не участвует в восстановлении последовательности. В остальном, работа с набором записей регистрации документа в последовательности точно такой же, как и с набором записей любого регистра.

Граница последовательности показывает момент времени (границу), по которую документы проводились в правильной последовательности. Структура таблицы границ аналогична структуре таблицы регистрации, но содержание и смысл ее отличается. В отличие от таблицы регистрации, в таблице границ может содержаться только уникальные по набору значений измерений записи. То есть для определенной комбинации значений измерений, хранится только одна запись. Период и регистратор задают момент времени границы по данным измерениям. Изменять содержимое таблицы границ последовательности можно только через объект менеджер последовательности документов.

Процесс записи документа

Начало транзакции

Запись документа



Конец транзакции

Процесс записи документа с проведением

Начало транзакции
Автоматическое заполнение наборов записей регистрации документа в последовательности
Вызов предопределенной процедуры ПередЗаписью()
Запись документа
Вызов предопределенной процедуры ПриЗаписи()
Вызов предопределенной процедуры ОбработкаПроведения()
Запись измененных и не записанных наборов записей движений документа
Проверка и перенос границ последовательностей на момент времени движений (данное действие производится в наборе записей, не в документе!)
Запись измененных и не записанных наборов записей регистрации документа в последовательностях
Проверка и перенос границы последовательности на момент времени регистрации документа

Конец транзакции

Процесс записи документа с отменой проведения

Начало транзакции
Автоматическое заполнение наборов записей регистрации документа в последовательности
Вызов предопределенной процедуры ПередЗаписью()
Вызов предопределенной процедуры ОбработкаУдаленияПроведения()
Удаление движений документа
Проверка и перенос границ последовательностей на момент времени движений (данное действие производится в наборе записей, не в документе!)
Запись документа
Вызов предопределенной процедуры ПриЗаписи()
Запись измененных и не записанных наборов записей регистрации документа в последовательностях

Конец транзакции

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

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


Top