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