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