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