Удаление документов, справочников и движений в 1С 8.3 без потерь
Содержание
Удалять данные в 1С безопасно в два этапа: сначала пометить объект на удаление клавишей Del, затем запустить обработку «Удаление помеченных объектов» (в БП 3.0, ЗУП 3.1 и УТ 11 — Администрирование → Обслуживание, группа «Корректировка данных»). Обработка сама проверит, ссылаются ли на объект другие данные, и не даст сломать учёт.
Есть и другие инструменты: отмена проведения убирает только движения документа, управление итогами пересчитывает регистры, а тестирование и исправление в Конфигураторе чистит битые ссылки и сжимает таблицы. Какой выбрать, зависит от задачи: убрать лишний документ, исправить прошлый период или облегчить разросшуюся базу.
| Задача | Инструмент | Риск |
|---|---|---|
| Убрать ошибочный документ или элемент справочника | Пометка + «Удаление помеченных объектов» | Низкий, ссылки контролируются |
| Документ нужен, но его проводки — нет | Отмена проведения | Средний: меняются остатки за период |
| Остатки и обороты считаются медленно или неверно | Управление итогами, пересчёт итогов | Низкий |
| Ссылки на несуществующие объекты, ошибки структуры | Тестирование и исправление в Конфигураторе | Высокий без резервной копии |
| База выросла за много лет | Свёртка или новая база с вводом остатков | Высокий, необратимо |
Подготовка к удалению данных: копия, права, пользователи
Удаление через обработку необратимо. Корзины в 1С нет: удалённый элемент восстанавливается только из резервной копии.
Перед массовым удалением сделайте выгрузку базы в файл .dt. Это делается в Конфигураторе: Администрирование → Выгрузить информационную базу. Для клиент-серверной базы подойдёт и штатная копия средствами СУБД, если её делает администратор.
Что проверить заранее:
- 👤 Права. Пометить на удаление может любой пользователь с правом редактирования. Запустить обработку удаления обычно может только администратор: в типовых конфигурациях она доступна полным правам.
- 👥 Кто работает в базе. Объекты, открытые другими пользователями или захваченные их транзакциями, могут не удалиться. Удобнее запускать удаление вечером или предупредить коллег.
- 📅 Закрытый период. Если в базе настроены даты запрета изменения, документы закрытого периода удалить не получится. Это не ошибка, а защита: дату запрета сдвигает ответственный за учёт.
- 🔗 Обмены. Если база участвует в обмене данными (с розницей, бухгалтерией, филиалом), удаление уйдёт и в другую базу. Удаляйте в той базе, которая главная для этих объектов.
Пометка на удаление: как пометить объект и снять пометку
Пометка — логическое удаление. Объект остаётся в базе, но перечёркивается в списке и получает значок с красным крестиком. Его по-прежнему видно в отчётах по ссылкам, но в новые документы выбрать его уже нельзя (в большинстве форм выбора помеченные скрыты или выделены).
Как пометить
- Откройте список документов или справочника.
- Выделите строку. Для нескольких строк —
CtrlилиShiftс кликом мышью. - Нажмите
Delили выберите в менюЕщёкоманду пометки на удаление. - Подтвердите вопрос программы.
Повторное Del на помеченном объекте снимает пометку. Так же работает команда в меню Ещё.
Что происходит с проведённым документом
Когда вы помечаете на удаление проведённый документ, платформа отменяет его проведение. Движения по регистрам удаляются сразу, остатки и обороты пересчитываются. Значит, отчёты изменятся ещё до запуска обработки удаления.
Пометка проведённого документа в закрытом месяце меняет себестоимость, НДС и остатки задним числом. Если период уже сдан в отчётности, согласуйте действие с главным бухгалтером.
Пометка элемента справочника
Пометка контрагента, номенклатуры или сотрудника не трогает документы, где этот элемент выбран. Документы остаются как есть. Удалить такой элемент обработка не даст, пока на него есть ссылки (подробнее — в разделе про зависимости).
Группу справочника можно пометить целиком: вместе с ней помечаются вложенные элементы. Снимать пометку придётся тоже с группы.
Удаление непосредственно
Если у роли пользователя есть право интерактивного удаления, в меню Ещё появляется команда прямого удаления, минуя пометку. Прямое удаление не проверяет ссылки. Документы, где был выбран удалённый элемент, получат ссылку на несуществующий объект: в полях появится <Объект не найден>. В типовых конфигурациях это право обычным ролям не дают, и включать его не стоит.
Удаление помеченных объектов: стандартная обработка
Обработка ищет все помеченные объекты, проверяет ссылки и удаляет то, что можно удалить без вреда.
Где найти
| Конфигурация | Путь |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Удаление помеченных объектов |
| ЗУП 3.1 | Администрирование → Обслуживание → Удаление помеченных объектов |
| Управление торговлей 11 | НСИ и администрирование → Администрирование → Обслуживание → Удаление помеченных объектов |
| Любая конфигурация на 8.3 | Главное меню → Все функции → Стандартные → Удаление помеченных объектов |
Команда «Все функции» появляется после включения флажка «Отображать команду “Все функции”» в Главное меню → Сервис → Параметры.
Режимы работы
- 🗑 Автоматическое удаление всех помеченных. Обработка проходит по всей базе и удаляет всё, что может. Подходит для регулярной чистки.
- ✅ Выборочное удаление. Обработка показывает дерево помеченных объектов по видам (документы, справочники). Вы снимаете флажки с того, что пока удалять не нужно. Подходит, когда пометки ставили разные люди и не все уверены.
Пошагово
- Откройте обработку и выберите режим.
- В выборочном режиме дождитесь, пока программа соберёт список, и проверьте его.
- Нажмите кнопку удаления.
- Изучите результат: сколько объектов удалено и какие остались.
Неудалённые объекты обработка показывает с причиной: где именно есть ссылка на объект. Двойной клик по строке открывает мешающий документ или элемент.
На большой базе первое удаление идёт долго: обработка проверяет ссылки во всех таблицах. В типовых конфигурациях последних лет удаление работает и без монопольного режима, но при работающих пользователях часть объектов может остаться. Если нужно убрать всё за один проход — запускайте, когда в базе никого нет.
Ссылки и зависимости: почему объект не удаляется
Главная защита 1С — контроль ссылочной целостности. Объект нельзя удалить, пока на него ссылаются неудаляемые данные.
Типичные причины
- 📄 Ссылка из непомеченного документа. Например, вы помечаете контрагента, а на него оформлены 15 реализаций. Пока реализации живы, контрагент не удалится.
- 🧾 Ссылка из регистра сведений. Цены номенклатуры, курсы, контактная информация, история сотрудника. Записи регистра тоже держат объект.
- 🔁 Ссылка из реквизитов другого справочника. Договор указывает на контрагента, банковский счёт — на банк, номенклатура — на единицу измерения.
- 🗂 Подчинённые документы. Счёт-фактура выписан на основании реализации: удалить реализацию без счёта-фактуры не выйдет.
Если оба объекта помечены и ссылаются друг на друга (реализация и её счёт-фактура), обработка удалит их вместе. Циклические ссылки между помеченными объектами она разбирает сама.
Как найти, кто ссылается на объект
- Для документа: в форме или списке откройте структуру подчинённости (команда есть в панели и в меню
Ещё). Видны все документы, созданные на его основании. - Для любого объекта:
Все функции → Стандартные → Поиск ссылок на объекты. Выберите объект, нажмите поиск — получите список всех мест использования, включая регистры. - В результате обработки удаления — дерево неудалённых объектов с указанием мешающих ссылок.
Что делать со ссылками
| Ситуация | Решение |
|---|---|
| Ссылающийся документ тоже ошибочный | Пометить его и удалить вместе |
| Ссылки правильные, а объект — дубль | Заменить ссылки на «правильный» элемент, затем удалить дубль |
| Ссылки из старых периодов | Оставить объект; снять пометку или пометить как недействующий |
Для дублей контрагентов и номенклатуры в типовых конфигурациях есть обработка «Поиск и удаление дублей» в том же разделе Администрирование → Обслуживание. Она находит похожие элементы, переносит все ссылки на оставляемый элемент и удаляет лишний. Это быстрее, чем перевыбирать контрагента в сотне документов вручную.
Удаление движений документов и правка прошлых периодов
Иногда документ нужен как первичка, а его проводки — нет. Например, поступление ввели дважды: один документ оставляете, второй исключаете из учёта.
Отмена проведения
- Откройте список документов.
- Выделите один или несколько документов.
- В меню
Ещёвыберите отмену проведения.
Документ остаётся в базе с непроведённым статусом. Все его движения по регистрам и проводки удаляются. Повторное проведение восстановит их по текущим данным.
Последовательность и задним числом
Отмена проведения или удаление документа в прошлом месяце сдвигает всё, что считается последовательно:
- 📦 себестоимость списания при партионном учёте;
- 💰 закрытие месяца и финансовый результат;
- 🧮 расчёты по НДС и книги покупок и продаж;
- 👷 зарплатные расчёты, если удалён кадровый документ.
После правок задним числом перепроведите документы с изменённой даты и заново выполните закрытие месяца за каждый затронутый период. Для массового перепроведения в типовых конфигурациях есть обработка группового перепроведения документов в разделе Администрирование → Обслуживание.
Ручная корректировка движений
В БП 3.0 у документа можно открыть проводки (кнопка ДтКт) и включить ручную корректировку. Тогда проводки правятся или удаляются вручную, а при перепроведении документ их не перезапишет.
Ручная корректировка разрывает связь между данными документа и его проводками. Пользуйтесь ей точечно и оставляйте комментарий в документе, почему так сделано.
Глубокая очистка: итоги регистров, битые ссылки, сжатие
Обычное удаление убирает объекты, но не облегчает базу. Для этого есть три инструмента разной глубины.
Управление итогами
Итоги — заранее посчитанные остатки регистров накопления и бухгалтерии. Они ускоряют отчёты. Если итоги «поехали» (отчёт показывает одно, расшифровка — другое), их пересчитывают.
Путь: Все функции → Стандартные → Управление итогами. В типовых конфигурациях та же обработка есть и в разделе обслуживания.
Что можно сделать:
- 🔄 пересчитать итоги — удаляет накопленные итоги и считает заново по движениям;
- 📆 установить период рассчитанных итогов — итоги хранятся по указанную дату, дальше считаются на лету;
- ⏸ выключить и снова включить использование итогов — применяют при массовой загрузке данных.
Пересчёт итогов не удаляет движения и проводки. Это безопасная операция, но на большой базе она занимает время, а отчёты в процессе могут тормозить.
Тестирование и исправление
Глубокая проверка выполняется в Конфигураторе: Администрирование → Тестирование и исправление. Для неё нужен монопольный доступ: все пользователи должны выйти из базы.
Полезные флажки:
| Флажок | Что делает |
|---|---|
| Реиндексация таблиц информационной базы | Перестраивает индексы |
| Проверка логической целостности | Ищет нарушения структуры |
| Проверка ссылочной целостности | Ищет ссылки на несуществующие объекты |
| Пересчёт итогов | То же, что в управлении итогами |
| Сжатие таблиц информационной базы | Уменьшает размер файла базы |
Для битых ссылок программа предлагает варианты: создавать объекты, очищать ссылки или не изменять. Вариант «Очищать ссылки» стирает значения в документах без возможности вернуть. Безопаснее «Создавать объекты»: появятся элементы-заглушки, которые потом можно заменить на правильные.
Почему файл базы не уменьшился
Файловая база (1Cv8.1CD) после удаления данных не сжимается сама: освободившиеся страницы остаются внутри файла. Размер уменьшают двумя способами:
- Тестирование и исправление с флажком «Сжатие таблиц информационной базы».
- Выгрузка базы в
.dtи загрузка обратно в пустую базу.
В клиент-серверной базе место освобождает обслуживание на стороне СУБД. Это задача администратора сервера.
Свёртка базы
Когда база копит данные десятилетиями, помогает свёртка: старые документы заменяются вводом остатков на выбранную дату. Это самая радикальная очистка — документы прошлых лет пропадают. Перед свёрткой сохраните полную копию базы как архив. Часто вместо свёртки выбирают новую базу с переносом остатков, а старую оставляют только для просмотра.
Автоматическое удаление помеченных объектов по расписанию
Чистить базу вручную раз в месяц неудобно. В типовых конфигурациях удаление помеченных можно поручить регламентному заданию.
Как включить
- Откройте
Администрирование → Обслуживание. - В группе корректировки данных найдите флажок автоматического удаления помеченных объектов по расписанию.
- Настройте расписание: например, раз в неделю в воскресенье ночью.
В файловой базе регламентные задания выполняются, только когда в базе работает хотя бы один пользователь или запущен отдельный сеанс. В клиент-серверной базе их выполняет сервер 1С, если для базы не установлена блокировка регламентных заданий.
Где смотреть результат
Итог каждого запуска пишется в журнал регистрации: Администрирование → Обслуживание → Журнал регистрации. Отфильтруйте события по регламентному заданию удаления — увидите, сколько объектов удалено и были ли ошибки.
Удаление из кода
Разработчику иногда нужно пометить объекты программно, например при обработке загрузки. Безопасный путь тот же: пометка, а не прямое удаление.
ДокументОбъект = СсылкаНаДокумент.ПолучитьОбъект();
ДокументОбъект.УстановитьПометкуУдаления(Истина);
Метод УстановитьПометкуУдаления у проведённого документа отменяет проведение, как и интерактивная пометка. Метод Удалить() удаляет объект без контроля ссылок — его применяют только во внешних обработках с полной копией базы под рукой.
Частые вопросы
Можно ли восстановить удалённый в 1С документ?
Кто удалил документ: как узнать?
Почему помеченный документ всё ещё влияет на отчёты?
Нужно ли выгонять всех пользователей для удаления помеченных?
Как удалить все документы за год сразу?
Ctrl+A), пометьте на удаление и запустите обработку. Для полной очистки прошлых лет надёжнее свёртка или новая база с остатками.