ПОСЛЕДОВАТЕЛЬНОСТЬ …и как "я" её понимаю …
Последовательностьесть объект метаданных 1С.
Последовательность - предназначена для упорядоченного хранения множества документов согласно дате и времени.
Граница последовательности (ГП) - позиция, последнего введённого документа в последовательность. Если после ГП есть другие документы в последовательности, то последовательность считается нарушенной и её необходимо восстановить.
Логически - последовательность можно условно представить как «Общий» журнал документов входящих в эту последовательность. Условно, потому, чтона последовательностях строится логика учета.
У некоторых последовательностей, для дополнительного контроля автоматически при движении регистров, отслеживается связь: регистр - последовательность. Если изменился регистр, должна измениться и последовательность.
Физически - последовательность состоит из двух таблиц:
1. Таблица регистрации;
2. Таблица границ.
Таблица регистр ации (ТР) - коллекция зарегистрированных в последовательности документов в разрезе измерений. В случае повторной записи документа сначала удаляется старая запись, затем записывается новая.
Таблица границ (ТГ) - хранит границу последовательности в разрезе измерений, одно измерение - одна запись если измерений нет, то у ТГ одна запись. Запись ТГ показывает, какой документ в ТР является последним правильно проведённым, т.е. не нарушившим правильное ведение учёта.
Обе таблицы идентичны по составу колонок: «Период», «Регистратор», «Измерение».
Восстановить последовательность возможно путём простого программного переноса ГП (если вы уверены, что итоги не нарушены) на последний документ в последовательности или повторным, последовательным проведением всех документов от ГП до последнего по времени документа в последовательности. Для исправления последовательности существует штатная обработка «Проведение документов».
Механизм «последовательность» имеет подчинённые объекты, свойство - измерения.
Измерения - это разрезы последовательности. Измерения, условно разбивают последовательность на несколько логически целых частей.
Измерение позволяет, в случае необходимости, перепроводить не все документы, входящие в последовательность, а только те которые содержат данное измерение, что ускоряет скорость работы при восстановлении последовательности.
Измерения повышают производительность системы в целом, так как при записи и проведении захватывается не вся таблица целиком, а только те её строки, которые соответствуют данному измерению.
Регистрация документа в последовательности, т.е. в ТР, производится в момент его записи.
Регистрация документа в последовательности может осуществляться автоматически, под руководством системы, если свойство «Заполнение последовательностей» документа будет установлено в «Заполнять автоматически» если иначе, то сам разработчик описывает правила регистрации.
Запись в ТГ происходит при проведении документа.
При проведении документа, его движения учитываются в:
· «Оперативном учёте» - записывает движения документа в регистрах;
· «Бухгалтерском учёте» - запись проводок.
ПоследовательностьМенеджер.< ИмяПоследовательности > - Данный менеджер предназначен для управления последовательностью:
Последовательность.«ИмяПоследовательности».
Восстановить
ПолучитьГраницу
ПолучитьГраницы
Принадлежит
Проверить
СоздатьНаборЗаписей
УстановитьГраницу
Вся работа «ПоследовательностьМенеджер» складывается из анализа и работы с ТР и ТГ. Например, метод «Проверить» - если документ в ТГ, есть последний в ТР, значит, последовательность не нарушена и наоборот и т.д.
вооОоот …
П.С.1.
Как пользоваться обработкой.
В зависимости от закладки появляются необходимые реквизиты для заполнения. При их заполнении, в закладке, в соответствующих таблицах смотрим данные.
П.С.2.
Приведённые примеры и им соответствующий код не претендуют на классицизм 1С. Некоторая простота работы формы обусловлена излагаемым материалом, для более простого и лучшего понимания.
П.С.3.
При обнаружении ошибок, неточностей или дополнений прошу изложить соответствующие замечания. В прилагаемой к статье обработке, для 1С 8.х, показаны общие примеры исследования «последовательностей» и связи «документ-последовательность».
С уважением, Шёпот теней.
Для создания и восстановления полной картины внесенных в программу изменений, упорядочивания хранения документов по времени, в программных продуктах фирмы 1С существует собственный объект метаданных – последовательность. Допустим, для проведения документа и безошибочного создания движений по регистрам, необходимо не просто внести в проводки содержащиеся в документе сведения, но сделать это с учетом уже существующей в базе информации. Для этих целей и существуют последовательности в 1С.
Чаще всего необходимость в этих объектах возникает:
Если в рамках 1С ведется партионный учет, без последовательностей и контроля над ними тоже не обойтись.
В дереве метаданных они не являются самостоятельной веткой объектов, так как подчинены ветке «Документы» (Рис. 1)
На этом рисунке показана ветка объектов «Документы» в конфигурации УПП. Как видно из изображения, у последовательности могут быть указаны свои измерения.
Измерения используются в качестве идентификаторов обрабатываемых объектов. В частности, для элемента «_ТО_ЗатратыНаТСПланируемые», указанного в приведенном выше рисунке таким идентификатором является параметр «Автомобиль».
Рассмотрим подробнее объект «_ТО_ЗатратыНаТСПланируемые» (Рис. 2)
Рис. 2
Пропустим закладки «Основные» и «Подсистемы», так как они практически ничем не отличаются от соответствующих закладок других объектов метаданных, и более подробно остановимся на закладке «Использование».
Мы видим три основных параметра:
Прежде чем приступить к описанию первого параметра, нам необходимо дать определение того, что является границей.
Граница последовательности – дата (позиция) последнего внесенного документа из списка объектов, участвующих в ней. Последовательность считается нарушенной, если существуют документы, внесенные после этой границы.
Полная информация о ограничениях по времени в разрезе измерений система физически хранит в таблице границ последовательностей.
Записи о вносимых в базу документах также хранятся в разрезе измерений в собственной таблице – таблице регистрации изменений.
Обе таблицы (границ и регистрации) схожи по набору заполняемых колонок:
При больших объемах однотипных вводимых документов, нередко возникает ситуация, когда требуется параллельное проведение нескольких документов. В процессе проведения одного из наших объектов система обязана переместить границу, заблокировав этот параметр для других документов, исключив, таким образом, возможность формирования их движений.
Параметр «Перемещение границы при проведении» имеет два значения:
Здесь мы указываем список объектов, которые будут участвовать в формировании нашей последовательности. Никаких сложностей и нюансов в создании этих списков нет, так что пойдем дальше.
На Рис. 3 показана форма создания нового измерения объекта
Рис. 3
Здесь мы должны указать:
В соответствии с этими данными система будет принимать решение – включать ли текущий документ или движение в последовательность или не включать.
Выше мы сказали, что для перемещения границы может понадобиться отдельное регламентное задание, которое будет программно проверять текущую дату границы, и в случае необходимости – сдвигать эту дату, на указанный нами период.
Получить границу можно с помощью кода (Рис. 4)
Рис. 4
Где в качестве отбора может выступать структура, ключи которой содержат имена измерений последовательности, а значения – соответствующие показатели этих измерений.
Рис. 5
Рис.5 демонстрирует код, передвигающий границу последовательности в соответствии с отбором на заданный момент времени.
Несмотря на то, что последовательность, безусловно, полезный инструмент, использовать его надо с умом. Злоупотребление ими значительно снижает производительность системы и мешает «параллельной» работе пользователей.
Типовые конфигурации, как правило, содержат инструмент, позволяющий восстанавливать последовательности и переносить их границы. Его можно обнаружить в разделе «Все функции»-> «Стандартные» -> «Проведение документов» (Рис.6)
Рис.6
Запускаемая обработка содержит закладку «Восстановление», интуитивно понятная форма которой и предоставляет возможность выполнения соответствующих действий.
Необходимость в перепроведении ранее созданных документов в 1С 8.3 чаще всегда возникает тогда, когда вы внесли какие-либо изменения в документ прошлого периода. В такой ситуации все последующие документы могут оказаться некорректными.
Приведем простой пример. У вас было 100 единиц товара на складе. В январе вы списали 50 единиц и в феврале 50. Через какое-то время вы зашли в первый документ и изменили в нем количество на 100. В результате документ от февраля будет неправильным, так как получилось так, что в феврале остатка данного товара уже нет.
В данной статье мы расскажем вам, как можно осуществить групповое перепроведение документов в 1С 8.3 Бухгалтерия, как штатными средствами, так и при закрытии месяца.
Для начала разберемся где найти обработку перепроведения в 1С. Функционал доступен в меню «Все функции».
В том случае, когда у вас нет меню «Все функции», попробуйте его включить. Для этого перейдите в «Сервис» и выберите пункт «Параметры».
В появившемся окне установите флаг на пункте «Отображать команду «Все функции»». Если вы не нашли в настройках такого пункта, обратитесь к системному администратору за предоставлением расширенных прав доступа.
После того, как вы все-таки смогли запустить команду «Все функции», перед вами откроется показанное на изображении ниже окно. Перейдите в раздел «Стандартные» и выберите пункт «Проведение документов».
Перед вами откроется форма настройки перепроведения документов.
На первой вкладке сначала нужно указать период. По умолчанию он равняется месяцу до текущей даты. Если в программе учет ведется уже давно и накопилось внушительное количество документов, крайне не рекомендуется устанавливать большой период, так как время выполнения операции может сильно затянуться. Так же при возникновении ошибок, их будет неудобно исправлять.
Справа от периода расположены две надстройки для указания того, какие документы проводить. По умолчанию установлены обе.
Если вам нужно перепроводить те документы, которые уже проведены, установите флаг в пункте «Перепроводить проведенные». В том случае, когда вам нужно провести те документы, которые на текущий момент не проведены, установите флаг на втором пункте – «Проводить непроведенные». Данные надстройки можно устанавливать как совместно, так и по отдельности.
Перейдем дальше – к выбору самих документов. На данной форме вы видите две табличные части. В левой расположены все доступные для выполнения данной операции документы. В правой – выбранные вами, проведение которых будет осуществляться. Добавлять и удалять документы в правую таблицу можно как по кнопкам, так и двойным щелчком левой кнопки мыши.
В самом низу окна для вас доступна еще одна настройка под названием «Прекращать проведение при возникновении ошибки». При необходимости вы можете ее установить.
Обратите внимание, что одновременно вы можете перепровести несколько документов, добавив их в список справа. Так же крайне желательно одновременно перепроводить связанные документы. В нашем примере вы выбрали документ «Поступление (акты, накладные)». Было бы нелогично и некорректно одновременно с ним выполнять данную операцию с кадровыми документами.
После того, как вы все настроили и перепроверили, нажмите на кнопку «Провести».
На данной вкладке вы можете запустить выполнение восстановления границы последовательности. Вы можете восстановить границу, как по определенному типу документов, так и по всем.
Кроме описанного выше способа, перепроведение документов будет доступно при закрытии месяца. Данная обработка определит правильность установленной границы последовательности документов.
В том случае, когда граница будет нарушена, т. е. установлена не на самом последнем документе закрываемого месяца, обработка по закрытию месяца предложит вам перепровести документы. В результате перепроведения последовательность восстановится.
Главным отличием описанных в данной статье способов массово провести документы является то, что в первом случае мы задаем конкретный период и документы. Кроме этого мы можем выбрать, перепроводить уже проведенные, либо провести те, которые не были проведены. Обработка закрытия месяца учитывает только уже проведенные документы.
Данные в программе должны учитываться в строгой хронологической последовательности. Если документы поступают в бухгалтерию с опозданием или исправляются ошибки в уже введенных документах —программа требует восстановить порядок проведения документов.
В версии 1С 3.0.62.1 добавлен механизм ручного переноса границы последовательности без обязательного перепроведения документов с даты внесенного изменения.
В 1С существует механизм контроля последовательности документов, который отслеживает порядок проведения документов. Он следит за тем, чтобы соблюдалась строгая хронологическая последовательность учета документов в базе. При последовательном вводе документов в базу устанавливается Граница последовательности документов .
Наиболее частая причина нарушения Границы последовательности - ввод документов «задним» числом или изменение уже введенных документов. В этом случае программа требует восстановить нарушенную последовательность документов, начиная с даты нарушения.
Для правильности ведения учета документы, введенные в информационную базу, должны располагаться в том порядке, в котором реально происходили события. Если расходную накладную ввести в базу до приходной накладной, то в программе будет неправильно отражено списание товара:
Рассмотрим, как ввод документов «задним» числом может привести к ошибкам в учете.
При вводе аванса «задним» числом, программа не сможет учесть аванс - для этого нужно восстановить последовательность документов: провести отгрузку после внесенной банковской выписки. Тогда зачет аванса появится в проводках документа реализации.
В этом случае программа потребует восстановления границы последовательности и выполнения регламентных операций за прошлый месяц. Иначе получится неправильный расчет себестоимости товаров, неверные взаиморасчеты с поставщиком, а также проблемы с НДС.
Без восстановления последовательности может пострадать расчет себестоимости товара на складе, если учет ведется по складам в суммовом и количественном выражении.
Таких ситуаций очень много, тем более, что многие документы делаются на основании других и связаны между собой. Изменение в одном из них должно приводить к изменению во всей цепочке документов.
Восстановление последовательности, т. е. проведение документов в правильной хронологической последовательности, может быть выполнено в:
Вкладка Восстановление последовательностей не используется.
Перенос границы последовательности документов выполняется в процедуре Закрытие месяца по ссылке Перепроведение документов : раздел Операции - Закрытие периода - Закрытие месяца - Перепроведение документов .
Возможные варианты настройки границы последовательности документов:
Восстановление происходит с начала нарушения границы последовательности документов. Это стандартный вариант восстановления без ручного переноса границы.
В этом случае граница последовательности устанавливается на конец прошлого месяца, т. е. проводки в документах до конца этого месяца будут считаться корректными. Перепроведены будут только документы текущего месяца.
Операция Перепроведение документов в нарушенных периодах выглядит как восстановленная:
Но документы за период с 31.01.2017 по 01.06.2018 не перепроведены, а значит, возможны ошибки в рассчитанной себестоимости ТМЦ, зачете авансов и т. д. за этот период.
В данном случае граница последовательности устанавливается на конец текущего месяца. Это значит, что проводки документов до конца текущего месяца будут считаться корректными - документы при этом не перепроводятся.
Операция Перепроведение документов в нарушенных периодах выглядит как восстановленная.
Но документы за период с 31.01.2017 по 30.06.2018 не перепроведены, а значит, возможны ошибки в рассчитанной себестоимости ТМЦ, зачете авансов и т.д. за этот период.
Этот вариант - аналог команды Пропустить операцию , что использовалась в прошлых версиях 1С.
По команде Пропустить операцию граница нарушенной последовательности документов также устанавливалась на конец текущего месяца, с той разницей, что проводки документов до конца текущего месяца не считались корректными и отмечались серым цветом.
Ручной перенос можно использовать, когда изменения не затрагивают:
Например, в документ:
Это самый безопасный вариант работы.
Такая возможность доступна не всем пользователям, а только пользователям:
По умолчанию эта роль назначается Администратору и Главному бухгалтеру .
Это значит, что пользователь с правами Бухгалтер выполнить восстановление последовательности НЕ сможет. Как быть в этой ситуации?
Предоставляем инструкцию по добавлению роли Право интерактивного переноса границы последовательности Бухгалтеру .
Откройте настройку профилей доступа: раздел Администрирование - Настройки программы - Настройки пользователей и прав - Группы доступа - ссылка Профили групп доступа .
По кнопке Добавить добавьте новый профиль Право интерактивного переноса границы последовательности .
Откройте форму настройки прав Бухгалтера : раздел Администрирование - Настройки программы - Настройки пользователей и прав - Пользователи - ссылка Пользователи - Бухгалтер - кнопка Права доступа .
Выставите флажок у профиля Право интерактивного переноса границы последовательности .
Сохраните настройки по кнопке Записать .
А теперь - ответы на блиц-вопросы, чтобы закрепить и дополнить данный материал.
Вероятно, у вас старая редакция. Обновляйтесь! С версии 1С 3.0.62 этот механизм доступен к использованию.
Пропуск операции грозит ошибками в учете. При вводе банковской выписки на аванс «задним» числом в оформленной отгрузке не пройдет зачета аванса без восстановления последовательности документов. Вам придется это делать ручной операцией. И если это - «малое» зло, то в случае ввода в закрытый период «забытого» поступления товара или изменениях в нем данных - вы получите уже проблему посерьезнее: неправильную рассчитанную себестоимость товаров, неправильные взаиморасчеты с поставщиком, а также проблемы с НДС.
Согласиться можно только в одном: и прошлый вариант, и нынешний маскируют возможные нарушения в программе. В текущем варианте получается зрительно «скрыть» наличие нарушений - это может создавать обманчивую иллюзию того, что все хорошо там, где есть проблемы.
Причин много. Например, пользователь, просматривая старые документы, закрывает документ по кнопке Провести и закрыть . В этом случае программа заново формирует все движения документа, и граница последовательности автоматически смещается на дату этого изменения.
Поэтому при просмотре старых периодов нужно выходить из документа по «крестику» - иначе программа будет требовать восстановить границу последовательности даже если вы просто «посмотрели» документ и ничего не меняли.
После закрытия месяца нужно выставить Дату запрета изменений на дату закрытого периода по которому сдана отчетность, как правило квартального: раздел Администрирование - Настройки программы – Настройки пользователей и прав – даты запрета изменения – ссылка Настроить .
Документы, оформленные в закрытых периодах, будут защищены.
Вы правы, такая опасность в самом деле существует. Поэтому так важно определиться с ситуациями, когда можно использовать ручной перенос последовательности.
Полностью безопасно выполнять ручной перенос границы последовательности можно в случаях ошибочного проведения документов прошлых периодов при обычном просмотре, т.е. без изменения каких-либо данных.