5 рабочих способов убрать из базы объекты, помеченные на удаление

· 8 мин

Содержание

Пометили на удаление десяток лишних документов и справочников, а они всё равно висят в списках и мешают? Пометка на удаление в 1С 8.3 — это только заявка на удаление, а не само удаление. Чтобы объекты реально исчезли из информационной базы, нужно отдельно запустить удаление помеченных объектов — вручную через интерфейс, обработкой, в пакетном режиме или по-особому в распределённой базе.

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

Почему 1С помечает объекты, а не стирает их сразу

1С не удаляет данные по кнопке Delete намеренно. Справочники и документы в базе связаны ссылками: контрагент стоит в десятках накладных, номенклатура — в поступлениях и реализациях. Если стереть такой объект мгновенно, в остальных документах останутся «висячие» битые ссылки, и база потеряет целостность.

Поэтому действие разбито на два шага:

  • 📌 Пометка на удаление — вы помечаете объект. Он остаётся в базе, продолжает работать, но перечёркнут крестиком в списках.
  • 🗑️ Удаление помеченных объектов — отдельная процедура проверяет, не ссылается ли кто-то на помеченный объект, и стирает только то, что удалить безопасно.

Снять пометку можно в любой момент — объект вернётся в строй. Удаление же необратимо: восстановить стёртый объект можно только из резервной копии.

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

Какой способ удаления выбрать

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

СпособКогда применятьРежим
Стандартный интерфейсРазовая чистка в рабочей конфигурации (БП 3.0, ЗУП 3.1, УТ 11)1С:Предприятие
Внешняя обработкаСтарые конфигурации без штатного инструмента1С:Предприятие
Пакетный режимРегулярная автоматическая очистка по расписаниюКомандная строка
Тестирование и исправлениеУдаление не идёт из-за повреждения файловой базыchdbfl / Конфигуратор
Правила в РИБРаспределённая база, нужно согласованное удаление в узлах1С:Предприятие

Если удалять объекты жалко (вдруг пригодятся для истории), не стирайте их вовсе. Оставьте помеченными или выгрузите копию базы в архив (.dt) — так данные сохранятся, а рабочие списки не будут захламлены. Это и есть «архивирование вместо удаления».

Удаление помеченных объектов через стандартный интерфейс

В типовых конфигурациях на платформе 8.3 (Такси) штатный инструмент встроен в раздел администрирования. Путь стабилен для БП 3.0, ЗУП 3.1 и УТ 11:

Администрирование → Обслуживание → Удаление помеченных объектов.

Если в вашей конфигурации нет подсистемы администрирования, откройте инструмент через главное меню: значок меню в левом верхнем углу → Все функции → Стандартные → Удаление помеченных объектов. Команду Все функции предварительно включают в Сервис → Параметры галочкой «Отображать команду “Все функции”».

Дальше есть два варианта работы:

  1. Автоматическое удаление. 1С сама находит все помеченные объекты, проверяет ссылки и удаляет те, что ни с чем не связаны. Остальные показывает списком с причиной.
  2. Выборочное удаление. Вы отмечаете галочками, что удалять. Если на объект есть ссылки, программа покажет, откуда именно, — удобно, когда нужно разобраться, почему объект «не отпускают».

Порядок действий:

  1. Пометьте ненужные объекты на удаление в их списках (клавиша Delete или команда Пометить на удаление / Снять пометку).
  2. Откройте Удаление помеченных объектов.
  3. Выберите режим — автоматический для быстрой чистки, выборочный для контроля.
  4. Запустите и дождитесь отчёта: сколько удалено, что осталось и почему.

В современных конфигурациях на БСП удаление запускается в обычном рабочем режиме — выгонять пользователей не нужно. Но объект, который прямо сейчас открыт или заблокирован другим сеансом, будет пропущен. Массовую чистку больших объёмов лучше делать в нерабочее время.

Обработка «Поиск и удаление помеченных объектов»

В старых или сильно переписанных конфигурациях штатного пункта меню может не быть. Тогда применяют внешнюю обработку — файл с расширением .epf, который открывается через Файл → Открыть в режиме 1С:Предприятие.

Логика та же: обработка собирает помеченные объекты, анализирует ссылки и удаляет безопасные. Отличие — она работает поверх любой конфигурации, не требуя доработки.

На что обратить внимание при выборе обработки:

  • 🔒 Берите обработку из проверенного источника. Внешний код получает полный доступ к базе — чужая обработка способна натворить дел.
  • 🧩 Проверьте совместимость с вашей версией платформы: обработка под 8.2 в 8.3 может открыться, но работать некорректно.
  • 📄 Перед запуском на рабочей базе протестируйте на копии.

Результат обработки читается так же, как у штатного инструмента: список удалённого и список «неудаляемых» объектов со ссылками на них.

Пакетный режим: автоматическая очистка по расписанию

Когда чистить базу нужно регулярно (например, раз в неделю убирать помеченные черновики), ручной запуск неудобен. Тогда удаление выносят в пакетный (командный) режим и ставят на планировщик задач Windows.

Суть: платформа запускается из командной строки, молча отрабатывает заранее подготовленную обработку удаления и закрывается. Запуск выглядит так:

"C:\Program Files\1cv8\8.3.XX.XXXX\bin\1cv8.exe" ENTERPRISE /S"сервер\база" /N"Пользователь" /P"Пароль" /Execute"C:\scripts\UdaleniePomechennyh.epf" /DisableStartupMessages

Разберём параметры:

  • ENTERPRISE — запуск в режиме 1С:Предприятие.
  • /S — адрес серверной базы; для файловой используйте /F"путь к каталогу базы".
  • /N и /P — логин и пароль пользователя с правами на удаление.
  • /Execute — путь к обработке, которую нужно выполнить при старте.
  • /DisableStartupMessages — подавляет служебные окна, чтобы процесс не завис в ожидании нажатия.

Пароль в открытом виде в строке запуска — риск. Храните командный файл в защищённом каталоге с ограниченным доступом и заведите для задачи отдельного технического пользователя с минимальными правами.

Такой .bat-файл добавляют в планировщик на ночное время. Точные подкоманды и параметры обработки зависят от неё самой — сверяйтесь с её описанием, а по ключам запуска платформы смотрите встроенную справку (1cv8.exe с ключом /?).

Файловая база: когда сначала нужно «Тестирование и исправление»

Отдельная ситуация — удаление в файловой базе не идёт: процедура падает с ошибкой, зависает или выдаёт сообщения о нарушении целостности. Часто причина не в самих помеченных объектах, а в повреждении файла базы 1Cv8.1CD.

Здесь помогает не ещё одна попытка удаления, а предварительное лечение базы:

  1. Сделайте копию файла базы 1Cv8.1CD — всё лечение ведётся только с резервной копией под рукой.
  2. Проверьте физическую целостность утилитой chdbfl.exe (лежит в каталоге bin платформы). Она проверяет и чинит структуру файла файловой базы.
  3. Прогоните «Тестирование и исправление» в Конфигураторе: Администрирование → Тестирование и исправление. Включите проверку логической и ссылочной целостности и реиндексацию таблиц.

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

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

Распределённая база (РИБ): где запускать удаление

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

Безопасный порядок:

  • 🏢 Удаляйте в центральном узле. Запустите удаление помеченных объектов в главном узле, затем дождитесь, пока изменения разойдутся по периферийным узлам обменом. Так удаление доходит до всех согласованно.
  • 🔁 Проведите полный обмен перед большой чисткой, чтобы во всех узлах была одинаковая картина помеченных объектов.
  • 🚫 Не удаляйте одно и то же в разных узлах одновременно — это и порождает рассинхронизацию.

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

Если объект не удаляется: причины и решения

Самый частый итог удаления — часть объектов осталась в базе. Это нормально: программа защищает целостность данных. Ниже — что означают типовые ситуации и как их развязать.

Диагностика: выберите симптом

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

Частые вопросы

Можно ли восстановить объект после удаления помеченных объектов?
Нет. После физического удаления объект исчезает из базы безвозвратно — вернуть его можно только восстановлением из резервной копии. Если объект пока лишь помечен, но не удалён, снимите пометку — он вернётся без потерь.
Нужен ли монопольный режим для удаления помеченных объектов?
В современных конфигурациях на БСП — нет, удаление идёт в обычном рабочем режиме. Монопольный доступ нужен для «Тестирования и исправления», а не для самого удаления. Объекты, занятые другими сеансами, при удалении будут просто пропущены.
Удалятся ли движения документа вместе с ним?
Да. При удалении документа стираются и все его движения по регистрам (остатки, проводки, взаиморасчёты). Поэтому удаление проведённого документа меняет учётные итоги — учитывайте это, прежде чем чистить закрытые периоды.
Почему после удаления база не стала меньше по размеру?
Удаление освобождает место внутри таблиц, но файл базы или таблицы СУБД сразу не сжимаются. Чтобы физически уменьшить объём, нужна реструктуризация и сжатие таблиц (в «Тестировании и исправлении») или сжатие на стороне СУБД.
Можно ли удалить сразу все помеченные объекты одним действием?
Да, для этого и предназначен автоматический режим: он проходит по всем помеченным объектам и удаляет те, что не задействованы ссылками. Оставшиеся покажет отдельным списком с причинами.