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