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

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

Как массово удалить документы в 1С

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

Массовое удаление документов в 1С — типовая задача при очистке тестовых баз, удалении ошибочно загруженных данных или подготовке информационной базы к новому периоду. В типовых конфигурациях (Бухгалтерия предприятия, Управление торговлей, ERP, ЗУП) прямое удаление объектов запрещено: сначала документ помечается на удаление, затем специальная обработка проверяет ссылочную целостность и физически удаляет объект из базы.

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

Ниже разобраны все рабочие способы массового удаления: через интерфейс списка, обработку «Групповое изменение реквизитов», штатное удаление помеченных объектов, а также вариант с программным удалением для разработчиков. Отдельно описаны контроль ссылочной целостности, типичные ошибки и меры безопасности.

Почему в 1С нельзя удалить документ сразу

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

Пометка на удаление работает как корзина. Помеченный документ исключается из проведения (его движения по регистрам очищаются), перестаёт учитываться в отчётах, но физически остаётся в базе. В любой момент пометку можно снять, и документ вернётся в рабочее состояние вместе со всеми данными.

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

Подготовка: резервная копия и права доступа

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

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

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

Способ 1. Пометка на удаление через список документов

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

Выделите нужные строки: все — сочетанием Ctrl+A, произвольные — с зажатой клавишей Ctrl и щелчками мыши, диапазон — с зажатой клавишей Shift. Затем нажмите клавишу Delete или выберите «Ещё → Пометить на удаление / Снять пометку». Программа запросит подтверждение и пометит все выделенные документы.

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

Порядок действий при удалении через список
  1. 1
    Откройте журнал документов и настройте отбор по периоду и организации
  2. 2
    Убедитесь, что в списке только те документы, которые нужно удалить
  3. 3
    Выделите строки (Ctrl+A — все, Ctrl+клик — выборочно)
  4. 4
    Нажмите Delete и подтвердите пометку на удаление
  5. 5
    Запустите «Администрирование → Удаление помеченных объектов»
  6. 6
    Проверьте результат и разберите объекты, которые не удалились

Способ 2. Массовая пометка через обработку «Групповое изменение реквизитов»

Для больших объёмов в типовых конфигурациях на БСП (Библиотека стандартных подсистем) есть обработка «Групповое изменение реквизитов». Она находится в разделе «Администрирование → Обслуживание → Корректировка данных» (в некоторых конфигурациях — «НСИ и администрирование → Обслуживание»). Если пункта нет, проверьте, что у пользователя включён режим технического специалиста или есть соответствующие права.

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

В списке изменяемых реквизитов найдите служебный реквизит «Пометка удаления» и установите значение «Истина». После запуска обработка пометит все отобранные документы пакетно — это существенно быстрее ручного выделения при больших объёмах.

Если обработки нет в меню

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

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

После того как все нужные документы помечены, перейдите в «Администрирование → Обслуживание → Удаление помеченных объектов» (в некоторых конфигурациях путь: «Администрирование → Удаление помеченных объектов»). Запустите обработку и дождитесь окончания поиска помеченных объектов — на больших базах это может занять заметное время.

Система предложит два режима: «Автоматическое удаление всех помеченных объектов» и «Выборочное удаление объектов». В автоматическом режиме программа удалит всё, что не имеет ссылок. В выборочном — вы сами отметите флажками, что удалять. Для массовой очистки удобнее автоматический режим, но выборочный безопаснее, если в базе могли остаться помеченные объекты, которые трогать не планировалось.

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

Монопольный режим

Полное удаление помеченных объектов требует монопольного доступа к базе. Если работают другие пользователи, операция завершится с ошибкой «Конфликт блокировок» или не запустится. В файловой базе попросите всех выйти из программы; в клиент-серверной — завершите сеансы через консоль кластера или дождитесь нерабочего времени.

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

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

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

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

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

Удалено заметно меньше без списка неудалённых объектов

Журнал документов после операции
Норма

Удалённые документы отсутствуют в списке

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

Документы видны в списке без пометки

Отчёты по учёту (оборотка, карточка счёта)
Норма

Обороты не содержат удалённых документов

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

В отчётах строки «Объект не найден»

Программное удаление: когда нужен разработчик

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

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

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

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

Маршрут решения

Как выбрать действие

Нужно удалить до нескольких сотен документовВыделите их в журнале и пометьте на удаление вручную
Документов тысячи и есть чёткие условия отбораИспользуйте «Групповое изменение реквизитов» с отбором и пометкой «Пометка удаления = Истина»
Обработка не удаляет часть объектовОткройте список мест использования, пометьте связанные объекты и повторите удаление
Нужна полная очистка тестовой базы или нестандартный алгоритмПривлеките разработчика для программного удаления на копии базы

Типичные ошибки при массовом удалении

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

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

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

Итог

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

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

Часто задаваемые вопросы

Можно ли удалить документы без пометки на удаление?

Штатно через интерфейс — нет, платформа всегда требует пометку. Программно метод Удалить() удаляет объект напрямую, но без проверки ссылок, поэтому такой способ допустим только для тестовых баз и выполняется разработчиком на копии.

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

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

Как восстановить случайно удалённые документы?

Если выполнена только пометка — снимите её кнопкой «Пометить на удаление / Снять пометку». После физического удаления восстановление возможно только из резервной копии: выгрузки .dt, копии файла базы или бэкапа СУБД.

Удалятся ли движения документа по регистрам?

Да. При пометке на удаление движения очищаются автоматически, а при физическом удалении записи регистров удаляются вместе с документом. Отдельно чистить регистры не нужно.

Сколько времени занимает удаление большого объёма документов?

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

Можно ли удалить документы за закрытый период?

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