К статье
Практический материал

Администрирование · 11 мин

Как удалить объекты, помеченные на удаление, в 1С

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

Пометка на удаление в 1С — это двухэтапный механизм защиты данных. Сначала документ, элемент справочника или другой объект помечается флагом «Пометка удаления», при этом он перестаёт участвовать в проведении и отборах, но физически остаётся в базе. Окончательное удаление выполняется отдельной процедурой, которая проверяет, не используется ли объект в других местах.

Такой подход нужен, чтобы случайное нажатие Delete не привело к потере данных и нарушению ссылочной целостности. Если помеченный документ упоминается в другом документе, отчёте или движении регистра, система не даст его удалить, пока вы не разберётесь со ссылками. Поэтому задача «удалить файлы, помеченные на удаление» решается не кнопкой Delete, а штатной обработкой.

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

Что происходит при пометке на удаление

Когда вы нажимаете Delete или выбираете «Пометить на удаление» в списке, объект получает служебный признак. Документ при этом отменяет проведение, его движения по регистрам очищаются, а сам он визуально выделяется в списке (обычно перечёркнутой иконкой). Справочники и другие объекты просто получают флаг, оставаясь в базе данных.

Пометку можно снять в любой момент — это обратимая операция. Повторное нажатие Delete на помеченном объекте снимает пометку, и документ можно провести заново. Именно поэтому пометка считается безопасным способом «спрятать» лишние данные без риска.

Удаление помеченных объектов в типовых конфигурациях

В конфигурациях на базе Библиотеки стандартных подсистем (1С:Бухгалтерия, 1С:Управление торговлей, 1С:ЗУП, 1С:ERP и другие) функция находится в разделе администрирования. Точный путь: Администрирование → Обслуживание → Удаление помеченных объектов. В некоторых версиях пункт называется «Удаление помеченных» и находится в подразделе «Корректировка данных».

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

Порядок удаления в типовой конфигурации
  1. 1
    Сделайте резервную копию базы (выгрузку в dt через конфигуратор или копию на стороне СУБД)
  2. 2
    Откройте Администрирование → Обслуживание → Удаление помеченных объектов
  3. 3
    Выберите режим: автоматическое или выборочное удаление
  4. 4
    Нажмите «Удалить» и дождитесь проверки ссылочной целостности
  5. 5
    Просмотрите список объектов, которые не удалось удалить, и разберите ссылки на них
  6. 6
    Повторите удаление после устранения ссылок либо оставьте объекты помеченными

Для выборочного режима отметьте флажками нужные объекты и нажмите «Удалить». Система покажет результат: что удалено, а что заблокировано ссылками. По каждому заблокированному объекту можно раскрыть список мест использования и перейти к ним двойным щелчком.

Монопольный режим и работающие пользователи

Удаление помеченных объектов требует исключительного доступа к данным. Если в базе работают другие пользователи или выполняются регламентные задания, обработка либо не запустится, либо завершится с ошибкой блокировки. В файловой базе достаточно попросить всех выйти; в клиент-серверной — завершить сеансы через консоль кластера или консоль администрирования.

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

Что делать с объектами, которые не удаляются

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

Для массовой замены ссылок в типовых конфигурациях есть обработка «Поиск и удаление дублей» (Администрирование → Обслуживание → Корректировка данных), которая заменяет вхождения дубля на выбранный элемент во всех местах использования. После замены ссылок дубль обычно удаляется без проблем.

Маршрут решения

Как поступить с заблокированным объектом

На объект ссылаются актуальные документы, которые нельзя трогатьОставьте объект помеченным — он не влияет на учёт и отчёты
Объект — дубль элемента справочникаЗапустите «Поиск и удаление дублей», замените ссылки на правильный элемент, затем удалите дубль
Ссылки ведут из помеченных или устаревших документовСначала удалите ссылающиеся документы, затем повторите удаление объекта
Удалить нужно во что бы то ни стало, а ссылки разбирать некогдаИспользуйте режим непосредственного удаления только при полном понимании последствий — появятся битые ссылки вида «Объект не найден»

Непосредственное удаление и его риски

Через «Все функции» (Стандартные → Все функции) или с помощью специальных обработок объект можно удалить напрямую, минуя контроль ссылок. В результате во всех местах, где объект использовался, появятся «битые ссылки» — записи вида «<Объект не найден> (123:abc…)». Они ломают отчёты, проведение связанных документов и обмены данными. Применять такой способ оправданно только для заведомо мусорных объектов, например тестовых записей в копии базы.

Удаление присоединённых файлов

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

Чтобы удалить помеченные присоединённые файлы, используйте ту же обработку «Удаление помеченных объектов» — файлы попадут в список как элементы соответствующих справочников. Если файлы хранятся в томах, после удаления проверьте свободное место на диске: при корректной настройке файлы из тома удаляются вместе с объектом, но при сбоях могут остаться «сироты», которые очищаются вручную по журналу регистрации.

Удаление в конфигураторе и программное удаление

В конфигураторе массовое удаление помеченных объектов не предусмотрено — там работают с метаданными, а не с данными. Однако разработчик может выполнить удаление кодом: метод Удалить() объекта удаляет его немедленно без контроля ссылок, а пара методов УстановитьПометкуУдаления() и процедура УдалениеПомеченныхОбъектов() воспроизводит штатный двухэтапный сценарий.

bsl
// Пометить объект на удаление
Объект.УстановитьПометкуУдаления(Истина);

// Найти и удалить все помеченные объекты с контролем ссылок
МассивПомеченных = НайтиПомеченныеНаУдаление();
УдалитьОбъекты(МассивПомеченных);

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

Проверка результата и типичные ошибки

После завершения обработки откройте списки, где были помеченные объекты: удалённые записи исчезнут, а оставшиеся помеченными — это те, на которые есть ссылки. Дополнительно полезно запустить тестирование и исправление базы (в конфигураторе: Администрирование → Тестирование и исправление) с проверкой ссылочной целостности, если удаление выполнялось нештатно или прерывалось.

Контрольные точки

Как проверить результат удаления

Список документов или справочника
Норма

Удалённые объекты отсутствуют, помеченные видны перечёркнутыми

Тревожный признак

Появились записи «<Объект не найден>»

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

Список помеченных пуст или содержит только объекты со ссылками

Тревожный признак

Те же объекты остаются без указания причин

Журнал регистрации
Норма

Есть записи об удалении без ошибок

Тревожный признак

Ошибки блокировок, обрывы транзакций

Типичные ошибки при удалении
01
Удаление без резервной копии — при ошибке восстановить данные невозможно
02
Запуск обработки при работающих пользователях — блокировки и незавершённые транзакции
03
Непосредственное удаление через «Все функции» — битые ссылки в документах и отчётах
04
Попытка удалить помеченный объект кнопкой Delete — она лишь снимает пометку, а не удаляет
05
Игнорирование списка мест использования — объект остаётся в базе, а пользователь считает его удалённым

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

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

Почему кнопка Delete не удаляет объект окончательно?

Это штатное поведение платформы: Delete только устанавливает или снимает пометку удаления. Физическое удаление выполняется отдельно — через обработку «Удаление помеченных объектов» с проверкой ссылочной целостности.

Можно ли восстановить объект после окончательного удаления?

Штатными средствами — нет. Восстановление возможно только из резервной копии базы. Поэтому перед массовым удалением обязательно делайте выгрузку в .dt или копию средствами СУБД.

Мешают ли помеченные объекты работе базы?

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

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

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

Что делать, если обработка зависает на большом объёме данных?

Запускайте удаление в монопольном режиме и небольшими порциями через выборочный режим — сначала один тип объектов, затем следующий. Для очень больших баз удаление лучше планировать на нерабочее время.

Можно ли настроить автоматическое удаление помеченных объектов?

Да, в типовых конфигурациях в настройках обработки удаления помеченных объектов можно включить регламентное задание с расписанием. Убедитесь, что в момент запуска в базе нет активных сеансов, иначе задание завершится с ошибкой блокировки.

Итог

Что важно запомнить

Пометка на удаление — обратимый флаг, а физическое удаление выполняется обработкой «Удаление помеченных объектов» из раздела администрирования. Перед удалением сделайте резервную копию, завершите сеансы пользователей и разберите ссылки на объекты, которые не удаляются. Непосредственное удаление в обход контроля ссылок оставляет битые ссылки и применимо только в исключительных случаях.