Очистка базы 1С 8.3: удаление помеченных объектов и контроль ссылок

· 9 мин

Содержание

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

Очистка в 1С всегда идёт в два приёма: сначала пометка на удаление, потом отдельная операция Администрирование → Обслуживание → Удаление помеченных объектов с контролем ссылок. Ниже — как провести это по порядку, какие нужны права, что делать с зависимостями и как убрать данные за старые периоды целиком.

Почему объект нельзя удалить сразу

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

Чтобы этого не произошло, платформа разделяет действие на два этапа:

  • 📌 Пометка на удаление — объект остаётся в базе, но помечается как кандидат на удаление (в списке у него появляется перечёркнутая иконка).
  • 🧹 Удаление помеченных — отдельная операция проверяет, не ссылается ли кто-то на помеченные объекты, и удаляет только те, что можно удалить безопасно.

Именно контроль ссылочной целостности на втором шаге защищает базу от разрушения. Поэтому «очистка структуры» — это не одно действие, а управляемая процедура.

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

Подготовка: резервная копия, выгрузка и права

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

Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытой базе. Надёжнее — выгрузить базу в файл .dt через Конфигуратор: Администрирование → Выгрузить информационную базу. Для клиент-серверной базы копию делают средствами СУБД (бэкап PostgreSQL или MS SQL).

Без свежей резервной копии очистку не начинайте. Если удалите лишнее, вернуть данные можно будет только из бэкапа.

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

Список пользователей и их роли смотрят в разделе Администрирование → Настройки пользователей и прав → Пользователи. Если команды удаления помеченных не видно в интерфейсе — почти всегда дело именно в правах текущего пользователя, а не в отсутствии функции.

Перед очисткой структуры проверьте
Выполнено: 0 / 5

Пометка на удаление и удаление помеченных объектов

Как пометить объекты, в том числе массово

Чтобы пометить один объект, откройте его список, встаньте на нужную строку и нажмите клавишу Del либо команду Ещё → Пометить на удаление / Снять пометку. Иконка строки станет перечёркнутой.

Для массовой пометки выделите несколько строк мышью с зажатым Ctrl или Shift (либо Ctrl+A — выделить все) и примените ту же команду. Так помечают целые пачки документов за ненужный период.

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

Как запустить удаление помеченных

Команда находится в разделе Администрирование → Обслуживание, группа «Корректировка данных» — пункт Удаление помеченных объектов. В типовых конфигурациях на базе Библиотеки стандартных подсистем (1С:Бухгалтерия, 1С:ЗУП, 1С:Управление торговлей) путь одинаковый.

Форма предложит два режима:

  1. Автоматически удалить все помеченные — платформа сама найдёт все помеченные объекты по базе и удалит те, что можно.
  2. Выборочно — вы отмечаете галочками, что именно удалять из найденного списка. Удобно, когда помечено много, а стереть нужно только часть.

Нажмите «Удалить». Система проверит ссылки и выполнит удаление. По итогам появится отчёт: что удалено, а что — нет, с указанием причины.

Удаление лучше запускать, когда другие пользователи вышли из базы. В многопользовательском режиме часть объектов может не удалиться из-за блокировок, а при автоматическом режиме процесс идёт заметно дольше. Запуск в монопольном режиме надёжнее.

Ошибка «на объект есть ссылки»: как снять зависимости

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

Разберитесь с каждой зависимостью одним из способов:

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

Чтобы заранее понять, кто ссылается на конкретный элемент, в большинстве списков есть команда поиска связанных объектов (в меню Ещё). Но на практике удобнее опираться на отчёт самой операции удаления — он покажет зависимости точнее и для всех объектов разом.

Очистка старых периодов: свёртка базы

Когда цель — убрать не отдельные объекты, а все документы за давно закрытые годы, пометкой каждого документа заниматься бессмысленно. Для этого есть свёртка информационной базы.

Свёртка работает иначе, чем удаление помеченных:

  1. На выбранную дату формируются документы ввода остатков — чтобы не потерять сальдо по счетам, складам и взаиморасчётам.
  2. Документы за период до этой даты удаляются.
  3. Остатки на начало нового периода остаются корректными.

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

Порядок безопасной свёртки:

  1. Снимите оборотно-сальдовую ведомость на дату свёртки — это эталон, с которым будете сверяться.
  2. Выполните свёртку на копии базы.
  3. Сформируйте ОСВ на ту же дату в свёрнутой копии и сравните с эталоном: остатки по счетам, складам, контрагентам должны совпасть до копейки.
  4. Проверьте взаиморасчёты и количественный учёт — именно там чаще всего всплывают расхождения.
  5. Только при полном совпадении переносите свёрнутую базу в работу.

Если остатки после свёртки не сошлись — не переносите результат, разбирайтесь с причиной на копии. Рабочая база при этом остаётся нетронутой.

Свёртку назначайте на период, по которому уже сданы все отчёты и закрыты все годы. Трогать текущий или прошлый отчётный год не стоит — потеряете детализацию, которая ещё может понадобиться при проверке.

Особенности в 1С:Бухгалтерии и 1С:ЗУП

Механизм пометки и удаления помеченных одинаков во всех типовых конфигурациях. Отличается то, что в каждой конфигурации опасно удалять.

КонфигурацияЧто рискованно удалятьПочему
1С:БухгалтерияДокументы, формирующие проводки и движения по счетамПоедут остатки, баланс и отчётность
1С:БухгалтерияКонтрагентов и договоры с историей расчётовНарушатся взаиморасчёты по счёту 60/62/76
1С:ЗУПДокументы начислений, больничные, отпуска за расчётный периодИсказятся среднемесячный заработок и отчётность по взносам
1С:ЗУПСотрудников с историей начислений и кадровыми документамиДанные для СФР и справок о доходах станут неполными

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

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

Автоматизация: регулярное удаление помеченных

Если в базе постоянно появляются помеченные объекты (отменённые заказы, импортированные дубли), запускать очистку вручную неудобно. Удаление помеченных можно поставить на расписание.

В форме Удаление помеченных объектов есть настройка автоматического режима по расписанию — она создаёт регламентное задание, которое периодически чистит помеченные объекты в фоне. Расписание задаёте там же: например, раз в неделю ночью, когда пользователей в базе нет.

Для клиент-серверной базы регламентное задание выполняется на сервере и не требует открытого сеанса. Для файловой базы оно отработает только при запущенном сеансе с соответствующими правами — для постоянной автоматизации файловый вариант подходит хуже.

Автоматическое удаление удобно, но за ним нужно присматривать: включайте его только после того, как вручную убедились, что в базу не попадают ошибочно помеченные нужные объекты.

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

Почему размер базы не уменьшился после очистки

Частая неожиданность: помеченные объекты удалены, а файл базы остался прежнего размера. Это нормально. Удаление помеченных освобождает записи логически, но физический файл 1Cv8.1CD сам по себе не сжимается — место внутри него помечается как свободное и используется под новые данные.

Чтобы реально уменьшить файловую базу , в Конфигураторе запускают Администрирование → Тестирование и исправление информационной базы. Включите реструктуризацию и сжатие таблиц — платформа перепишет таблицы и вернёт освободившееся место файловой системе.

Для клиент-серверной базы размер контролируется на стороне СУБД: обслуживание и перестроение индексов, сжатие базы средствами PostgreSQL или MS SQL. Делает это администратор сервера, а не пользователь 1С.

Тестирование и исправление запускают в монопольном режиме: во время операции база недоступна, активные сеансы оборвутся. Планируйте её на нерабочее время и только после резервной копии.

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

Можно ли удалить объект совсем без пометки?
Нет. В 1С 8.3 прямое удаление заблокировано контролем ссылок. Любая очистка идёт через пометку и операцию удаления помеченных — это единственный штатный путь.
Удаление помеченных объектов можно отменить?
Нет, после подтверждения операция необратима. Вернуть данные получится только восстановлением из резервной копии, поэтому копию делают до запуска.
Почему объект помечен, а при удалении остаётся в базе?
На него ссылаются другие объекты либо он заблокирован чужим сеансом. Посмотрите отчёт операции: там указано, кто держит ссылку, и удалите или поправьте эти объекты.
Нужен ли монопольный режим для очистки?
Для пометки — нет. Для массового удаления помеченных монопольный режим не обязателен, но желателен: так ничего не «застрянет» на блокировках и операция пройдёт быстрее.
Чем свёртка отличается от удаления помеченных?
Удаление помеченных стирает конкретные выбранные объекты. Свёртка убирает все документы за старый период целиком и при этом формирует остатки на начало нового периода, сохраняя корректность учёта.