1с 7 операции граница последовательности. Закрытие месяца. Ручной перенос границы последовательности. Восстановление последовательностей проведения документов

Главная / Общество

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

Чаще всего необходимость в этих объектах возникает:

  • При учете складских остатков и движений номенклатуры;
  • При расчетах при реализации и приобретению товаров.

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

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

В дереве метаданных они не являются самостоятельной веткой объектов, так как подчинены ветке «Документы» (Рис. 1)

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

Измерения используются в качестве идентификаторов обрабатываемых объектов. В частности, для элемента «_ТО_ЗатратыНаТСПланируемые», указанного в приведенном выше рисунке таким идентификатором является параметр «Автомобиль».

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

Рассмотрим подробнее объект «_ТО_ЗатратыНаТСПланируемые» (Рис. 2)

Рис. 2

Пропустим закладки «Основные» и «Подсистемы», так как они практически ничем не отличаются от соответствующих закладок других объектов метаданных, и более подробно остановимся на закладке «Использование».

Мы видим три основных параметра:

  1. Перемещение границы при проведении;
  2. Входящие документы;
  3. Движения, влияющие на последовательность.

Перемещение границы при проведении

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

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

Полная информация о ограничениях по времени в разрезе измерений система физически хранит в таблице границ последовательностей.

Записи о вносимых в базу документах также хранятся в разрезе измерений в собственной таблице – таблице регистрации изменений.

Обе таблицы (границ и регистрации) схожи по набору заполняемых колонок:

  • Период – дата внесения записи в таблицу;
  • Регистратор – документ (основание) формирования записи;
  • Измерение.

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

Параметр «Перемещение границы при проведении» имеет два значения:

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

Входящие документы и движения

Здесь мы указываем список объектов, которые будут участвовать в формировании нашей последовательности. Никаких сложностей и нюансов в создании этих списков нет, так что пойдем дальше.

Закладка «Данные»

На Рис. 3 показана форма создания нового измерения объекта

Рис. 3

Здесь мы должны указать:

  1. Имя нового измерения;
  2. Его тип и сопутствующие свойства;
  3. Какие реквизиты движений и документов соответствуют нашему измерению.

В соответствии с этими данными система будет принимать решение – включать ли текущий документ или движение в последовательность или не включать.

Немного программирования

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

Получить границу можно с помощью кода (Рис. 4)

Рис. 4

Где в качестве отбора может выступать структура, ключи которой содержат имена измерений последовательности, а значения – соответствующие показатели этих измерений.
Рис. 5

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

Важное предостережение

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

Типовые конфигурации, как правило, содержат инструмент, позволяющий восстанавливать последовательности и переносить их границы. Его можно обнаружить в разделе «Все функции»-> «Стандартные» -> «Проведение документов» (Рис.6)

Рис.6

Запускаемая обработка содержит закладку «Восстановление», интуитивно понятная форма которой и предоставляет возможность выполнения соответствующих действий.

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

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

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

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

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

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

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

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

Приведем простой пример. У вас было 100 единиц товара на складе. В январе вы списали 50 единиц и в феврале 50. Через какое-то время вы зашли в первый документ и изменили в нем количество на 100. В результате документ от февраля будет неправильным, так как получилось так, что в феврале остатка данного товара уже нет.

В данной статье мы расскажем вам, как можно осуществить групповое перепроведение документов в 1С 8.3 Бухгалтерия, как штатными средствами, так и при закрытии месяца.

Для начала разберемся где найти обработку перепроведения в 1С. Функционал доступен в меню «Все функции».

В том случае, когда у вас нет меню «Все функции», попробуйте его включить. Для этого перейдите в «Сервис» и выберите пункт «Параметры».

В появившемся окне установите флаг на пункте «Отображать команду «Все функции»». Если вы не нашли в настройках такого пункта, обратитесь к системному администратору за предоставлением расширенных прав доступа.

После того, как вы все-таки смогли запустить команду «Все функции», перед вами откроется показанное на изображении ниже окно. Перейдите в раздел «Стандартные» и выберите пункт «Проведение документов».

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

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

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

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

Если вам нужно перепроводить те документы, которые уже проведены, установите флаг в пункте «Перепроводить проведенные». В том случае, когда вам нужно провести те документы, которые на текущий момент не проведены, установите флаг на втором пункте – «Проводить непроведенные». Данные надстройки можно устанавливать как совместно, так и по отдельности.

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

В самом низу окна для вас доступна еще одна настройка под названием «Прекращать проведение при возникновении ошибки». При необходимости вы можете ее установить.

Обратите внимание, что одновременно вы можете перепровести несколько документов, добавив их в список справа. Так же крайне желательно одновременно перепроводить связанные документы. В нашем примере вы выбрали документ «Поступление (акты, накладные)». Было бы нелогично и некорректно одновременно с ним выполнять данную операцию с кадровыми документами.

После того, как вы все настроили и перепроверили, нажмите на кнопку «Провести».

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

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

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

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

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

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

Общее

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

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

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

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

Реализация

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

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

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

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

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

Для пользователя 1С: Управление производственным предприятием, редакция 1.3 существует штатный механизм восстановления последовательностей:

Операции -> Проведение документов, на закладке «Восстановление последовательностей» приведены все имеющиеся в программе последовательности и указана дата актуальности каждой из них. Там же есть возможность восстановить последовательность на указанную дату.

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

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

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

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

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

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



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