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

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

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

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

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

Процедура удаления помеченных объектов встроена во все типовые конфигурации на платформе 1С:Предприятие 8.3: Управление торговлей, Бухгалтерия предприятия, Зарплата и управление персоналом и другие. Интерфейс меняется незначительно, но логика одна: система сканирует помеченные объекты, проверяет ссылки на них во всей базе и предлагает либо удалить всё сразу, либо выбрать конкретные позиции.

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

Подготовка базы перед удалением

Первый шаг — создание резервной копии. Для файловой базы достаточно скопировать файл 1Cv8.1CD в отдельную папку при завершённой работе всех пользователей. Для клиент-серверного варианта используйте выгрузку информационной базы через конфигуратор (Администрирование → Выгрузить информационную базу) либо средства СУБД. Копия нужна не «на всякий случай», а как единственный способ восстановить ошибочно удалённые данные: штатной функции отмены физического удаления в 1С нет.

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

Третий шаг — оценка объёма. Откройте список помеченных объектов заранее и прикиньте, сколько их. Если речь идёт о десятках тысяч позиций (например, очистка старого справочника номенклатуры), процедура может занять продолжительное время, и её лучше планировать на нерабочие часы.

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

В типовых конфигурациях обработка расположена в разделе «Администрирование» → «Обслуживание» → «Удаление помеченных объектов». В некоторых версиях путь выглядит как «НСИ и администрирование» → «Поддержка и обслуживание». Если пункт не виден, проверьте права: обработка доступна пользователям с ролью администратора или правом на удаление объектов.

Альтернативный путь — через меню «Все функции» (открывается сочетанием Shift+Ctrl+F или через настройки интерфейса): в дереве найдите «Стандартные» → «Удаление помеченных объектов». Этот способ работает даже в конфигурациях, где разработчики убрали пункт из обычного меню.

Автоматическое и выборочное удаление

После запуска обработка предложит два режима. Автоматическое удаление стирает все помеченные объекты, на которые нет ссылок. Это быстрый вариант для регулярной очистки, когда вы уверены, что помечено только лишнее. Система выполнит проверку ссылок сама и покажет итоговый отчёт.

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

Сравнение режимов

Автоматическое удаление

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

Выборочное удаление

Подходит при первом запуске или если помечали разные люди. Медленнее, но позволяет исключить нужные объекты.

Программное удаление через код

Для разработчиков и массовых операций по расписанию. Требует аккуратности и тестирования на копии.

Почему объекты не удаляются: контроль ссылочной целостности

Частая ситуация: после процедуры часть объектов остаётся в базе, а система выводит список «мест использования». Это норма, а не сбой. 1С не удаляет объект, если на него ссылаются другие данные: например, помеченный контрагент указан в проведённой реализации, или помеченная номенклатура присутствует в документе инвентаризации.

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

Порядок удаления
  1. 1
    Сделайте резервную копию базы и завершите все сеансы пользователей
  2. 2
    Откройте Администрирование → Удаление помеченных объектов
  3. 3
    Выберите режим: автоматический или выборочный, запустите проверку
  4. 4
    Просмотрите список объектов, которые нельзя удалить из-за ссылок
  5. 5
    Разберите ссылки: замените, очистите или пометьте связанные объекты
  6. 6
    Повторите процедуру до полной очистки нужных позиций
  7. 7
    Проверьте результат поиском помеченных объектов в базе

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

Удаление через конфигуратор и программный способ

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

Для регулярной очистки по расписанию разработчики используют встроенный язык. Типовой подход — выбрать помеченные объекты запросом и вызвать метод удаления с контролем ссылок:

1c
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Справочник.Номенклатура ГДЕ ПометкаУдаления");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Объект = Выборка.Ссылка.ПолучитьОбъект();
    Объект.Удалить();
КонецЦикла;

Такой код удаляет объекты без проверки ссылок, поэтому перед применением его тестируют на копии базы и дополняют вызовом стандартной проверки через метод НайтиПоСсылкам. Для типовых конфигураций безопаснее вызывать процедуры общего модуля удаления помеченных объектов из БСП, а не писать цикл вручную.

Особенности для файловых и клиент-серверных баз

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

В клиент-серверном варианте монопольный режим устанавливается через консоль кластера: база блокируется для новых соединений на время процедуры. Объём журнала транзакций СУБД при массовом удалении может резко вырасти — на больших базах удаляйте порциями, чтобы не переполнить диск с логами.

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

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

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

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

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

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

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

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

Объекты остались без объяснения — процедура завершилась с ошибкой

Поиск удалённого документа по номеру
Норма

Документ не находится в базе

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

Документ открывается — удаление не выполнено

Отчёты по связанным разделам
Норма

Отчёты формируются без ошибок «Объект не найден»

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

Появились битые ссылки — удаление выполнено в обход контроля

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

Итог

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

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

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

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

Нет, физическое удаление необратимо. Единственный способ вернуть данные — восстановить базу из резервной копии, сделанной до процедуры. Пока объект только помечен, пометку можно снять в любой момент через контекстное меню или кнопку в форме объекта.

Почему помеченный документ не удаляется, хотя я его не использую?

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

Нужен ли монопольный режим для удаления в клиент-серверной базе?

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

Почему файл базы не уменьшился после удаления тысяч объектов?

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

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

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

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

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