К статье
Практический материал

Администрирование · 11 мин

Как удалить границу последовательности в 1С

Как удалить или восстановить границу последовательности в 1С через обработки, код и типовые средства. Причины сбоя, риски, проверка результата и типичные ошибки.

Граница последовательности в 1С — это отметка момента времени, до которого все документы, входящие в последовательность, считаются проведёнными в правильном хронологическом порядке. Когда документ задним числом проводят, изменяют или помечают на удаление, граница «откатывается» назад, и типовые механизмы (например, расчёт себестоимости или восстановление партионного учёта) требуют восстановления последовательности.

Задача «удалить границу последовательности» обычно возникает в трёх случаях: нужно сбросить повреждённую границу, которая мешает проведению документов; требуется полностью очистить регистрацию документов в последовательности перед переносом данных или свёрткой базы; либо нужно убрать саму последовательность из конфигурации. Каждый сценарий решается по-разному, и важно не перепутать сброс границы с удалением данных.

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

Что такое граница последовательности и когда её нужно удалять

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

Удалять (сбрасывать) границу имеет смысл в таких ситуациях:

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

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

Подготовка: резервная копия и проверка текущего состояния

Любые манипуляции с границами последовательностей выполняйте только после создания резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу через конфигуратор (Администрирование → Выгрузить информационную базу). Для клиент-серверной базы используйте средства СУБД — выгрузка через конфигуратор не гарантирует целостность при параллельной работе пользователей.

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

Способ 1. Сброс границы через типовые обработки

Самый безопасный путь — штатные средства конфигурации. В большинстве типовых решений (Бухгалтерия предприятия, Управление торговлей, ERP) есть раздел «Операции» или «Администрирование → Обслуживание», где доступна обработка проведения документов и восстановления последовательностей.

Порядок действий через типовую обработку
  1. 1
    Откройте раздел Операции → Проведение документов (или Все функции → Стандартные → Восстановление последовательностей).
  2. 2
    Выберите нужную последовательность в списке.
  3. 3
    Проверьте текущую границу и запомните её значение.
  4. 4
    Для сброса используйте установку границы на пустую дату или на дату начала учёта, если такая команда предусмотрена.
  5. 5
    Если штатной команды нет, перейдите к программному способу из следующего раздела.
  6. 6
    После сброса запустите восстановление последовательности и дождитесь завершения.

Если в конфигурации нет команды именно для сброса границы (часто есть только «Восстановить»), используйте универсальную обработку «Групповое перепроведение документов» или внешние обработки с управления последовательностями — они позволяют установить границу на произвольную дату, включая пустую.

Замечание по терминологии: «удалить границу» на практике означает либо установить её на самую раннюю возможную дату (вся последовательность становится нарушенной), либо наоборот — на дату в будущем, позже последнего документа. Во втором случае платформа считает, что нарушенных документов нет, и регистрация в последовательности фактически очищается.

Способ 2. Удаление границы программным кодом

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

bsl
// Установить границу на пустую дату (сброс)
Последовательности.ПартионныйУчет.УстановитьГраницу(Дата(1,1,1));

// Установить границу позже последнего документа (фактическая очистка)
Последовательности.ПартионныйУчет.УстановитьГраницу(Дата(3999,12,31));

// Проверить текущую границу
Граница = Последовательности.ПартионныйУчет.ПолучитьГраницу();
Сообщить("Текущая граница: " + Граница);

Метод УстановитьГраницу() принимает дату или момент времени. Передача пустой даты Дата(1,1,1) сбрасывает границу в начало — все документы последовательности потребуют восстановления. Передача даты в далёком будущем сдвигает границу за пределы всех документов, что равнозначно очистке регистрации.

Если нужно обработать все последовательности разом, переберите метаданные:

Для Каждого Посл Из Метаданные.Последовательности Цикл

Последовательности[Посл.Имя].УстановитьГраницу(Дата(1,1,1));

Сообщить("Сброшена граница: " + Посл.Имя);

КонецЦикла;

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

Способ 3. Полное удаление последовательности из конфигурации

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

Перед удалением убедитесь, что на последовательность не ссылаются модули, обработки проведения документов и процедуры восстановления. Используйте поиск ссылок на объект (правый клик → «Поиск ссылок на объект»). Если документы входили в последовательность, их модули проведения могут содержать обращения к ней — код придётся скорректировать.

Проверка результата и восстановление после сброса

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

Контрольные точки

Как проверить результат

Значение границы после сброса
Норма

Совпадает с установленной датой (пустая или заданная)

Тревожный признак

Граница не изменилась или вернулась к старому значению

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

Документ проводится без ошибок последовательности

Тревожный признак

Ошибки о нарушении последовательности или блокировки

Отчёты по затронутым данным
Норма

Итоги совпадают с данными до сброса после восстановления

Тревожный признак

Расхождения в остатках и себестоимости

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

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

Типичные ошибки и ограничения

Типичные ошибки
01
Сброс границы без резервной копии — при ошибке восстановить прежнее состояние невозможно.
02
Сброс границы без последующего восстановления — отчёты показывают некорректные данные, а пользователи не понимают причину.
03
Работа в многопользовательском режиме без завершения сеансов — блокировки и частичное применение изменений.
04
Путаница между сбросом границы и удалением документов — граница не удаляет данные, и наоборот.
05
Удаление последовательности из конфигурации без проверки ссылок — после обновления перестают проводиться документы.

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

В распределённых базах (РИБ) сброс границы в одном узле не переносится автоматически в другие — служебные данные последовательностей не входят в типовые планы обмена. Операцию придётся выполнять в каждом узле отдельно.

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

Часто задаваемые вопросы

Удаление границы последовательности удалит документы?

Нет. Граница — это служебная отметка о состоянии последовательности. Сами документы, их движения по регистрам и данные учёта при сбросе границы не изменяются. Меняется только признак того, до какого момента документы считаются проведёнными в правильном порядке.

Чем сброс границы отличается от восстановления последовательности?

Сброс устанавливает границу на заданную дату (обычно в начало), помечая документы как требующие перепроведения. Восстановление — обратная операция: платформа перепроводит документы от текущей границы вперёд и двигает её к актуальной дате. Обычно сброс без последующего восстановления не имеет практического смысла.

Что делать, если граница не восстанавливается и выдаёт ошибку?

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

Можно ли сбросить границу только по одному документу?

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

Нужно ли сбрасывать границу перед свёрткой базы?

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

Почему после сброса границы изменились данные отчётов за прошлые периоды?

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