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