Удаление документов в 1С 8.3: от пометки до свёртки базы
Содержание
Документы в 1С нельзя просто выделить и стереть клавишей Del — так вы в лучшем случае пометите их на удаление, а на деле получите список «не могу удалить, на объект есть ссылки». Удаление в 1С двухэтапное: сначала пометка, потом удаление помеченных объектов с контролем ссылок. Это защита от того, чтобы случайно не разорвать учёт.
Способ зависит от того, сколько документов убираете и зачем. Пара ошибочных документов — пометка вручную. Сотни и тысячи за старый период — групповая пометка отбором. Нужно убрать целые годы и облегчить базу — свёртка. Ниже разберём каждый вариант с точными путями меню для 1С 8.3 (интерфейс «Такси»), а в конце — как проверить результат и физически уменьшить размер базы.
Перед любой массовой операцией сделайте резервную копию: Администрирование → Обслуживание → Резервное копирование и восстановление либо выгрузку .dt через Конфигуратор. Удаление помеченных объектов необратимо — откат возможен только из копии.
С чего начать: копия и анализ того, что удаляете
Сначала решите, что именно считать «мусором». Чаще всего чистят: тестовые документы после ввода остатков, задвоенные проводки, ошибочные реализации и поступления, документы закрытых периодов, по которым давно сдана отчётность.
Проверьте перед удалением два момента:
- 🔒 Закрытые периоды. Если по периоду сдана отчётность, удалять документы из него нельзя — изменятся суммы в уже сданных декларациях. Установите дату запрета изменения:
Администрирование → Настройки пользователей и прав → Даты запрета изменения. - 🔗 Связи между документами. Поступление, на которое ссылается оплата, счёт-фактура и книга покупок, поодиночке не удалится. Такие цепочки удаляют целиком либо не трогают вовсе.
Для файловой базы скопируйте весь каталог с файлом 1Cv8.1CD — это самый надёжный способ отката. Серверную базу
выгружайте через бэкап СУБД или штатное резервное копирование
.
Пометка на удаление и контроль ссылок
Базовый механизм для точечной чистки. Откройте список документов, выделите нужный, нажмите Del или правой кнопкой → Пометить на удаление / Снять пометку. Документ останется в списке с перечёркнутым значком — он ещё не удалён.
Физически объект убирает отдельная операция: Администрирование → Обслуживание → Удаление помеченных объектов. Обработка сначала ищет ссылки на помеченные документы и показывает результат:
- Если на документ никто не ссылается — он удаляется сразу.
- Если на помеченный документ ссылается другой помеченный объект — удалятся оба.
- Если ссылается непомеченный объект — удаление блокируется, 1С покажет список «кто мешает».
В третьем случае не снимайте контроль ссылочной целостности — это и есть защита от потери связей. Разберите список: либо тоже пометьте связанные документы на удаление, либо оставьте всю цепочку.
Двойной клик по строке в списке «объект не может быть удалён» открывает мешающий документ. Так быстро видно, какая оплата или счёт-фактура держит удаляемое поступление.
Удаление помеченных лучше запускать, когда в базе не работают другие пользователи: операция перестраивает ссылки и при активных сеансах может конфликтовать с их действиями. В монопольном режиме (или просто в нерабочее время) она проходит заметно быстрее.
Групповая пометка: убираем документы пачками
Когда нужно убрать сотни однотипных документов за период, помечать по одному бессмысленно. Используйте отбор в списке.
Откройте журнал нужного вида документов (например, список реализаций). Настройте отбор по периоду и по организации: кнопка настройки списка в командной панели → добавьте условие по дате и фирме. Затем выделите все строки — Ctrl+A — и пометьте на удаление одной командой.
Так помечаются документы одного вида. Если видов несколько (реализации, поступления, платёжки за один старый год), пройдите по каждому журналу отдельно, а удаление помеченных запустите один раз в конце — оно разберёт все пометки вместе и корректно свяжет цепочки.
Для разовой массовой правки реквизитов (не удаления, а, например, смены организации или склада перед удалением) подойдёт Администрирование → Обслуживание → Корректировка данных → Групповое изменение реквизитов. Саму пометку на удаление она не ставит — только меняет значения в выбранных документах.
После групповой пометки обязательно проверьте список глазами перед запуском удаления. Ошибка в отборе (не тот год, не та организация) пометит лишнее, а удаление необратимо.
Свёртка базы: радикальный способ убрать старые периоды
Свёртка — это не удаление документов по одному, а перезапуск учёта с чистого листа на выбранную дату. Механизм такой:
- На дату свёртки формируются документы «Ввод остатков» — они фиксируют сальдо по счетам, складам и взаиморасчётам.
- Все первичные документы до этой даты помечаются на удаление.
- После проверки остатков помеченные документы удаляются.
В результате база «забывает» детализацию старых лет, но входящие остатки сохраняются — баланс на дату свёртки не меняется. Это главный способ облегчить базу, которая за годы раздулась до десятков гигабайт и начала тормозить.
Выполняет свёртку специальная обработка «Свёртка информационной базы». В ряде конфигураций она встроена, для остальных берётся как внешняя обработка у партнёра 1С. Не пытайтесь заменить её ручным удалением всех старых документов — без корректных документов ввода остатков вы потеряете сальдо.
Про нумерацию. После свёртки новые документы продолжают нумерацию с последних номеров — сквозная нумерация года не рвётся. Если нужна чистая нумерация с единицы, её задают настройками нумерации объектов, но для действующей базы это обычно не делают, чтобы не получить задвоенные номера в пределах года.
Свёртку делают только на закрытый, полностью сверенный период и всегда на копии базы. Сначала сверните копию, проверьте остатки и отчётность, и лишь убедившись в совпадении — повторите на рабочей базе.
Почему не стоит чистить базу через SQL напрямую
Для серверных баз на MS SQL или PostgreSQL возникает соблазн удалить строки прямо из таблиц СУБД командой DELETE. Делать этого нельзя.
1С хранит документы не в одной таблице: движения по регистрам, последовательности, итоги, ссылки лежат в десятках связанных таблиц со служебными полями. Прямое удаление строки из таблицы документа оставит «висящие» движения в регистрах и битые ссылки — база начнёт выдавать ошибки, а в отчётах появятся суммы без документов-оснований.
Прямое изменение таблиц СУБД не поддерживается фирмой 1С и снимает базу с поддержки. Чтение через SQL (отчёты, анализ объёма таблиц) — пожалуйста, но любая запись в обход платформы — это путь к восстановлению из копии.
Если база на SQL тормозит именно из-за объёма, правильный порядок другой: свёртка средствами 1С → удаление помеченных → затем обслуживание СУБД (обновление статистики, перестроение индексов) силами администратора сервера. Размер при этом уменьшает не DELETE, а штатная очистка плюс сжатие базы данных.
Сторонние обработки: когда они оправданы
Внешние обработки для чистки нужны в двух случаях: когда штатных средств не хватает или когда операцию надо повторять регулярно.
Что реально полезно:
- 🔎 Поиск и замена дублей — находит задвоенные контрагенты, номенклатуру, документы и заменяет ссылки на один эталонный объект перед удалением остальных.
- 📦 Расширенный поиск ссылок — показывает всю цепочку связей объекта глубже, чем штатный контроль, удобно разбирать «что мешает удалению».
- 🧹 Пакетная пометка по сложным условиям — когда нужен отбор, который не настроить в обычном списке.
Брать такие обработки стоит только из проверенных источников — у партнёра 1С или с ИТС. Непонятную обработку из интернета не запускайте в рабочей базе: она выполняет произвольный код и может как угодно изменить данные. Сначала проверка на копии.
Если задача разовая и штатная пометка + удаление помеченных её решают — сторонние инструменты не нужны. Усложнять есть смысл только под реальную боль: регулярные дубли из обмена, массовая чистка по хитрым условиям.
Проверка и сжатие базы после очистки
Удаление помеченных прошло — остаётся убедиться, что база цела, и вернуть освободившееся место.
Проверьте целостность. В Конфигураторе: Администрирование → Тестирование и исправление. Для файловой базы отдельно есть утилита chdbfl.exe — она проверяет физическую целостность файла 1Cv8.1CD. Запускайте их в монопольном режиме, предупредив пользователей: на время проверки база недоступна.
Сверьте остатки и отчётность. После массового удаления или свёртки откройте оборотно-сальдовую ведомость и сравните сальдо с тем, что было до операции (поэтому и снимают копию). Проверьте ключевые отчёты за открытый период — суммы не должны измениться.
Верните место на диске. Это отдельный шаг — просто удалив документы, вы размер файла не уменьшите:
- Файловая база:
Администрирование → Тестирование и исправлениес включённой реструктуризацией таблиц — она пересобирает файл и убирает пустоты. - Серверная база: сжатие выполняет администратор средствами СУБД (для MS SQL — SHRINK и обслуживание индексов, для PostgreSQL —
VACUUM). Из самой 1С размер серверной базы не уменьшить.
После свёртки большой базы файл может уменьшиться в разы. Если размер не изменился — реструктуризация/сжатие не выполнялись, вернитесь к этому шагу.