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