Очистка базы 1С 8.3: удаление помеченных объектов и контроль ссылок
Содержание
«Очистить структуру» обычно понимают буквально: нашёл лишние документы или справочники — удалил. В базе 1С 8.3 так не получится. Попробуете стереть элемент напрямую — платформа ответит Объект не может быть удалён, так как на него есть ссылки. Единой кнопки «стереть всё» тоже нет.
Очистка в 1С всегда идёт в два приёма: сначала пометка на удаление, потом отдельная операция Администрирование → Обслуживание → Удаление помеченных объектов с контролем ссылок. Ниже — как провести это по порядку, какие нужны права, что делать с зависимостями и как убрать данные за старые периоды целиком.
Почему объект нельзя удалить сразу
Каждый документ, элемент справочника или запись регистра может быть связан с десятками других объектов. Расходная накладная ссылается на контрагента, договор, номенклатуру и формирует движения по регистрам. Удалить контрагента , пока на него ссылается хотя бы один документ, — значит получить «висячую» ссылку и испорченные отчёты.
Чтобы этого не произошло, платформа разделяет действие на два этапа:
- 📌 Пометка на удаление — объект остаётся в базе, но помечается как кандидат на удаление (в списке у него появляется перечёркнутая иконка).
- 🧹 Удаление помеченных — отдельная операция проверяет, не ссылается ли кто-то на помеченные объекты, и удаляет только те, что можно удалить безопасно.
Именно контроль ссылочной целостности на втором шаге защищает базу от разрушения. Поэтому «очистка структуры» — это не одно действие, а управляемая процедура.
Разберём на примере. Вы завели контрагента ошибочно, но уже выписали на него счёт и реализацию. Удалить контрагента сразу нельзя — на него ссылаются два документа. Правильный порядок: сначала пометить на удаление оба документа и сам справочный элемент, затем запустить удаление помеченных. Платформа увидит, что все ссылки тоже помечены, и удалит их вместе. Если же документы нужны, контрагента придётся оставить.
Подготовка: резервная копия, выгрузка и права
До любой очистки сделайте резервную копию. Удаление помеченных объектов необратимо: после подтверждения данные из базы исчезают, отменить операцию нельзя.
Для файловой базы достаточно скопировать файл 1Cv8.1CD при закрытой базе. Надёжнее — выгрузить базу
в файл .dt через Конфигуратор: Администрирование → Выгрузить информационную базу. Для клиент-серверной базы копию делают средствами СУБД (бэкап PostgreSQL или MS SQL).
Без свежей резервной копии очистку не начинайте. Если удалите лишнее, вернуть данные можно будет только из бэкапа.
Проверьте и права. Пометить объект на удаление может пользователь с правами на изменение этого объекта. А вот саму операцию удаления помеченных запускает только пользователь с правом администрирования — обычно это роль «Администратор» или «Полные права». Рядовому оператору команда удаления недоступна, и это правильно: массовое удаление — потенциально разрушительное действие, его намеренно оставили за администратором.
Список пользователей и их роли смотрят в разделе Администрирование → Настройки пользователей и прав → Пользователи. Если команды удаления помеченных не видно в интерфейсе — почти всегда дело именно в правах текущего пользователя, а не в отсутствии функции.
Пометка на удаление и удаление помеченных объектов
Как пометить объекты, в том числе массово
Чтобы пометить один объект, откройте его список, встаньте на нужную строку и нажмите клавишу Del либо команду Ещё → Пометить на удаление / Снять пометку. Иконка строки станет перечёркнутой.
Для массовой пометки выделите несколько строк мышью с зажатым Ctrl или Shift (либо Ctrl+A — выделить все) и примените ту же команду. Так помечают целые пачки документов за ненужный период.
Если нужно отобрать документы по дате или организации — сначала настройте отбор в списке (команда «Настроить список» или быстрый отбор над таблицей), затем выделяйте и помечайте уже отфильтрованные строки.
Как запустить удаление помеченных
Команда находится в разделе Администрирование → Обслуживание, группа «Корректировка данных» — пункт Удаление помеченных объектов. В типовых конфигурациях на базе Библиотеки стандартных подсистем (1С:Бухгалтерия, 1С:ЗУП, 1С:Управление торговлей) путь одинаковый.
Форма предложит два режима:
- Автоматически удалить все помеченные — платформа сама найдёт все помеченные объекты по базе и удалит те, что можно.
- Выборочно — вы отмечаете галочками, что именно удалять из найденного списка. Удобно, когда помечено много, а стереть нужно только часть.
Нажмите «Удалить». Система проверит ссылки и выполнит удаление. По итогам появится отчёт: что удалено, а что — нет, с указанием причины.
Удаление лучше запускать, когда другие пользователи вышли из базы. В многопользовательском режиме часть объектов может не удалиться из-за блокировок, а при автоматическом режиме процесс идёт заметно дольше. Запуск в монопольном режиме надёжнее.
Ошибка «на объект есть ссылки»: как снять зависимости
Самый частый итог — часть объектов не удалена, потому что на них ссылаются другие. В отчёте удаления помеченных такие объекты выводятся вместе со списком тех, кто их держит. Это не сбой, а защита.
Разберитесь с каждой зависимостью одним из способов:
- Удалить вместе с зависимыми. Пометьте на удаление и те объекты, что ссылаются на проблемный, затем повторите удаление. Пример: не удаляется контрагент — пометьте сначала все его документы.
- Снять ссылку. Если документ нужен, но ссылка лишняя (например, ошибочно выбранный элемент), откройте документ, замените значение на корректное и перепроведите.
- Оставить как есть. Иногда объект просто нельзя удалять — на него опирается актуальный учёт. Тогда снимите с него пометку.
Чтобы заранее понять, кто ссылается на конкретный элемент, в большинстве списков есть команда поиска связанных объектов (в меню Ещё). Но на практике удобнее опираться на отчёт самой операции удаления — он покажет зависимости точнее и для всех объектов разом.
Очистка старых периодов: свёртка базы
Когда цель — убрать не отдельные объекты, а все документы за давно закрытые годы, пометкой каждого документа заниматься бессмысленно. Для этого есть свёртка информационной базы.
Свёртка работает иначе, чем удаление помеченных:
- На выбранную дату формируются документы ввода остатков — чтобы не потерять сальдо по счетам, складам и взаиморасчётам.
- Документы за период до этой даты удаляются.
- Остатки на начало нового периода остаются корректными.
В 1С:Бухгалтерии 3.0 свёртка выполняется специальной обработкой «Свёртка информационной базы» (в ряде релизов — внешней, её берут у поставщика 1С). Процедура серьёзная: она меняет учётные данные, поэтому её запускают на копии, сверяют остатки и только потом переносят результат в рабочую базу.
Порядок безопасной свёртки:
- Снимите оборотно-сальдовую ведомость на дату свёртки — это эталон, с которым будете сверяться.
- Выполните свёртку на копии базы.
- Сформируйте ОСВ на ту же дату в свёрнутой копии и сравните с эталоном: остатки по счетам, складам, контрагентам должны совпасть до копейки.
- Проверьте взаиморасчёты и количественный учёт — именно там чаще всего всплывают расхождения.
- Только при полном совпадении переносите свёрнутую базу в работу.
Если остатки после свёртки не сошлись — не переносите результат, разбирайтесь с причиной на копии. Рабочая база при этом остаётся нетронутой.
Свёртку назначайте на период, по которому уже сданы все отчёты и закрыты все годы. Трогать текущий или прошлый отчётный год не стоит — потеряете детализацию, которая ещё может понадобиться при проверке.
Особенности в 1С:Бухгалтерии и 1С:ЗУП
Механизм пометки и удаления помеченных одинаков во всех типовых конфигурациях. Отличается то, что в каждой конфигурации опасно удалять.
| Конфигурация | Что рискованно удалять | Почему |
|---|---|---|
| 1С:Бухгалтерия | Документы, формирующие проводки и движения по счетам | Поедут остатки, баланс и отчётность |
| 1С:Бухгалтерия | Контрагентов и договоры с историей расчётов | Нарушатся взаиморасчёты по счёту 60/62/76 |
| 1С:ЗУП | Документы начислений, больничные, отпуска за расчётный период | Исказятся среднемесячный заработок и отчётность по взносам |
| 1С:ЗУП | Сотрудников с историей начислений и кадровыми документами | Данные для СФР и справок о доходах станут неполными |
В 1С:ЗУП будьте особенно аккуратны: расчёт среднего заработка опирается на данные прошлых периодов. Удалив старые начисления, вы можете получить неверные отпускные и больничные уже в текущих документах. Поэтому в зарплатной базе чаще применяют свёртку с сохранением данных для расчёта среднего, а не прямое удаление.
Общее правило для обеих конфигураций: удаляйте только то, что заведомо ошибочно (дубли, тестовые записи, черновики) или относится к полностью закрытым периодам.
Автоматизация: регулярное удаление помеченных
Если в базе постоянно появляются помеченные объекты (отменённые заказы, импортированные дубли), запускать очистку вручную неудобно. Удаление помеченных можно поставить на расписание.
В форме Удаление помеченных объектов есть настройка автоматического режима по расписанию — она создаёт регламентное задание, которое периодически чистит помеченные объекты в фоне. Расписание задаёте там же: например, раз в неделю ночью, когда пользователей в базе нет.
Для клиент-серверной базы регламентное задание выполняется на сервере и не требует открытого сеанса. Для файловой базы оно отработает только при запущенном сеансе с соответствующими правами — для постоянной автоматизации файловый вариант подходит хуже.
Автоматическое удаление удобно, но за ним нужно присматривать: включайте его только после того, как вручную убедились, что в базу не попадают ошибочно помеченные нужные объекты.
Поиск и удаление дублей — отдельный инструмент в той же группе «Корректировка данных». Он находит задвоенные элементы справочников, объединяет их и заменяет ссылки, после чего лишние можно удалить штатно. Это помогает очистить структуру справочников без ручного перебора: вместо того чтобы вручную искать повторы одного контрагента, вы запускаете поиск по реквизиту (ИНН, наименованию), а программа предлагает объединить найденные дубли в один элемент.
Почему размер базы не уменьшился после очистки
Частая неожиданность: помеченные объекты удалены, а файл базы остался прежнего размера. Это нормально. Удаление помеченных освобождает записи логически, но физический файл 1Cv8.1CD сам по себе не сжимается — место внутри него помечается как свободное и используется под новые данные.
Чтобы реально уменьшить файловую базу
, в Конфигураторе запускают Администрирование → Тестирование и исправление информационной базы. Включите реструктуризацию и сжатие таблиц — платформа перепишет таблицы и вернёт освободившееся место файловой системе.
Для клиент-серверной базы размер контролируется на стороне СУБД: обслуживание и перестроение индексов, сжатие базы средствами PostgreSQL или MS SQL. Делает это администратор сервера, а не пользователь 1С.
Тестирование и исправление запускают в монопольном режиме: во время операции база недоступна, активные сеансы оборвутся. Планируйте её на нерабочее время и только после резервной копии.