Удаление данных из базы 1С: от одного объекта до полной чистки
Содержание
Удалить запись в 1С в один клик, как файл в корзину, нельзя — и это защита, а не недоработка. Любой объект (документ, элемент справочника) может быть связан с десятками других записей, и прямое удаление оставило бы «висящие» ссылки и разъехавшийся учёт. Поэтому в 1С 8.3 работает двухшаговая схема: сначала объект помечают на удаление, потом отдельная обработка проверяет ссылки и физически убирает его из базы.
Ниже — все рабочие способы: от удаления одного документа до очистки регистров, истории изменений и полной свёртки базы. Пути указаны для платформы 8.3 в интерфейсе «Такси», примеры — на «1С:Бухгалтерии 3.0»; в других типовых конфигурациях логика та же, отличаются только названия разделов.
Перед любой массовой чисткой сделайте резервную копию. Удаление помеченных объектов и свёртка необратимы — откатить можно только из бэкапа.
Пометка на удаление: первый и обязательный шаг
Удаление начинается с пометки. Пометка не стирает данные — она лишь перечёркивает объект красным крестиком и выводит его из активного оборота: такой документ не попадает в новые отчёты по умолчанию, но его движения в регистрах пока сохраняются.
Чтобы пометить объект:
- Откройте нужный список (например,
Продажи → Реализация (акты, накладные)). - Выделите одну или несколько строк (с
CtrlилиShift— группу). - Нажмите клавишу
Del, либо правой кнопкой мыши вызовите меню и выберите «Пометить на удаление / Снять пометку». Та же команда есть в меню «Ещё» над списком.
Повторное нажатие снимает пометку — пока объект не удалён физически, решение обратимо.
Снять пометку сразу с группы документов удобно тем же способом: выделить строки и повторить команду. Крестик исчезнет у всех выбранных.
Чтобы увидеть, что уже помечено к удалению, настройте в списке отбор по пометке удаления: над списком команда настройки отбора позволяет оставить только помеченные строки. Так вы не удалите лишнее вслепую — перед запуском обработки видно весь список кандидатов.
Пометить можно и сам документ прямо из его формы — кнопка с крестиком в командной панели. Если объект нигде не задействован, пометка пройдёт молча. Если на него уже ссылаются (например, на номенклатуру завязаны проводки), система всё равно даст пометить — проверка связей включится только на втором шаге.
Обработка «Удаление помеченных объектов»
Физически данные убирает служебная обработка. Открывается она так: Администрирование → Обслуживание → Удаление помеченных объектов. В «1С:ЗУП 3.1» и «1С:Управлении торговлей 11» путь аналогичный — раздел Администрирование, группа обслуживания.
Обработка предложит два режима:
- Автоматическое удаление всех помеченных — убирает всё, что не связано ссылками.
- Выборочное удаление — вы отмечаете галочками конкретные объекты из списка помеченных.
Дальше запускается контроль ссылочной целостности. Это ключевой момент: обработка проверяет, не ссылается ли кто-то на удаляемый объект. Если ссылки есть, объект не удаляется, а попадает в список «не удалённых» с расшифровкой — где именно он используется. По ссылке из расшифровки можно перейти к мешающему документу, разобраться с ним (перепровести, исправить или тоже пометить) и повторить удаление.
Запускать обработку лучше, когда в базе никто не работает. При параллельной работе пользователей связи между объектами меняются в процессе проверки, и результат непредсказуем. В файловой базе достаточно попросить всех выйти; в клиент-серверной — установить блокировку начала сеансов на время чистки.
В режиме Конфигуратора есть аналогичная команда Администрирование → Удаление помеченных объектов, но для рутинной чистки данных она не нужна — пользуйтесь обработкой в режиме «1С:Предприятие».
Очистка движений, строк и записей регистров
Часто нужно убрать не весь документ, а его последствия или часть содержимого.
Строки табличной части. Откройте документ, выделите лишние строки в таблице (товары, услуги) и нажмите кнопку удаления строки или Del, затем запишите документ. Данные уйдут только после записи.
Движения в регистрах. Регистры накопления и бухгалтерии (остатки, обороты, проводки) заполняются при проведении документа. Чтобы убрать движения, не трогая сам документ, нажмите «Отменить проведение» (в форме документа или из списка через меню «Ещё»). Записи регистров, сформированные этим документом, исчезнут, а документ останется в базе как непроведённый.
Независимые регистры сведений. Записи, которые заполняются вручную (например, курсы валют, графики работы), можно редактировать и удалять прямо в их форме списка — выделить строку и нажать Del. Если регистр подчинён регистратору, напрямую запись не удалить: нужно снять проведение или пометить документ-регистратор.
| Что убираем | Как | Что останется |
|---|---|---|
| Строки документа | Удалить строки + записать | Сам документ |
| Движения документа | Отменить проведение | Непроведённый документ |
| Запись независимого регистра | Del в форме списка | — |
| Весь документ | Пометить + обработка удаления | Ничего |
Логика «отменить проведение» вместо удаления полезна, когда документ нужен для истории, но его влияние на учёт ошибочно. Например, задвоенная реализация: убирать сам документ рискованно (на него может ссылаться счёт-фактура), а отмена проведения снимает лишние движения и останавливает искажение остатков. Разбираться со связями при этом не придётся.
Удаление данных в обменах и распределённых базах
Если база работает не одна, а в связке — через синхронизацию или в виде распределённой информационной базы (РИБ), удаление ведёт себя иначе, чем в автономной базе. Это важно учитывать, иначе данные «вернутся» после ближайшего обмена.
В РИБ удаление объекта в одном узле регистрируется как изменение и переносится в остальные узлы при очередном обмене. То есть удалять нужно в том узле, где это разрешено правилами, а не в произвольной копии — иначе центральный узел при следующем сеансе восстановит то, что вы убрали на периферии.
При синхронизации типовых конфигураций (например, обмен «Бухгалтерии» с «Управлением торговлей») удаление или пометка объекта тоже попадает в исходящее сообщение. Поэтому:
- Сначала решите, в какой базе объект «главный» — обычно там, где он создаётся.
- Удаляйте в этой базе, затем выполните обмен, чтобы изменение разошлось по остальным.
- Не удаляйте один и тот же объект в двух базах навстречу друг другу — это даёт конфликты и ошибки обмена.
Прежде чем чистить базу, которая участвует в обмене, уточните, не создаёт ли она данные для других баз. Удаление «общего» справочника в подчинённой базе может оборвать сопоставление объектов и сломать синхронизацию.
Перенумерация документов и сброс счётчиков
Штатной кнопки «сбросить нумерацию» в пользовательском режиме нет. Номера документам присваивает нумератор, а его периодичность (чаще всего — в пределах года) задаётся в Конфигураторе в свойствах документа. С нового периода счётчик стартует заново автоматически.
Если номера «разъехались» из-за удаления документов и нужно их выровнять, есть два пути:
- Вручную — открыть документ, снять автонумерацию (поле номера станет редактируемым) и вписать нужный номер. Подходит для единичных случаев.
- Групповая перенумерация — специализированная обработка. В типовые конфигурации она штатно не входит; используют внешнюю обработку «Групповое перенумерование документов» с проверенного ресурса. Запускают строго на копии базы или с бэкапом: массовое изменение номеров необратимо.
Не гонитесь за «красивой» сквозной нумерацией после удаления. Пропуски в номерах — это нормально и не нарушение. Перенумеровывать документы прошлых закрытых периодов не стоит: можно задеть уже сданную отчётность.
Чистка истории изменений, версий и журнала регистрации
«Сведения» — это не только документы. В базе копится служебная информация, которую тоже иногда чистят.
История (версионирование) объектов. Если в конфигурации включено версионирование (Администрирование → Общие настройки → История изменений), система хранит прошлые версии каждого объекта. Со временем это заметно раздувает базу. В настройках версионирования задаётся срок хранения версий; устаревшие удаляются регламентным заданием. Там же можно отключить хранение истории для объектов, по которым она не нужна.
Журнал регистрации. Это технический лог платформы (кто и когда что делал), а не учётные данные. Он лежит в каталоге базы (файлы 1Cv8Log) и к учёту отношения не имеет. Сократить или очистить его можно в Конфигураторе: Администрирование → Настройка журнала регистрации — там задаётся период хранения и разделение записей по периодам. Старые периоды после этого можно удалить.
Кэш и временные данные. Если речь о «мусоре», который тормозит клиент, а не о данных базы, помогает чистка кэша платформы — удаление временных каталогов пользователя. Это не затрагивает содержимое базы и выполняется при закрытой программе.
Полная чистка базы: свёртка и чистый старт
Когда нужно избавиться не от отдельных записей, а от всех старых данных целиком, поштучное удаление не подходит. Здесь два проверенных сценария.
Свёртка информационной базы. Обработка «Свёртка информационной базы» рассчитывает остатки на выбранную дату, вводит их документами «Ввод остатков », а старые документы до этой даты помечает на удаление. Так вы оставляете актуальные остатки и справочники, но убираете архив первички за прошлые годы. Открыть обработку проще всего через «Все функции» → Обработки → «Свёртка информационной базы».
Чтобы пункт «Все функции» появился в меню: нажмите значок главного меню (стрелка вверху слева) → Сервис → Параметры → поставьте галочку «Отображать команду “Все функции”».
Свёртка меняет учёт необратимо. Делайте её только на копии базы сначала, проверяйте остатки на дату свёртки до и после, и лишь потом повторяйте на рабочей базе. После свёртки сверьте оборотно-сальдовую ведомость.
Свёртка затрагивает регистры накопления и бухгалтерии — то, из чего складываются остатки и обороты. Справочники (контрагенты, номенклатура, сотрудники), настройки и учётную политику она не трогает: они остаются в базе, а объём уменьшается за счёт удаления первички за свёрнутые периоды. Поэтому дата свёртки выбирается на начало периода, который точно закрыт и по которому отчётность уже сдана.
Чистый старт с нуля. Если нужна пустая база с теми же настройками — создайте новую из шаблона конфигурации и перенесите только то, что нужно (справочники, настройки учётной политики) через выгрузку-загрузку или начальный ввод остатков
. Полная выгрузка в файл .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) для этого не годится: она копирует базу целиком вместе со всеми данными, это инструмент бэкапа, а не чистки.
Выбор между свёрткой и чистым стартом простой: нужно сохранить остатки и продолжить учёт в той же базе — свёртка; нужна демонстрационная или учебная база без реальных сумм — новая база из шаблона. Сворачивать базу «на всякий случай» не стоит: операция тяжёлая, и без явной причины (разросшаяся база, передача партнёру) её лучше не запускать.