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

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

Как удалить данные из 1С:Предприятие

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

Удаление данных в 1С:Предприятие устроено иначе, чем в обычных файловых программах: объект нельзя просто стереть, пока на него ссылаются другие документы и справочники. Это защита целостности базы — система не даст удалить контрагента, по которому проведены реализации, или товар, числящийся в документах поступления. Поэтому удаление почти всегда идёт в два этапа: сначала пометка, затем контролируемое физическое удаление.

Неправильные действия при удалении — одна из самых частых причин повреждения баз и потери учётных данных. Прямое удаление через инструменты обхода контроля, чистка таблиц СУБД вручную или удаление помеченных объектов без проверки ссылок приводят к «битым» ссылкам вида «Объект не найден», развалу отчётов и невозможности провести документы. Восстановить такую базу бывает сложнее, чем заново ввести данные.

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

Подготовка: резервная копия и оценка объёма удаления

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

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

Пометка на удаление: первый обязательный этап

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

Чтобы пометить объект, выделите его в списке и нажмите клавишу Delete или кнопку «Пометить на удаление / снять пометку» в меню «Ещё». Для документа пометка автоматически отменяет проведение. Если документ входит в последовательность или закрытый период, система может запретить действие — это нормальная защита, а не сбой.

Массово пометить объекты можно через групповое изменение реквизитов («Ещё → Изменить выделенные» в списке) либо через обработки свёртки и очистки, если речь идёт о данных за период. Перед массовой пометкой отфильтруйте список максимально точно — ошибка в отборе означает, что под пометку попадут лишние объекты.

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

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

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

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

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

Удаление документов, движений и данных за период

Документы удаляются через ту же схему «пометка → удаление помеченных», но есть нюансы. Пометка документа отменяет проведение, поэтому его движения по регистрам исчезают сразу — до физического удаления. Если документы стоят в закрытом периоде (установлена дата запрета изменения данных), пометить их не получится: сначала нужно временно снять запрет в разделе «Администрирование → Поддержка и обслуживание → Даты запрета изменения данных», и делать это должен пользователь с правами администратора.

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

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

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

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

Нужно убрать один объект или документПометка на удаление → «Удаление помеченных объектов» с контролем ссылок
Нужно сократить базу за прошлые годыШтатная свёртка базы с переносом остатков на дату
Объект используется в старых документах, но мешает в подбореОставить помеченным без физического удаления
Нужно очистить только регистры документаОтменить проведение документа, сам документ не удалять
Нужно стереть персональные данные по требованиюИспользовать механизм скрытия/удаления персональных данных в типовой конфигурации, а не ручную чистку

Массовое удаление и работа программными средствами

Когда объектов сотни или тысячи, ручная пометка непрактична. В списках типовых конфигураций доступно групповое изменение: выделите нужные строки (отбором или Ctrl+A), выберите «Ещё → Изменить выделенные» и установите пометку удаления. Для нестандартных отборов используют универсальные обработки групповой обработки справочников и документов — они позволяют пометить объекты по произвольному запросу.

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

bsl
// Пометка на удаление объекта
Объект = Ссылка.ПолучитьОбъект();
Объект.УстановитьПометкуУдаления(Истина);

// Пакетное удаление всех помеченных (требуется монопольный режим)
УдалитьПомеченныеОбъекты();

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

Частые ошибки и как их избежать

Самая разрушительная ошибка — удаление данных напрямую в СУБД (запросами DELETE к таблицам) или обработками «прямого удаления» без контроля платформы. Платформа хранит служебные связи, итоги регистров и последовательности; ручное вмешательство оставляет базу в рассогласованном состоянии, которое проявляется не сразу, а при проведении документов или пересчёте итогов.

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

Типичные ошибки
01
Удаление без резервной копии — при ошибке данные не восстановить
02
Режим «без контроля ссылок» — появляются «битые» ссылки и падают отчёты
03
Чистка таблиц СУБД напрямую — расхождение итогов и повреждение базы
04
Удаление объектов, участвующих в обмене, без согласования — сбой синхронизации
05
Массовая пометка по неточному отбору — под удаление попадают рабочие данные
06
Удаление документов закрытого периода вместо корректной свёртки — искажение отчётности прошлых лет

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

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

Для файловой базы после масштабной чистки имеет смысл выполнить тестирование и исправление (через конфигуратор или chdbfl.exe) и сжатие базы — физический размер файла сам по себе после удаления не уменьшается, освобождённое место остаётся внутри файла. Для клиент-серверных баз вопрос освобождения места решается средствами СУБД.

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

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

Повторный запуск «Удаления помеченных объектов»
Норма

Список пуст или содержит только объекты с осознанно оставленными ссылками

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

Объекты, которые должны были удалиться, остались без указания ссылок

Контрольные отчёты (ОСВ, остатки, взаиморасчёты)
Норма

Итоги совпадают со значениями до чистки

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

Итоги изменились без документального обоснования

Поиск строки «Объект не найден» в журналах и документах
Норма

Таких записей нет

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

Есть «битые» ссылки — требуется восстановление из копии или замена ссылок

Работа обмена данными после удаления
Норма

Синхронизация проходит без ошибок о несуществующих объектах

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

Ошибки ссылочной целостности в обмене

Итог

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

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

Частые вопросы

Почему объект не удаляется, хотя пометка стоит?

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

Можно ли удалить данные без пометки, сразу и навсегда?

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

Как удалить все документы за прошлый год?

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

Удалил объект, теперь в документах «Объект не найден». Что делать?

Это последствие удаления без контроля ссылок. Если есть резервная копия — восстановите объект оттуда (или всю базу, если повреждений много). Если копии нет, «битые» ссылки придётся заменять вручную или программно на существующий объект, а в ряде случаев — очищать реквизиты документов.

Почему размер файла базы не уменьшился после удаления?

Файловая база 1С не отдаёт освобождённое место операционной системе автоматически — оно остаётся зарезервированным внутри файла 1Cv8.1CD. Чтобы физически сжать файл, выполните тестирование и исправление с включённым сжатием таблиц в конфигураторе или утилитой chdbfl.exe.

Как удалить данные в клиент-серверной базе — есть ли отличия?

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