Закрытие месяца. Ручной перенос границы последовательности. Использование последовательностей (1Cv8) Процесс записи документа с проведением

Главная / Налоги

Печать (Ctrl+P)

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

В версии 1С 3.0.62.1 добавлен механизм ручного переноса границы последовательности без обязательного перепроведения документов с даты внесенного изменения.

Назначение и использование

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

Наиболее частая причина нарушения Границы последовательности - ввод документов «задним» числом или изменение уже введенных документов. В этом случае программа требует восстановить нарушенную последовательность документов, начиная с даты нарушения.

Почему нужно восстанавливать границу последовательности?

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

  • Могут возникнуть отрицательные остатки на складе из-за того, что в момент выписки расходной накладной на складе еще не было товара, оформленного приходной накладной.
  • Будет неверно выполнен расчет средней стоимости товара.

Рассмотрим, как ввод документов «задним» числом может привести к ошибкам в учете.

При вводе аванса «задним» числом, программа не сможет учесть аванс - для этого нужно восстановить последовательность документов: провести отгрузку после внесенной банковской выписки. Тогда зачет аванса появится в проводках документа реализации.

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

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

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

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

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

  • процедуре Закрытие месяца : раздел Операции - Закрытие периода - Закрытие месяца - ссылка Перепроведение документов .

  • процедуре Проведение документов : кнопка Главное меню - Все функции - Стандартные - Проведение документов - вкладка Проведение документов .

Вкладка Восстановление последовательностей не используется.

  • обработке Групповое перепроведение документов : раздел Операции — Сервис — Групповое перепроведение документов .

Перенос границы последовательности

Перенос границы последовательности документов выполняется в процедуре Закрытие месяца по ссылке Перепроведение документов : раздел Операции - Закрытие периода - Закрытие месяца - Перепроведение документов .

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

  • Перепроведение нарушенной последовательности
  • Перепроведение текущего месяца
  • Перепроведение не требуется

Перепроведение нарушенной последовательности

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

Перепроведение только текущего месяца

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

Операция Перепроведение документов в нарушенных периодах выглядит как восстановленная:

  • Цвет выполненной операции - зеленый.

Но документы за период с 31.01.2017 по 01.06.2018 не перепроведены, а значит, возможны ошибки в рассчитанной себестоимости ТМЦ, зачете авансов и т. д. за этот период.

Перепроведение не требуется

В данном случае граница последовательности устанавливается на конец текущего месяца. Это значит, что проводки документов до конца текущего месяца будут считаться корректными - документы при этом не перепроводятся.

Операция Перепроведение документов в нарушенных периодах выглядит как восстановленная.

  • Цвет выполненной операции – зеленый.
  • Выставлен флажок выполнения операции.

Но документы за период с 31.01.2017 по 30.06.2018 не перепроведены, а значит, возможны ошибки в рассчитанной себестоимости ТМЦ, зачете авансов и т.д. за этот период.

Этот вариант - аналог команды Пропустить операцию , что использовалась в прошлых версиях 1С.

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

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

Ручной перенос можно использовать, когда изменения не затрагивают:

  • бухгалтерский учет;
  • налоговый учет;
  • регламентированную отчетность.

Например, в документ:

  • добавили Ответственного или Комментарий ;
  • внесли или исправили Входящий № ;
  • просмотрели документ и закрыли по кнопке Провести и закрыть , а не по крестику в форме документа.

  • Автоматически восстанавливать границу последовательности и перезакрывать уже закрытые месяцы заново, если в них вносились изменения.
  • Выполнять автоматическое восстановление границы последовательности при вводе документов текущего месяца «задним» числом.

Это самый безопасный вариант работы.

Кто может выполнять операцию переноса границы последовательности?

Такая возможность доступна не всем пользователям, а только пользователям:

  • С ролью .
  • Администратору .
  • Главному бухгалтеру .

По умолчанию эта роль назначается Администратору и Главному бухгалтеру .

Это значит, что пользователь с правами Бухгалтер выполнить восстановление последовательности НЕ сможет. Как быть в этой ситуации?

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

Шаг 1. Настройка профиля доступа

Откройте настройку профилей доступа: раздел Администрирование - Настройки программы - Настройки пользователей и прав - Группы доступа - ссылка Профили групп доступа .

Шаг 2. Создание нового профиля

По кнопке Добавить добавьте новый профиль Право интерактивного переноса границы последовательности .

Шаг 3. Добавление пользователю новой роли

Откройте форму настройки прав Бухгалтера : раздел Администрирование - Настройки программы - Настройки пользователей и прав - Пользователи - ссылка Пользователи - Бухгалтер - кнопка Права доступа .

Выставите флажок у профиля Право интерактивного переноса границы последовательности .

Шаг 4. Сохранение настройки

Сохраните настройки по кнопке Записать .

Ответы на вопросы

А теперь - ответы на блиц-вопросы, чтобы закрепить и дополнить данный материал.

Нет ручного переноса границы последовательности…

Вероятно, у вас старая редакция. Обновляйтесь! С версии 1С 3.0.62 этот механизм доступен к использованию.

Это и раньше было!

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

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

Почему нарушается последовательность?

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

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

Как себя «подстраховать» от изменения документов в прошлых периодах?

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

Документы, оформленные в закрытых периодах, будут защищены.

Корректности данных в 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) проведенном документе. - каким то непонятным образом (пока непонятным) если последовательность отслеживается по бух счетам и регистрам - выборка происходит только по проводкам, т.е. движения регистров игнорируются (может я чего то недоглядел).

Общее

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

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

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

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

Реализация

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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



© 2024 solidar.ru -- Юридический портал. Только полезная и актуальная информация