Как правильно удалить старые документы в 1С и зачем нужна свертка базы?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет
← На главную

Часто возникает потребность сделать копию рабочей базы (например, 1С:Бухгалтерия 3.0), сохранив все текущие настройки и справочники, но при этом очистить систему от старых документов до определенной даты (например, до начала текущего года). Разберем по шагам, почему простое ручное удаление не сработает, как правильно выполнить свертку информационной базы и что делать с документами, которые система отказывается удалять.

Почему нельзя просто удалить старые документы вручную?

Рассмотрим ситуацию: вы скопировали базу и хотите просто пометить на удаление и удалить все документы за прошлые годы. Проанализируем, почему этот подход ошибочен:

  1. Потеря начальных остатков: Старые документы формируют остатки по счетам на начало года. Если их просто удалить, бухгалтерские итоги будут искажены, и учет в новом году вести будет невозможно.
  2. Ссылочная целостность платформы: Платформа 1С не позволит физически удалить документ, если на него ссылаются другие объекты (документы, справочники, регистры).
  3. Производительность: Массовое удаление сотен тысяч объектов — крайне ресурсоемкий процесс. Он сильно увеличивает нагрузку на базу данных и журнал транзакций, что может привести к зависанию или аварийному завершению работы из-за нехватки памяти.

Использование свертки информационной базы

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

Смысл свертки заключается в следующем:

  1. На заданную дату (дату отсечения, например, 31.12 прошлого года) система рассчитывает остатки по всем счетам и регистрам.
  2. Формируются документы ввода начальных остатков (или технические операции).
  3. Все документы до даты свертки помечаются на удаление.
  4. Выполняется попытка физического удаления этих помеченных документов.

Почему после свертки удаляются не все документы?

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

Разберем причины на конкретном абстрактном примере. В бухгалтерии есть счет 60 (Расчеты с поставщиками и подрядчиками), который имеет субсчета расчетов и авансов (например, 60.01 и 60.02). У них есть аналитика (субконто): Контрагент, Договор и Документ расчетов. Именно этот документ расчетов и является причиной блокировки.

Пример правильного учета:
Вы выдали поставщику аванс документом СписаниеСРасчетногоСчета. Затем поставщик привез товар, и вы оформили ПоступлениеТоваровУслуг по тому же договору. Произошел зачет аванса. Сальдо по документу расчетов закрылось. При свертке остатков по этим документам нет, и они благополучно удалятся.

Пример некорректного учета:
Аванс выдали по одному договору, а поступление провели по другому договору (например, "Основной договор" и "Поставка"). В результате автоматического зачета не произошло. На дату свертки у нас висит дебетовое сальдо по документу списания и кредитовое сальдо по документу поступления. Система вынуждена перенести ссылки на эти старые документы во входящие остатки, чтобы сохранить развернутое сальдо. Следовательно, эти документы не могут быть удалены.

Дополнительные причины, препятствующие удалению:

  1. Акты сверки взаиморасчетов: Если в базе сохранены старые акты сверки, в их табличных частях хранятся жесткие ссылки на первичные документы.
  2. Регистры НДС (книги покупок и продаж): Сложные схемы зачета авансов и НДС тянут за собой документы прошлых лет.

Способы решения проблемы неудаляемых документов

Посмотрим на практические шаги, которые помогут очистить базу от "зависших" документов:

  1. Наведение порядка в учете до свертки: Это самый правильный путь. Перед сверткой необходимо проанализировать развернутые остатки по счетам взаиморасчетов (60, 62, 76), перепровести документы, восстановить последовательность и закрыть зависшие авансы. Чем чище учет, тем меньше ссылок перейдет в остатки.
  2. Замена ссылок в документах ввода остатков: Во вновь сформированных операциях свертки ссылки на реальные старые документы можно программно или вручную заменить на специально созданный технический объект ДокументРасчетовСКонтрагентом (ручной учет). Это отвяжет старые документы и позволит их удалить.
  3. Удаление блокирующих объектов: Проанализируйте отчет об удалении. Если удалению мешают старые акты сверки, просто пометьте их тоже на удаление.
  4. Установка запрета редактирования: С тех документов, которые невозможно удалить, снимите пометку на удаление. Установите им признак ручной корректировки (чтобы их случайно не перепровели) и закройте старый период датой запрета изменения данных.

Альтернативные варианты обрезки базы (без свертки)

Если навести порядок в старом учете слишком трудозатратно, рассмотрим альтернативные методы:

  1. Перенос остатков в чистую базу: Создается абсолютно пустая конфигурация того же релиза. С помощью обработки ВыгрузкаЗагрузкаДанныхXML или правил Конвертации данных из старой базы в новую переносится только нормативно-справочная информация (справочники) и документы ввода начальных остатков. Это на 100% избавляет от скрытых ссылок прошлых лет.
  2. Использование механизма РИБ: Если в базе велось несколько организаций, можно создать узел распределенной информационной базы (РИБ) с фильтром по нужной организации. Это отсечет огромный массив чужих данных, после чего можно будет провести свертку гораздо быстрее.
  3. Оптимизация без удаления: Если цель — просто ускорить базу, иногда достаточно выполнить пересчет итогов через Конфигуратор, перестроить индексы таблиц и настроить регламентные задания по обслуживанию СУБД, не прибегая к опасному удалению данных.

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

← На главную