Администрирование · 11 мин
Как запустить восстановление последовательности в 1С
Как восстановить последовательность проведения документов в 1С: через обработку, монопольно и пакетно. Причины нарушения, проверка результата и типичные ошибки.
Последовательность документов в 1С — это механизм, который гарантирует, что документы проводятся в хронологическом порядке и итоги (остатки, себестоимость, взаиморасчёты) рассчитаны корректно. Когда пользователь перепроводит или удаляет документ «задним числом», граница последовательности сдвигается назад, и все документы после неё требуют перепроведения. Пока восстановление не выполнено, отчёты по остаткам и себестоимости могут показывать недостоверные данные.
Восстановить последовательность можно штатными средствами: через встроенную обработку «Проведение документов», через специализированные операции закрытия месяца в типовых конфигурациях или программно. Выбор способа зависит от конфигурации, объёма документов и того, есть ли возможность работать монопольно.
Что такое последовательность и когда её нужно восстанавливать
Последовательность — объект метаданных, который объединяет документы, влияющие на общие итоги (например, приходные и расходные накладные по складу). У каждой последовательности есть граница — момент времени, до которого данные считаются актуальными. Всё, что проведено или изменено раньше границы, «ломает» хронологию.
Типичные признаки нарушенной последовательности: отчёт по остаткам показывает отрицательные значения, хотя документы введены корректно; себестоимость в отчётах не сходится с ожидаемой; при закрытии месяца программа выдаёт сообщения о необходимости перепроведения документов. Также границу можно посмотреть напрямую через метод встроенного языка Последовательности.ИмяПоследовательности.ПолучитьГраницу() или через обработки администратора.
Подготовка: резервная копия и монопольный доступ
Перед восстановлением обязательно сделайте резервную копию базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD при остановленной работе пользователей или выполнить выгрузку через «Администрирование → Выгрузить информационную базу». Для клиент-серверной базы используйте средства СУБД (MS SQL, PostgreSQL) или выгрузку в dt.
Массовое перепроведение документов — ресурсоёмкая операция. Если пользователи в это время вводят документы в том же периоде, возможны конфликты блокировок, а граница последовательности может снова сдвинуться ещё до окончания обработки. Поэтому оптимальный вариант — запустить восстановление в нерабочее время или установить монопольный режим и блокировку сеансов через консоль кластера.
Способ 1: обработка «Проведение документов»
Универсальный штатный инструмент доступен почти во всех конфигурациях. В режиме тонкого клиента откройте меню «Операции → Проведение документов» (в некоторых конфигурациях — «Все функции → Стандартные → Проведение документов»; если пункт «Все функции» не виден, включите его в параметрах запуска). В обычном приложении обработка находится в меню «Операции».
В открывшейся обработке переключитесь на закладку или режим «Восстановление последовательностей». Отметьте нужные последовательности (или все), при необходимости ограничьте период датой начала восстановления и нажмите кнопку «Выполнить». Программа последовательно перепроведёт документы от границы до текущего момента или до указанной даты.
- 1Сделайте резервную копию базы и завершите работу пользователей в периоде восстановления.
- 2Откройте «Операции → Проведение документов» (или «Все функции → Проведение документов»).
- 3Перейдите в режим «Восстановление последовательностей» и отметьте нужные последовательности.
- 4Укажите дату начала при необходимости и нажмите «Выполнить».
- 5Дождитесь окончания, изучите сообщения об ошибках и проверьте границу последовательности.
Если документов много, процесс может занять часы. Не закрывайте сеанс до завершения. Сообщения о документах, которые не удалось провести (например, из-за нехватки остатков), фиксируйте — их придётся разбирать вручную, после чего запускать восстановление повторно.
Способ 2: штатные механизмы типовых конфигураций
В типовых решениях восстановление последовательностей часто встроено в регламентные операции. В «1С:Бухгалтерии» перепроведение выполняется обработкой «Закрытие месяца» (операция «Перепроведение документов») или отдельной обработкой «Групповое перепроведение документов» в разделе «Операции». В «1С:Управление торговлей» и «1С:ERP» аналогичные функции выполняют механизмы закрытия месяца и расчёта себестоимости, которые перепроводят документы партионного учёта.
Эти инструменты предпочтительнее универсальной обработки, потому что учитывают специфику конфигурации: проводят документы в правильном порядке, пересчитывают зависимые итоги и корректно обрабатывают служебные документы. Перед запуском проверьте, что в настройках учётной политики и параметрах учёта не включены ограничения, блокирующие проведение в закрытых периодах, — дату запрета редактирования придётся временно открыть.
Способ 3: программное восстановление
Для автоматизации (например, регламентным заданием по ночам) восстановление запускают кодом на встроенном языке. Метод Восстановить() менеджера последовательности перепроводит документы от текущей границы до указанного момента.
// Восстановить последовательность до конца указанной даты
Последовательности.ПартионныйУчет.Восстановить(КонецДня(ДатаВосстановления));
// Узнать текущую границу последовательности
Граница = Последовательности.ПартионныйУчет.ПолучитьГраницу();
Сообщить("Граница: " + Граница);Программный способ требует аккуратности: код выполняется без интерактивных сообщений, поэтому ошибки проведения нужно ловить и логировать самостоятельно (в журнал регистрации или в файл). Для фонового выполнения удобно обернуть вызов в фоновое задание, чтобы не блокировать сеанс пользователя.
Проверка результата и контроль итогов
После завершения восстановления убедитесь, что граница последовательности совпадает с текущим моментом или с последним проведённым документом. Затем сверьте ключевые отчёты: остатки по складу, взаиморасчёты, себестоимость — с данными, которые были зафиксированы до восстановления (например, с сохранёнными копиями отчётов). Небольшие расхождения в себестоимости допустимы, если ранее итоги были рассчитаны на «сломанной» хронологии — теперь они отражают правильную картину.
Как проверить результат
Соответствует текущему моменту или последнему документу периода
Осталась на старой дате — восстановление не завершилось или прервано ошибками
Все документы проведены, ошибок нет
Есть непроведённые документы — требуется ручной разбор и повторный запуск
Нет отрицательных остатков, итоги сходятся с первичкой
Минуса и расхождения сохраняются — ищите ошибки в документах периода
Типичные ошибки и ограничения
Отдельно учитывайте ограничения: восстановление не исправляет ошибки в самих документах (нехватку товара, неверные цены), а лишь перепроводит их в правильном порядке. Если документ раньше проводился «за счёт» будущих поступлений, после восстановления хронологии он может перестать проводиться — это корректное поведение, требующее исправления данных, а не обхода механизма.
Как выбрать подходящий способ
Как выбрать действие
Профилактика эффективнее лечения: ограничьте права на изменение документов прошлых периодов, вовремя устанавливайте дату запрета редактирования и включите в типовых конфигурациях автоматическое перепроведение при закрытии месяца. Тогда ручное восстановление потребуется только в исключительных случаях.
Что важно запомнить
Восстановление последовательности — это перепроведение документов от границы нарушения до текущего момента. Делайте копию базы, запускайте штатную обработку или механизм закрытия месяца в монопольном режиме, разбирайте ошибки проведения и проверяйте границу после завершения.
Частые вопросы
Чем восстановление последовательности отличается от простого перепроведения документов?
Перепроведение в режиме «Проведение документов» обрабатывает выбранные документы в заданном интервале независимо от границ. Восстановление последовательностей работает от текущей границы каждой последовательности и двигает её вперёд — это точечнее и обычно быстрее, так как не трогает документы, которые уже находятся в правильной хронологии.
Можно ли запустить восстановление, пока пользователи работают в базе?
Технически можно, но нежелательно. Возможны конфликты блокировок, ошибки проведения и повторный сдвиг границы, если кто-то изменит документ задним числом в процессе. Безопаснее выполнять операцию в монопольном режиме или в нерабочее время.
Почему после восстановления граница снова оказалась в прошлом?
Значит, кто-то (или какое-то регламентное задание) снова изменил, провёл или пометил на удаление документ, входящий в последовательность, датой раньше границы. Проверьте журнал регистрации на предмет изменений задним числом и пересмотрите права пользователей на редактирование закрытых периодов.
Что делать, если восстановление останавливается с ошибками проведения?
Выпишите документы, которые не проводятся, и причины из сообщений. Чаще всего это нехватка остатков на складе, незаполненные обязательные реквизиты или дата запрета редактирования. Исправьте данные, при необходимости временно откройте период, затем запустите восстановление повторно — оно продолжится с места остановки.
Сколько времени занимает восстановление последовательности?
Длительность зависит от количества документов от границы до текущей даты, объёма движений и производительности сервера. На небольшой базе это минуты, на крупной клиент-серверной с миллионами документов — часы. Оценить время заранее можно, запустив восстановление на коротком тестовом интервале и экстраполировав скорость.
Нужно ли восстанавливать последовательности, если используется только управленческий учёт без партионного?
Если в конфигурации последовательности определены и используются для расчёта итогов, которые вы видите в отчётах, — да, нарушение хронологии искажает данные независимо от вида учёта. Если же последовательности в конфигурации отсутствуют или отключены, сама процедура восстановления не требуется.