Администрирование · 11 мин
Как удалить объекты, помеченные на удаление, в 1С
Как удалить объекты, помеченные на удаление в 1С: пошаговая инструкция через удаление помеченных объектов, контроль ссылок, монопольный режим и типичные ошибки.
Пометка на удаление в 1С — это двухэтапный механизм защиты данных. Сначала документ, элемент справочника или другой объект помечается флагом «Пометка удаления», при этом он перестаёт участвовать в проведении и отборах, но физически остаётся в базе. Окончательное удаление выполняется отдельной процедурой, которая проверяет, не используется ли объект в других местах.
Такой подход нужен, чтобы случайное нажатие Delete не привело к потере данных и нарушению ссылочной целостности. Если помеченный документ упоминается в другом документе, отчёте или движении регистра, система не даст его удалить, пока вы не разберётесь со ссылками. Поэтому задача «удалить файлы, помеченные на удаление» решается не кнопкой Delete, а штатной обработкой.
Ниже разобраны оба этапа: где находится функция в типовых конфигурациях, как запустить удаление в пользовательском и монопольном режиме, что делать с объектами, которые не удаляются, и как проверить результат. Отдельно рассмотрено удаление присоединённых файлов — они хранятся иначе, чем обычные объекты, и требуют своей процедуры.
Что происходит при пометке на удаление
Когда вы нажимаете Delete или выбираете «Пометить на удаление» в списке, объект получает служебный признак. Документ при этом отменяет проведение, его движения по регистрам очищаются, а сам он визуально выделяется в списке (обычно перечёркнутой иконкой). Справочники и другие объекты просто получают флаг, оставаясь в базе данных.
Пометку можно снять в любой момент — это обратимая операция. Повторное нажатие Delete на помеченном объекте снимает пометку, и документ можно провести заново. Именно поэтому пометка считается безопасным способом «спрятать» лишние данные без риска.
Удаление помеченных объектов в типовых конфигурациях
В конфигурациях на базе Библиотеки стандартных подсистем (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ЗУП, 1С:ERP и другие) функция находится в разделе администрирования. Точный путь: Администрирование → Обслуживание → Удаление помеченных объектов. В некоторых версиях пункт называется «Удаление помеченных» и находится в подразделе «Корректировка данных».
Обработка предлагает два режима. «Автоматическое удаление всех помеченных объектов» — система сама проходит по всем помеченным данным и удаляет то, что не имеет ссылок. «Выборочное удаление объектов» — вы видите дерево помеченных объектов по типам (документы, справочники) и сами отмечаете, что удалять.
- 1Сделайте резервную копию базы (выгрузку в dt через конфигуратор или копию на стороне СУБД)
- 2Откройте Администрирование → Обслуживание → Удаление помеченных объектов
- 3Выберите режим: автоматическое или выборочное удаление
- 4Нажмите «Удалить» и дождитесь проверки ссылочной целостности
- 5Просмотрите список объектов, которые не удалось удалить, и разберите ссылки на них
- 6Повторите удаление после устранения ссылок либо оставьте объекты помеченными
Для выборочного режима отметьте флажками нужные объекты и нажмите «Удалить». Система покажет результат: что удалено, а что заблокировано ссылками. По каждому заблокированному объекту можно раскрыть список мест использования и перейти к ним двойным щелчком.
Монопольный режим и работающие пользователи
Удаление помеченных объектов требует исключительного доступа к данным. Если в базе работают другие пользователи или выполняются регламентные задания, обработка либо не запустится, либо завершится с ошибкой блокировки. В файловой базе достаточно попросить всех выйти; в клиент-серверной — завершить сеансы через консоль кластера или консоль администрирования.
Если штатными средствами завершить сеансы нельзя, в конфигураторе доступно действие Администрирование → Параметры информационной базы, где можно установить блокировку сеансов, а активные сеансы завершаются через список активных пользователей. В клиент-серверном варианте удобнее консоль кластера серверов 1С: там видны все сеансы и их можно завершить принудительно.
Что делать с объектами, которые не удаляются
Наиболее частая ситуация: объект помечен, но обработка сообщает «Объект не может быть удалён, так как на него есть ссылки». Это нормальное поведение защиты данных. Вариантов действий три: удалить или изменить ссылающиеся объекты, заменить ссылки на другой объект либо оставить помеченный объект в базе — он не мешает работе и не попадает в отчёты.
Для массовой замены ссылок в типовых конфигурациях есть обработка «Поиск и удаление дублей» (Администрирование → Обслуживание → Корректировка данных), которая заменяет вхождения дубля на выбранный элемент во всех местах использования. После замены ссылок дубль обычно удаляется без проблем.
Как поступить с заблокированным объектом
Непосредственное удаление и его риски
Через «Все функции» (Стандартные → Все функции) или с помощью специальных обработок объект можно удалить напрямую, минуя контроль ссылок. В результате во всех местах, где объект использовался, появятся «битые ссылки» — записи вида «<Объект не найден> (123:abc…)». Они ломают отчёты, проведение связанных документов и обмены данными. Применять такой способ оправданно только для заведомо мусорных объектов, например тестовых записей в копии базы.
Удаление присоединённых файлов
Присоединённые файлы (сканы договоров, картинки номенклатуры, вложения писем) хранятся в справочниках присоединённых файлов либо в томах на диске, если включено хранение файлов в томах. Их пометка на удаление работает так же, но есть нюанс: при хранении в томах физический файл на диске удаляется отдельной регламентной операцией «Очистка ненужных файлов» или при окончательном удалении объекта файла.
Чтобы удалить помеченные присоединённые файлы, используйте ту же обработку «Удаление помеченных объектов» — файлы попадут в список как элементы соответствующих справочников. Если файлы хранятся в томах, после удаления проверьте свободное место на диске: при корректной настройке файлы из тома удаляются вместе с объектом, но при сбоях могут остаться «сироты», которые очищаются вручную по журналу регистрации.
Удаление в конфигураторе и программное удаление
В конфигураторе массовое удаление помеченных объектов не предусмотрено — там работают с метаданными, а не с данными. Однако разработчик может выполнить удаление кодом: метод Удалить() объекта удаляет его немедленно без контроля ссылок, а пара методов УстановитьПометкуУдаления() и процедура УдалениеПомеченныхОбъектов() воспроизводит штатный двухэтапный сценарий.
// Пометить объект на удаление
Объект.УстановитьПометкуУдаления(Истина);
// Найти и удалить все помеченные объекты с контролем ссылок
МассивПомеченных = НайтиПомеченныеНаУдаление();
УдалитьОбъекты(МассивПомеченных);Программное удаление удобно для регламентных заданий, но требует осторожности: ошибка в алгоритме отбора может удалить лишнее. Всегда тестируйте такой код на копии базы и логируйте, что именно было удалено.
Проверка результата и типичные ошибки
После завершения обработки откройте списки, где были помеченные объекты: удалённые записи исчезнут, а оставшиеся помеченными — это те, на которые есть ссылки. Дополнительно полезно запустить тестирование и исправление базы (в конфигураторе: Администрирование → Тестирование и исправление) с проверкой ссылочной целостности, если удаление выполнялось нештатно или прерывалось.
Как проверить результат удаления
Удалённые объекты отсутствуют, помеченные видны перечёркнутыми
Появились записи «<Объект не найден>»
Список помеченных пуст или содержит только объекты со ссылками
Те же объекты остаются без указания причин
Есть записи об удалении без ошибок
Ошибки блокировок, обрывы транзакций
Ещё одна частая ошибка — ожидание, что помеченные объекты удалятся сами по расписанию. В типовых конфигурациях можно настроить регламентное задание на автоматическое удаление, но по умолчанию оно обычно не активно: расписание задаётся в настройках обработки удаления помеченных объектов.
Частые вопросы
Почему кнопка Delete не удаляет объект окончательно?
Это штатное поведение платформы: Delete только устанавливает или снимает пометку удаления. Физическое удаление выполняется отдельно — через обработку «Удаление помеченных объектов» с проверкой ссылочной целостности.
Можно ли восстановить объект после окончательного удаления?
Штатными средствами — нет. Восстановление возможно только из резервной копии базы. Поэтому перед массовым удалением обязательно делайте выгрузку в .dt или копию средствами СУБД.
Мешают ли помеченные объекты работе базы?
Практически нет: они не попадают в отчёты, не проводятся и не участвуют в движениях. Но они занимают место и могут мешать при обменах и свёртке базы, поэтому периодическая чистка полезна.
Как удалить помеченные объекты, если нет прав администратора?
Никак — право на удаление помеченных объектов входит в административные роли. Обратитесь к администратору базы: он может либо выполнить удаление, либо выдать вам соответствующую роль.
Что делать, если обработка зависает на большом объёме данных?
Запускайте удаление в монопольном режиме и небольшими порциями через выборочный режим — сначала один тип объектов, затем следующий. Для очень больших баз удаление лучше планировать на нерабочее время.
Можно ли настроить автоматическое удаление помеченных объектов?
Да, в типовых конфигурациях в настройках обработки удаления помеченных объектов можно включить регламентное задание с расписанием. Убедитесь, что в момент запуска в базе нет активных сеансов, иначе задание завершится с ошибкой блокировки.
Что важно запомнить
Пометка на удаление — обратимый флаг, а физическое удаление выполняется обработкой «Удаление помеченных объектов» из раздела администрирования. Перед удалением сделайте резервную копию, завершите сеансы пользователей и разберите ссылки на объекты, которые не удаляются. Непосредственное удаление в обход контроля ссылок оставляет битые ссылки и применимо только в исключительных случаях.