Удаление данных и очистка базы 1С 8.3
Содержание
Удалить данные в 1С 8.3 правильно — значит пометить объекты на удаление, а потом запустить удаление помеченных объектов с контролем ссылок. Путь в типовой конфигурации на интерфейсе «Такси»: раздел Администрирование → Обслуживание → Удаление помеченных объектов. Напрямую стереть справочник или документ из списка нельзя — это защита от битых ссылок.
Если нужно убрать не отдельные записи, а старую историю целиком (документы за прошлые годы, движения регистров, остатки), применяют другой инструмент — свёртку информационной базы. А чтобы файл базы реально уменьшился в размере, после удаления её дополнительно сжимают средствами платформы или СУБД.
Выбор способа зависит от задачи. Убрать пару ошибочных документов — одно, расчистить базу от данных за пять лет — совсем другое, а вернуть диску гигабайты после чистки — третье. Для каждой задачи своя безопасная последовательность действий, и мешать их не стоит: неверный метод либо не сработает, либо оставит в базе битые ссылки.
Что сделать до очистки: копия и выбор метода
Удаление данных необратимо. Перед любой чисткой сделайте резервную копию базы — это единственный способ вернуть всё назад, если удалили лишнее.
Для файловой базы копия — это копия каталога с файлом 1Cv8.1CD или выгрузка в .dt через Конфигуратор (Администрирование → Выгрузить информационную базу). Для клиент-серверной — резервная копия средствами СУБД (MS SQL, PostgreSQL) или та же выгрузка .dt.
Способ зависит от того, что именно вы чистите:
Пометка на удаление и удаление помеченных объектов
Это основной и самый безопасный способ. Работает в пользовательском режиме 1С:Предприятие, не требует Конфигуратора.
Порядок действий:
- Откройте список (например, справочник «Номенклатура» или журнал документов).
- Выделите ненужный элемент и нажмите
Delлибо командуЕщё → Пометить на удаление / снять пометку. У записи появится значок перечёркивания. - Повторите для всех объектов, которые нужно убрать. Можно выделить несколько строк с
CtrlилиShiftи пометить разом. - Перейдите в
Администрирование → Обслуживание → Удаление помеченных объектов. - Выберите режим:
Автоматическое удаление всех помеченныхилиВыборочное удаление(со списком, где можно снять галочки). - Нажмите
Удалить. Программа проверит ссылки и удалит то, что не используется.
Пометка на удаление — обратимая операция. Пока вы не запустили удаление помеченных, объект остаётся в базе, и пометку можно снять. Реально данные исчезают только на шаге 6.
Удаление помеченных можно запускать регулярно — например, раз в месяц после закрытия периода. Если база большая, операция идёт долго и нагружает сервер: планируйте её на время, когда в базе почти никто не работает . Процедура сама строит дерево связей, поэтому на тысячах объектов занимает десятки минут.
Главный смысл процедуры — контроль ссылок. Если на объект ссылаются другие данные (например, на контрагента завязаны документы), 1С не удалит его и покажет список мест использования. Это защищает базу от «висячих» ссылок, когда документ ссылается на несуществующий элемент.
Что делать, если объект не удаляется:
- 📄 откройте список мест использования — 1С покажет, какие документы и записи держат объект;
- 🔁 либо удалите (пометьте) эти документы тоже, либо перепривяжите их на другой элемент;
- 🧩 для дублей справочников удобнее сначала объединить их штатным поиском и удалением дублей, а уже потом удалять пустышку.
Непосредственное удаление без контроля ссылок
Когда объектов тысячи и они переплетены ссылками, пометка на удаление буксует: ничего не удаляется, потому что всё на всё ссылается. Тогда применяют непосредственное удаление — оно стирает объект сразу, минуя проверку ссылок.
Непосредственное удаление оставляет битые ссылки. Если удалить контрагента, на которого ссылаются документы, в этих документах окажется «пустая» ссылка вида <Объект не найден>. Это ломает отчёты и проведение. Способ — только для специалистов и только с резервной копией.
Выполняют его обработкой, которая вызывает удаление напрямую, без проверки использования. В типовых конфигурациях на базе БСП в форме «Удаление помеченных объектов» для таких случаев предусмотрен разбор ситуаций: программа покажет, что мешает удалению, и предложит удалить объекты вместе со ссылающимися на них данными. Это компромисс между безопасностью и скоростью.
Если и этого мало (чистите базу радикально — например, готовите чистую копию из рабочей), порядок такой:
- Сделайте резервную копию.
- Переведите базу в монопольный режим: все пользователи должны выйти. Монопольный доступ нужен, чтобы операция не конфликтовала с чужими сеансами.
- Запустите обработку непосредственного удаления по нужным видам объектов (документы, регистры, справочники).
- После массового удаления обязательно проверьте базу на целостность (см. раздел про тестирование).
Непосредственное удаление не делают «на всякий случай» — только когда штатная пометка не справляется, и вы понимаете, какие ссылки оборвёте.
После такой чистки обязательно пройдитесь по отчётам и документам, которые могли ссылаться на удалённые объекты. Пустые ссылки <Объект не найден> в проводках и движениях придётся либо заменить на корректные значения, либо перепровести документы
. Чем раньше вы их найдёте, тем проще исправить.
Свёртка базы: удаление старых документов с вводом остатков
Самая частая причина «почистить базу » — она растёт годами, а старые документы уже не нужны для текущей работы. Удалять их по одному бессмысленно: пропадут остатки и обороты. Для этого есть свёртка информационной базы.
Как работает свёртка:
- 📅 вы задаёте дату — границу, до которой данные считаются историей;
- 🧾 обработка формирует документы ввода остатков на эту дату (по товарам, взаиморасчётам, деньгам и т. д.);
- 🗑️ документы и движения до даты свёртки помечаются на удаление и удаляются;
- ✅ текущие остатки при этом сохраняются — база стартует «с чистого листа», но с верными сальдо.
В типовых конфигурациях (например, «1С:Бухгалтерия 8» ред. 3.0) обработка свёртки входит в поставку и запускается из раздела обслуживания базы. Если встроенной нет, её берут отдельной внешней обработкой и открывают через Файл → Открыть.
Свёртка — серьёзная операция. Делайте её на копии базы, сверяйте остатки «до» и «после» по оборотно-сальдовой ведомости, и только убедившись в совпадении — переносите результат в рабочую базу или повторяйте на ней.
Важные нюансы:
- свёртку делают после закрытия периода и сдачи отчётности за сворачиваемые годы — поднимать потом «свёрнутые» данные для уточнёнок будет уже неоткуда, кроме архивной копии;
- архивную копию базы «как было» храните отдельно и долго — это ваш доступ к первичке за прошлые годы;
- по некоторым разделам (НДС, учёт по партиям) свёртка имеет ограничения — проверяйте остатки особенно внимательно.
Очистка движений регистров и истории за период
Иногда нужно убрать не документы, а именно движения — записи в регистрах накопления, сведений, бухгалтерии. Например, после ошибочной загрузки или некорректного перепроведения.
Способы:
- Отмена проведения документов. Если лишние движения породили документы, снимите у них проведение (
Ещё → Отменить проведение) — движения уйдут вместе с проведением. Это штатный и безопасный путь. - Групповое перепроведение. Через
Администрирование → Обслуживание → Проведение документов → Групповое перепроведениеможно перепровести документы за период и восстановить корректные движения. - Ручная чистка регистра. Непосредственное удаление записей из регистра делают только специалисты обработкой — штатного «удалить движение» в пользовательском режиме нет.
Прежде чем чистить движения вручную, проверьте, не решается ли задача отменой проведения и повторным проведением документов. В 90% случаев этого достаточно, и база остаётся целостной.
Отдельная история — журнал регистрации (лог действий пользователей). Он не входит в данные учёта и хранится отдельными файлами (1Cv8.lgd или каталог 1Cv8Log). Его чистят средствами платформы, когда он разрастается: в Конфигураторе есть настройка срока хранения и выгрузки журнала регистрации. Удаление журнала на учётные данные не влияет.
Какой способ выбрать: сравнение
Четыре основных метода отличаются областью применения и рисками. Коротко — в таблице.
| Способ | Когда применять | Риски |
|---|---|---|
| Пометка + удаление помеченных | Убрать несколько конкретных объектов | Минимальные: ссылки проверяются, лишнее не удалится |
| Непосредственное удаление | Массовая чистка, когда пометка буксует на ссылках | Высокие: остаются битые ссылки, нужна проверка целостности |
| Свёртка информационной базы | Убрать историю за старые годы, сохранив остатки | Средние: теряется первичка за период, нужна архивная копия |
| Отмена проведения / перепроведение | Убрать лишние движения регистров | Низкие: штатная операция, база остаётся целостной |
Практическое правило: начинайте с самого безопасного способа и переходите к радикальному, только если предыдущий не справился. Для 9 из 10 задач хватает пометки на удаление или отмены проведения; свёртку и непосредственное удаление берут, когда данных действительно много и они переплетены.
Если сомневаетесь в способе — сначала повторите операцию на копии базы. Копия нужна всё равно, а так вы увидите результат без риска для рабочих данных.
Сжатие базы после удаления данных
Частое разочарование: удалили половину документов, а файл базы не уменьшился. Это нормально. И файловая .1CD, и серверная СУБД сначала просто помечают место как свободное и переиспользуют его под новые данные. Чтобы файл физически сжался, нужен отдельный шаг.
Файловая база (.1CD). Два варианта:
- Тестирование и исправление: Конфигуратор →
Администрирование → Тестирование и исправление информационной базы, включите флагСжатие таблиц информационной базы. Под капотом работаетchkdbfl.exe. - Выгрузка и загрузка
.dt: выгрузить базу в.dtи тут же загрузить обратно — платформа пересоберёт файл без «дыр», размер уменьшится.
Клиент-серверная база (MS SQL / PostgreSQL). Платформа место не отдаёт — это делают средствами СУБД:
- MS SQL — сжатие файлов данных (
DBCC SHRINKDATABASE/SHRINKFILE) и усечение журнала транзакций; - PostgreSQL —
VACUUM FULLпо таблицам базы для возврата места ОС.
И тестирование с исправлением, и выгрузка .dt, и VACUUM FULL/SHRINK требуют, чтобы в базе никто не работал: часть из них нужен монопольный режим, а СУБД-операции надолго блокируют таблицы. Выполняйте их только в обслуживающее окно, предупредив пользователей — иначе оборвёте активные сеансы.
Порядок «правильной» очистки с уменьшением размера:
- Резервная копия.
- Удаление данных (пометка + удаление помеченных, свёртка или непосредственное удаление).
- Тестирование и исправление базы — проверка целостности после массового удаления.
- Сжатие: для файловой — сжатие таблиц или
.dt, для серверной — средства СУБД. - Контрольная проверка: открыть базу, свести оборотку, убедиться, что отчёты формируются.