Восстановление последовательности в 1с 8 по времени. Бухучет инфо

И снова обращаемся к теме закрытия месяца в 1С Бухгалтерии 8.3. На этот раз рассмотрим одну вспомогательную функцию, которая называется "контроль последовательности проведения документов" . На рисунке ниже представлена форма обработки закрытия месяца, на которой вы можете видеть красную ссылку "контроль последовательности проведения документов".

Что такое контроль последовательности проведения документов в 1С

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

сайт_

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

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

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

Тут была важная часть статьи, но без JavaScript её не видно!

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

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

сайт_

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

сайт_

Как видите, теперь с точки зрения 1С Бухгалтерии "всё в порядке". Однако не стоит зыбывать о том, что это всего лишь программа. Конечный ответ на вопрос "всё ли в порядке?" даёт лишь пользователь, поэтому не стоит на 100% перекладывать на 1С всё подряд — однажды такой подход может "выйти боком".

Подведём итоги

Если 1С Бухгалтерия при закрытии месяца предлагает исправить последовательность проведения документов, то обычно все нажимают на красную ссылку, показанную на картинках выше. Однако всегда ли целесообразно делать то, что рекомендует программа?

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

Без понимания работа в 1С — это всего лишь щёлканье по кнопкам!

Как в программе 1С 8.3 Бухгалтерия перепровести группу документов?

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

Перепроведение документов в 1С 8.3 Бухгалтерия специальной обработкой

Обработка группового перепроведения находится в меню «Все функции»:

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

И установить соответствующий флажок:

Если «Сервис» недоступен, обратитесь к специалисту, который настраивал права доступа.

И так, выбираем команду «Все функции». В открывшемся окне выбираем в разделе «Стандартные» строку «Проведение документов»:

Откроется окно обработки проведения:

На закладке «Проведение документов» выбираются типы документов, которые нужно провести или перепровести (в зависимости от настройки флажков).

Внимание! Если вы планируете только перепровести уже проведенные документы, но не желаете проводить не проведенные документы, обязательно снимите флаг «Проводить проведенные»:

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

Кроме этого, желательно знать, какие виды документов связаны.

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

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

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

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

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

По материалам: programmist1s.ru

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

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

2) Допускаются изменения задним числом. Корректность данных по цепочке измененных документов достигается регламентной процедурой перепроведения документов.
Подобная система является противоположностью вышеописанной системы. Соответственно это касается всех преимуществ и недостатков. Одним из недостатков является обязательное наличие регламентной процедуры коррекции цепочки измененных документов. В случае существенного роста информационного потока процедура перепроведения может продолжаться длительный промежуток времени. В случае когда эта процедура станет отнимать более 12-и часов это процедура становится потенциально опасной в надежности функционировании всей ИТ системы. Данную процедуру в типовой реализации необходимо выполнять в вечернее время так как она отнимает много серверных ресурсов и реализует много блокировок что негативно сказывается на общей работе пользователей.

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

1) При изменении задним числом возникает относительно большой временной интервал между самим изменением и восстановлением последовательности в 1С.

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

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

Документы БД (усреднённая статистика):
Приходная накладная: 10 документов в день по 500 строк.
Расходная накладная: 100 документов в день по 100 строк.
Приходный кассовый ордер: 100 документов в день (без табличной части).
Расходнный кассовый ордер: 100 документов в день (без табличной части).
Регистры учета:
ОстатокТовараПоПартиям(Товар,Партия,Количество)
ОстатокТовара(Товар,Склад,Количество)
Взаиморасчеты(Клиент,Документ,Сумма)

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

Что произойдет, если мы поменяем данные по одной строчке товара приходной накладной 10-и дневной давности?

Что бы рассчитать количество связанных документов необходимо учитывать структуру регистров, по которым ведется расчет. Соответственно для того, что бы восстановить последовательность необходимо пересчитать все документы, которые участвуют в движении по регистрам измененного товара за 10-ть дней. Однако, как правило, мы не знаем в типовой реализации какую именно позицию мы меняли и поэтому пересчитываются все документы за данный период. Учитывая, что измененная строка в приходной накладной могла повлиять на взаиморасчеты нам приходится пересчитывать и ПКО и РКО. Итого получается необходимо даже после одной измененной строки провести порядка Кол.Документов=(10+100+100+100)=310 документов и соответственно обработать (500*10+100*100+100*1+100*1) = 15200 строк! Вдумайтесь еще раз в эти цифры! Даже одна измененная строка задним числом предполагает такую ресурсоемкую обработку.

В чем же причины такого неэффективного механизма восстановления последовательности в 1С?

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

Вторая и немаловажная – отсутствие возможности обработки движений регистров построчно. Даже если будет возможно сказать какая именно позиция была изменена в документе то нельзя будет обрабатывать только эту позицию в модуле обработки проведения. Это уже следствие частично неэффективной реализации платформы 1С Предприятие 7.7.
Итогом такой реализации стало то, что при изменении одной позиции в документе все равно придется препроводить весь документ. Изменив одну строку в документе приходной накладной нам в программной реализации придется обработать остальные 499-т строк, которые не менялись!

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

Включение логирования на T-SQL, следствием которого является ведение надежного лога по изменению в регистрах движения.
В дальнейшем специальной обработкой можно будет получать связанные последовательностью документы. Для восстановления последовательности нам необходимо будет перепроводить только их. Обработку написать эту довольно не сложно – фактически это запрос по регистрам с отбором по измерениям которые были изменены. Можно обойтись и без логирования , но это менее надежно и более трудоемко (например запоминая состояние до записи документа и после а потом записывать эту информацию в отдельный справочник).

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

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

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

Краткое описание технической реализации:

Включение логирования на T-SQL, следствием которого является ведение надежного лога по изменения в регистрах движения. Реализуются специальные процедуры позволяющие очищать выборочно движения по регистрам. Отдельно производится анализ конфигурации и изменения в ней соответствующие концепции выборочной обработки движений по регистрам учета.
С помощью технологии внешних компонент можно реализовать процедуру которая будет аналогом процедуры ОчиститьДвижения(<ВидыДвижений>) 1С – только будет более расширенной.
А именно: ОчиститьДвиженияПоИзмерениям(<ВидыДвижений>,Измерения,СписокЗначений) - Эта процедура будет очищать не все движения по документу тем самым пересчитывая ненужную информацию и расстанавливая дополнительные блокировки а выборочно по списку значений. Как правило, это будет разница между табличной частью проведенного документа до изменения и после.
Соответственно если в табличной части были изменены 3-и позиции из 100, то удалятся только 3-и позиции. Естественно процедура будет удалять не только движения по документу, но и производить агрегационный пересчет остатков по периодам хранения. Однако это, к сожалению не все и править конфигурацию все равно придется.
Рассмотрим, какие именно изменения нужно будет произвести что бы эти изменения работали корректно. В первую очередь это анализ остатков. Тут необходимо понимать, что в проведении документа большинство времени уходит не на удаление записей, а именно на расчет остатков. Если мы знаем что остатки по 97-и позициям из вышеприведенного примера не изменились, то рассчитывать их имеет смысл только по 3-м измененным позициям. Соответственно необходимо произвести тщательный анализ конфигурации и выполнить соответствующие изменения.

Если ЗначениеВходитВСписокИзмененных(СпИзм,Значение)=0 Тогда Продолжить; КонецЕсли; Также аналогичные изменения необходимо провести и в местах модуля, где происходит запись в регистр. Движения по регистрам должны осуществляться только по измененным позициям. Восстановление последовательности в таком режиме можно выполнять в фоновом режиме с минимальной задержкой и в некоторых случаях даже внутри модуля изменяющего последовательность (если время на выполнение небольшое и блокировки будут незначительны по времени).

Преимущества: Максимальная селективность в процедуре восстановления последовательности. Обрабатывается только связанная информация. Минимальное время между изменением и восстановлением последовательности. В случае не массовых изменений задним числом время восстановления будет ускоренно более 100-и раз.(вообще то разница зависит от объема изменения). Минимальная нагрузка при перепроведениии.
Недостатки: Относительная сложность внедрения. Необходимо изменять модуль конфигурации. При добавлении новых объектов необходимо учитывать специфику реализации.

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

Компания "СофтПоинт" представляет готовое решение , которое позволит снять проблему восстановления последовательности.

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

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

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

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

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

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

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

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

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

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

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

Если проведение прошло успешно, будет выдано сообщение "Восстановление последовательности документов завершено!" .

Нажатие кнопки "Закрыть" позволяет выйти из режима проведения документов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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



Просмотров