5 рабочих способов убрать из базы объекты, помеченные на удаление
Содержание
Пометили на удаление десяток лишних документов и справочников, а они всё равно висят в списках и мешают? Пометка на удаление в 1С 8.3 — это только заявка на удаление, а не само удаление. Чтобы объекты реально исчезли из информационной базы, нужно отдельно запустить удаление помеченных объектов — вручную через интерфейс, обработкой, в пакетном режиме или по-особому в распределённой базе.
Ниже — пять способов убрать из базы то, что помечено на удаление, с указанием, когда какой подходит. Разберём и обратную сторону: почему объект иногда не удаляется и что делать, если удалять его на самом деле не нужно.
Почему 1С помечает объекты, а не стирает их сразу
1С не удаляет данные по кнопке Delete намеренно. Справочники и документы в базе связаны ссылками: контрагент стоит в десятках накладных, номенклатура — в поступлениях и реализациях. Если стереть такой объект мгновенно, в остальных документах останутся «висячие» битые ссылки, и база потеряет целостность.
Поэтому действие разбито на два шага:
- 📌 Пометка на удаление — вы помечаете объект. Он остаётся в базе, продолжает работать, но перечёркнут крестиком в списках.
- 🗑️ Удаление помеченных объектов — отдельная процедура проверяет, не ссылается ли кто-то на помеченный объект, и стирает только то, что удалить безопасно.
Снять пометку можно в любой момент — объект вернётся в строй. Удаление же необратимо: восстановить стёртый объект можно только из резервной копии.
Отсюда вывод: перед массовым удалением всегда делайте архивную копию базы. Это единственный способ откатиться, если выяснится, что снесли лишнее.
Какой способ удаления выбрать
Все способы приводят к одному результату, но подходят для разных ситуаций. Сориентироваться поможет таблица.
| Способ | Когда применять | Режим |
|---|---|---|
| Стандартный интерфейс | Разовая чистка в рабочей конфигурации (БП 3.0, ЗУП 3.1, УТ 11) | 1С:Предприятие |
| Внешняя обработка | Старые конфигурации без штатного инструмента | 1С:Предприятие |
| Пакетный режим | Регулярная автоматическая очистка по расписанию | Командная строка |
| Тестирование и исправление | Удаление не идёт из-за повреждения файловой базы | chdbfl / Конфигуратор |
| Правила в РИБ | Распределённая база, нужно согласованное удаление в узлах | 1С:Предприятие |
Если удалять объекты жалко (вдруг пригодятся для истории), не стирайте их вовсе. Оставьте помеченными или выгрузите копию базы в архив (.dt) — так данные сохранятся, а рабочие списки не будут захламлены. Это и есть «архивирование вместо удаления».
Удаление помеченных объектов через стандартный интерфейс
В типовых конфигурациях на платформе 8.3 (Такси) штатный инструмент встроен в раздел администрирования. Путь стабилен для БП 3.0, ЗУП 3.1 и УТ 11:
Администрирование → Обслуживание → Удаление помеченных объектов.
Если в вашей конфигурации нет подсистемы администрирования, откройте инструмент через главное меню: значок меню в левом верхнем углу → Все функции → Стандартные → Удаление помеченных объектов. Команду Все функции предварительно включают в Сервис → Параметры галочкой «Отображать команду “Все функции”».
Дальше есть два варианта работы:
- Автоматическое удаление. 1С сама находит все помеченные объекты, проверяет ссылки и удаляет те, что ни с чем не связаны. Остальные показывает списком с причиной.
- Выборочное удаление. Вы отмечаете галочками, что удалять. Если на объект есть ссылки, программа покажет, откуда именно, — удобно, когда нужно разобраться, почему объект «не отпускают».
Порядок действий:
- Пометьте ненужные объекты на удаление в их списках (клавиша
Deleteили командаПометить на удаление / Снять пометку). - Откройте
Удаление помеченных объектов. - Выберите режим — автоматический для быстрой чистки, выборочный для контроля.
- Запустите и дождитесь отчёта: сколько удалено, что осталось и почему.
В современных конфигурациях на БСП удаление запускается в обычном рабочем режиме — выгонять пользователей не нужно. Но объект, который прямо сейчас открыт или заблокирован другим сеансом, будет пропущен. Массовую чистку больших объёмов лучше делать в нерабочее время.
Обработка «Поиск и удаление помеченных объектов»
В старых или сильно переписанных конфигурациях штатного пункта меню может не быть. Тогда применяют внешнюю обработку
— файл с расширением .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.
Здесь помогает не ещё одна попытка удаления, а предварительное лечение базы:
- Сделайте копию файла базы
1Cv8.1CD— всё лечение ведётся только с резервной копией под рукой. - Проверьте физическую целостность утилитой
chdbfl.exe(лежит в каталогеbinплатформы). Она проверяет и чинит структуру файла файловой базы. - Прогоните «Тестирование и исправление» в Конфигураторе:
Администрирование → Тестирование и исправление. Включите проверку логической и ссылочной целостности и реиндексацию таблиц.
Полное тестирование и исправление требует монопольного доступа к базе — все сеансы пользователей на это время будут закрыты. Планируйте процедуру на период, когда в базе никто не работает.
После того как база приведена в порядок, повторите удаление помеченных объектов штатным способом — теперь оно пройдёт корректно. Само по себе тестирование и исправление помеченные объекты не удаляет: его задача — убрать повреждения и битые ссылки, которые мешают удалению.
Распределённая база (РИБ): где запускать удаление
В распределённой информационной базе (РИБ) узлов несколько, и они обмениваются изменениями. Удаление объектов здесь требует аккуратности: если стереть объект в одном узле, а в другом на него ещё ссылаются, при обмене возникнут конфликты и предупреждения о неполученных ссылках.
Безопасный порядок:
- 🏢 Удаляйте в центральном узле. Запустите удаление помеченных объектов в главном узле, затем дождитесь, пока изменения разойдутся по периферийным узлам обменом. Так удаление доходит до всех согласованно.
- 🔁 Проведите полный обмен перед большой чисткой, чтобы во всех узлах была одинаковая картина помеченных объектов.
- 🚫 Не удаляйте одно и то же в разных узлах одновременно — это и порождает рассинхронизацию.
Если периферийный узел прислал сообщение, что объект удалён в центре, а здесь на него есть ссылки, разберите эти ссылки в периферийном узле и повторите обмен. Пересоздавать узел или базу из-за единичного конфликта не нужно — проблема решается на уровне конкретных ссылок.
Если объект не удаляется: причины и решения
Самый частый итог удаления — часть объектов осталась в базе. Это нормально: программа защищает целостность данных. Ниже — что означают типовые ситуации и как их развязать.
Если объект не удаляется из-за ссылок, а он вам действительно не нужен, решений два: либо снять пометку и оставить как есть, либо разобрать все ссылки на него и повторить удаление. Насильно удалять объект со ссылками нельзя — именно это и приводит к битым данным.