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