Очистка базы 1С от помеченных на удаление объектов
Содержание
Чтобы удалить элементы, помеченные на удаление, в 1С 8.3, откройте раздел Администрирование → Обслуживание → Удаление помеченных объектов, запустите поиск и подтвердите удаление. Программа сначала проверит, не ссылается ли кто-то на эти объекты, и физически сотрёт только те, что никому не мешают.
Пометка на удаление и само удаление — это два разных действия. Когда вы нажимаете Del на элементе справочника или документе, запись не исчезает: она лишь получает признак «помечен на удаление» и перечёркнутый значок. Данные остаются в базе и продолжают занимать место, пока вы не выполните отдельную операцию удаления.
Ниже — как провести очистку штатной обработкой, как поставить её на расписание, когда без Конфигуратора не обойтись и что делать, если объект удаляться отказывается.
Почему удаление идёт в два шага
Разделение на пометку и удаление — защита от потери данных. Если бы запись стиралась сразу, можно было бы случайно удалить документ , на который завязаны проводки, остатки и движения по регистрам.
Поэтому 1С работает так:
- 🏷️ Пометка на удаление — обратимая операция. Элемент помечен, но учтён и доступен. Пометку можно снять в любой момент.
- 🧹 Удаление помеченных объектов — необратимая операция. Перед стиранием система выполняет контроль ссылочной целостности: ищет, не используется ли объект в других документах, справочниках и регистрах.
Если на помеченный объект кто-то ссылается, он удалён не будет. Это штатное поведение, а не ошибка. Программа покажет список «мешающих» ссылок, и дальше решение за вами.
Контроль ссылочной целостности просматривает всю базу: реквизиты документов и справочников, табличные части, движения по регистрам накопления и сведений, значения в настройках. Поэтому у «живого» элемента всегда находятся зависимости — один контрагент может быть указан в сотнях документов. Удаляется только то, что действительно никому не нужно: заведённый по ошибке дубль, брошенный черновик, устаревшая номенклатура без операций.
Пометить на удаление можно группу элементов сразу: выделите нужные строки в списке с зажатым Ctrl или Shift, затем вызовите команду Пометить на удаление / Снять пометку из меню Ещё или из контекстного меню по правой кнопке мыши.
Предопределённые элементы справочников (например, стандартные ставки НДС или системные папки) пометить на удаление нельзя — программа заблокирует действие. Это защита конфигурации, а не сбой: такие элементы задаются на уровне метаданных и чистятся только изменением самой конфигурации.
Удаление помеченных объектов в режиме Предприятия
Это основной и самый безопасный способ. Он работает прямо в пользовательском режиме и не требует Конфигуратора.
Путь к обработке зависит от конфигурации, но логика одна — раздел администрирования, группа «Обслуживание»:
| Конфигурация | Путь к обработке |
|---|---|
| 1С:Бухгалтерия 3.0 | Администрирование → Обслуживание → Удаление помеченных объектов |
| 1С:ЗУП 3.1 | Администрирование → Обслуживание → Удаление помеченных объектов |
| 1С:Управление торговлей 11 | НСИ и администрирование → Обслуживание → Удаление помеченных объектов |
Порядок действий:
- Откройте обработку по пути из таблицы для вашей конфигурации.
- Выберите режим. Обычно предлагаются два варианта: удалить все помеченные объекты автоматически или выбрать объекты выборочно, галочками в списке.
- Запустите поиск и анализ ссылок — программа соберёт помеченные объекты и проверит каждую зависимость. На большой базе это может занять несколько минут.
- Дождитесь отчёта. Объекты разделятся на две группы: те, что можно удалить, и те, что удалить нельзя из-за ссылок.
- Подтвердите удаление «свободных» объектов.
В многопользовательской базе запускайте очистку в период низкой активности. Поиск ссылок нагружает базу, а параллельная работа пользователей может менять данные во время анализа.
Удаление в режиме Предприятия не требует монопольного доступа и не выгоняет пользователей из базы. Но чем меньше людей работает в момент очистки, тем быстрее и чище она пройдёт.
Отдельного отчёта «все помеченные объекты списком» в типовых конфигурациях нет — их число вы видите уже в самой обработке после поиска. Если нужно заранее оценить объём чистки по конкретному справочнику, откройте его список и включите отображение пометки удаления: перечёркнутый значок слева от строки и есть признак того, что элемент ждёт удаления.
Автоматическая очистка по расписанию
Если помеченных объектов накапливается много (типично для баз с активным обменом и загрузкой данных), очистку удобно поставить на расписание — чтобы она шла, например, ночью.
В конфигурациях на базе стандартных подсистем (БП 3.0, ЗУП 3.1, УТ 11) в той же форме «Удаление помеченных объектов» есть режим автоматического удаления по расписанию. Включается он так:
- Откройте обработку
Удаление помеченных объектов. - Переключитесь на вариант автоматического удаления.
- Настройте расписание: периодичность и время запуска (например, ежедневно в нерабочие часы).
- Сохраните настройку — дальше удаление будет выполняться фоновым регламентным заданием без участия пользователя.
В клиент-серверной базе регламентные задания выполняет сервер 1С, поэтому очистка пойдёт даже тогда, когда ни один пользователь не в системе. В файловой базе регламентные задания работают только при запущенном сеансе — для автоматической очистки нужен открытый клиент.
Автоматический режим не отменяет контроль ссылок: объекты с зависимостями по-прежнему останутся в базе, их придётся разбирать вручную. Расписание решает другую задачу — не даёт помеченным объектам копиться месяцами, когда до ручной чистки не доходят руки. Разбор «проблемных» ссылок остаётся за специалистом.
Удаление через Конфигуратор
Отдельный механизм удаления есть в Конфигураторе: Администрирование → Удаление помеченных объектов. К нему прибегают, когда штатная обработка недоступна или база сильно «засорена».
Ключевое отличие: удаление в Конфигураторе требует монопольного (исключительного) доступа к базе. Все пользователи должны выйти, иначе операция не запустится.
Когда это оправдано:
- 🔧 обработка в режиме Предприятия отсутствует или повреждена;
- 🗂️ нужно разово вычистить базу перед выгрузкой или передачей;
- 🧩 конфигурация старая и не содержит штатного механизма очистки.
Порядок в Конфигураторе тот же по сути: система ищет ссылки, показывает дерево зависимостей и удаляет объекты без ссылок. Для тех, что удалить нельзя, двойным щелчком по ссылке можно сразу перейти к мешающему объекту.
Для рядовой регулярной чистки Конфигуратор не нужен — обработка в режиме Предприятия удобнее и безопаснее, потому что не останавливает работу пользователей. Конфигуратор остаётся инструментом разовых, «тяжёлых» операций, когда вы сознательно берёте базу в монопольный режим: перед выгрузкой, передачей базы или крупной реструктуризацией.
Перед удалением в Конфигураторе сделайте резервную копию базы (Администрирование → Выгрузить информационную базу). Операция необратима, а монопольный режим означает, что работа всех пользователей на это время остановится.
Что делать, если объект не удаляется
Самая частая ситуация: вы пометили элемент, запустили удаление, а программа сообщает, что удалить его нельзя — на объект есть ссылки. Это значит, что где-то в базе он ещё используется.
Разберитесь по характеру ссылки:
Ещё → Отменить проведение), затем пометьте на удаление и запустите очистку. Для группы документов используйте групповую отмену проведения.Главный приём: удалять связанные объекты снизу вверх по цепочке. Сначала документы и движения, потом справочники, на которые они ссылались. Если запустить удаление всех помеченных объектов разом, программа сама разберёт порядок — но при выборочном удалении цепочку держите в голове.
Из отчёта об удалении можно перейти к любому мешающему объекту двойным щелчком по строке ссылки. Это быстрее, чем искать документ вручную через журнал.
Обслуживание базы после удаления
Удаление помеченных объектов освобождает записи логически, но файл базы или таблицы СУБД сразу не уменьшаются. Чтобы вернуть место на диске и ускорить работу, после массовой чистки имеет смысл выполнить обслуживание.
Файловая база (один файл 1Cv8.1CD):
- Закройте все сеансы и запустите утилиту проверки физической целостности
chdbfl.exeиз каталога установки платформы — она лежит в папкеbin. - В Конфигураторе выполните
Администрирование → Тестирование и исправлениес включённым пунктом сжатия таблиц информационной базы. Сжатие как раз уменьшает размер файла после удаления данных.
Клиент-серверная база (СУБД):
- Запустите
Тестирование и исправлениеиз Конфигуратора при монопольном доступе. - Реиндексацию таблиц и обновление статистики удобнее выполнять средствами самой СУБД по регламенту обслуживания — это задача администратора сервера.
- При необходимости сделайте пересчёт итогов регистров (
Операции → Регламентные операции → Управление итогами), если удаляли документы с движениями.
Тестирование и исправление, а также сжатие таблиц тоже требуют монопольного доступа и могут идти долго на большой базе. Планируйте их на нерабочее время и всегда с актуальной резервной копией.
Регулярная чистка плюс обслуживание держат базу компактной: меньше объём — быстрее открываются списки, отчёты и резервное копирование .
Частые ошибки при очистке базы
Несколько ситуаций, из-за которых удаление идёт не так, как ожидалось.
- 🔁 Чистка во время активного обмена данными. Если у вас настроена синхронизация или распределённая база (РИБ), объект, удалённый в одном узле, но ещё существующий в другом, вернётся при обратной загрузке. Чистите согласованно: сначала остановите или завершите текущий обмен, удаляйте в узле-источнике и дайте изменениям разойтись по узлам.
- 🗑️ Удаление «на всякий случай» всей накопленной горы. Чем больше помеченных объектов, тем дольше и рискованнее анализ ссылок. Лучше чистить регулярно небольшими порциями или по расписанию, чем раз в год разгребать десятки тысяч записей.
- 💾 Запуск удаления в Конфигураторе без свежей копии. Операция необратима и идёт в монопольном режиме. Нет актуальной резервной копии — нет и права на ошибку. Выгрузку базы делайте непосредственно перед чисткой.
- 🧾 Непонимание, почему объект «висит». Сообщение «на объект есть ссылки» — это не ошибка программы, а подсказка. Пока вы не уберёте или не удалите ссылающиеся документы, элемент справедливо останется в базе.
- ⏱️ Ожидание, что автоудаление вычистит всё. Регламентное задание удаляет только свободные объекты. Записи со ссылками будут копиться, пока их не разберёт человек. Периодически открывайте обработку вручную и смотрите остаток.
Не пытайтесь «ускорить» удаление, стирая файлы базы или таблицы СУБД напрямую в обход 1С. Это разрушает ссылочную целостность, и база перестанет открываться. Единственный штатный путь — через механизм удаления помеченных объектов.