Удаление помеченных на удаление объектов в базе 1С
Содержание
Помеченный на удаление объект физически остаётся в базе — его убирает отдельная операция Администрирование → Обслуживание → Удаление помеченных объектов. Пометка и удаление в 1С 8.3 — это два разных действия, и между ними программа проверяет, не ссылаются ли на объект другие документы.
Есть два способа довести удаление до конца: штатная обработка в режиме «1С:Предприятие» (подходит в 95% случаев) и удаление через Конфигуратор (нужно, когда в базе никого нет и требуется монопольный режим). Ниже — как это делается в типовых конфигурациях, что происходит со ссылками и можно ли вернуть данные, если удалили лишнее.
Зачем пометка, а не удаление сразу
Если бы 1С удаляла объект в момент нажатия кнопки, она рисковала бы оборвать ссылки. На справочник «Контрагенты» ссылаются договоры, счета, платёжки; на номенклатуру — все накладные с ней. Удалить такой элемент «насквозь» — значит оставить в документах битые ссылки вида <Объект не найден>.
Поэтому удаление разбито на два шага:
- 🏷️ Пометка на удаление — вы помечаете объект. Он перечёркивается в списке, но остаётся в базе и продолжает работать в старых документах.
- 🗑️ Контролируемое удаление — отдельная операция проходит по базе, ищет ссылки на помеченные объекты и удаляет только те, на которые никто не ссылается.
Такой порядок защищает целостность данных. Пока объект просто помечен, ничего страшного не происходит — вы в любой момент можете снять пометку и вернуть его в работу.
Откуда в базе берутся помеченные объекты:
- 👥 дубли контрагентов и номенклатуры — один и тот же поставщик заведён дважды, лишнюю карточку помечают;
- 📄 ошибочно введённые или задвоенные документы — поступления, реализации, платёжки;
- 🧪 тестовые данные, оставшиеся после обучения сотрудников или переноса из старой базы;
- 🗂️ неиспользуемые элементы справочников — старые склады, закрытые договоры, виды номенклатуры.
Накапливаясь, такие объекты раздувают базу и мешают в списках. Чистка помеченных — это и есть регулярное наведение порядка.
Пометить или снять пометку можно в списке: выделите строки, нажмите Ctrl + Del или откройте меню Ещё в командной панели и выберите пункт о пометке на удаление. Перечёркнутый значок слева от строки — это и есть пометка.
Удаление через режим «1С:Предприятие»
Это основной способ для бухгалтера и администратора базы. Работает в типовых конфигурациях на БСП (Бухгалтерия, ЗУП, Управление торговлей и др.).
- Откройте раздел
Администрирование. В Управлении торговлей 11 он называетсяНСИ и администрирование. - Перейдите в группу
Обслуживаниеи выберитеУдаление помеченных объектов. - Выберите режим:
Автоматическое удаление всех помеченных на удаление— программа сама обойдёт всю базу; либоВыборочное удаление— вы отметите только нужные объекты. - Нажмите
Удалить. 1С найдёт ссылки и удалит объекты, на которые ничего не ссылается. - По окончании откроется отчёт: что удалено и что удалить не удалось — с причинами.
Операция может запросить монопольный (исключительный) доступ, чтобы в процессе никто не менял данные. Перед массовым удалением в рабочей базе сделайте резервную копию и запускайте процедуру, когда пользователи не работают. Обрывать чужие сеансы без предупреждения нельзя — люди потеряют несохранённые данные.
Когда выбирать какой режим:
- Автоматический — для плановой чистки, когда вы доверяете пометкам и хотите разом убрать всё лишнее.
- Выборочный — когда помеченного много, а удалить нужно только часть. В списке объектов снимаете галочки с тех, что трогать пока не хотите, и удаляете остальное. Удобно, если кто-то пометил элементы «на будущее», а вы не уверены в каждом.
Если объект удалить нельзя, 1С не станет ломать базу: она оставит его помеченным и покажет в отчёте список документов, которые на него ссылаются. Дальше решение за вами — об этом ниже.
Как часто запускать чистку, зависит от размера компании. В небольшой базе хватит раза в месяц; там, где ежедневно вводят сотни документов и регулярно правят справочники, помеченное стоит убирать раз в неделю. Главный признак, что пора, — списки справочников пестрят перечёркнутыми строками и в них трудно найти рабочие элементы.
Удаление через Конфигуратор
Второй способ — встроенная процедура платформы. Её применяют, когда штатная обработка недоступна (например, конфигурация нетиповая) или когда нужно гарантированно удалить всё при закрытой базе.
- Запустите базу в режиме
Конфигуратор. - Откройте меню
Администрирование → Удаление помеченных объектов. - Платформа предложит установить монопольный режим — Конфигуратору для этой операции нужен исключительный доступ, все сеансы 1С:Предприятия должны быть закрыты.
- Снимите или оставьте галочки у объектов и нажмите
Удалить.
Монопольный режим означает, что пока идёт удаление, другие пользователи войти в базу не смогут. Планируйте такую чистку на обед или на вечер.
Перед установкой монопольного режима убедитесь, что в базе действительно никого нет: в режиме «1С:Предприятие» это видно в списке активных пользователей, а в клиент-серверном варианте — в консоли администрирования кластера. Если платформа пишет, что установить монопольный режим не удаётся, значит, остался чей-то сеанс или не завершилось фоновое задание — дождитесь их закрытия и повторите.
Разница между способами короткая:
| Способ | Когда применять | Монопольный режим |
|---|---|---|
| Режим «1С:Предприятие» | Повседневная чистка, типовая база | Желателен, но операция может работать и в сеансе |
| Конфигуратор | Нетиповая база, разовая глубокая чистка | Обязателен — база закрыта для всех |
В обоих случаях логика одна: сначала поиск ссылок, потом удаление «чистых» объектов. Результат идентичен, отличается только точка входа.
Особенности в разных конфигурациях
Сама процедура одинакова на платформе 8.3, различается только путь в меню. Привожу его для трёх самых частых конфигураций.
| Конфигурация | Путь к обработке |
|---|---|
| Бухгалтерия 3.0 | Администрирование → Обслуживание → Удаление помеченных объектов |
| ЗУП 3.1 | Администрирование → Обслуживание → Удаление помеченных объектов |
| Управление торговлей 11 | НСИ и администрирование → Администрирование → Обслуживание |
Если в вашей конфигурации названия разделов отличаются, ориентируйтесь на слова «Обслуживание» и «Удаление помеченных»: группа обслуживания есть во всех типовых решениях на БСП. В файловой базе операция обычно проходит быстрее, в клиент-серверной на большом объёме данных — дольше, потому что поиск ссылок идёт по всем регистрам.
Что делать, если объект не удаляется
Самая частая ситуация: вы пометили элемент, запустили удаление, а в отчёте — «Объект нельзя удалить, так как на него есть ссылки». Это не ошибка, а штатная защита. Варианты действий зависят от того, нужны ли вам документы со ссылкой.
Главное правило: никогда не удаляйте «через силу», обходя контроль ссылок. Если платформа не даёт удалить объект — значит, на него кто-то ссылается, и разрывать эту связь вручную в таблицах базы категорически нельзя.
Как читать отчёт о ссылках. В результатах обработки каждый неудалённый объект разворачивается в список мест, где он используется: конкретные документы, строки табличных частей, записи регистров. Двойной щелчок по строке отчёта открывает сам документ — так вы быстро доходите до источника ссылки, а не гадаете, кто держит элемент.
Дубли лучше не удалять, а объединять. Если объект помечен потому, что это дубль (две карточки одного контрагента), удалять его «в лоб» хлопотно — на обе карточки уже есть документы. Для таких случаев в типовых конфигурациях есть отдельный инструмент Администрирование → Обслуживание → Поиск и удаление дублей. Он находит одинаковые элементы, назначает один главным, переносит на него все ссылки, а дубли помечает на удаление сам. После этого обычная обработка удаления снимет их без единой ссылки.
Как вернуть удалённые по ошибке объекты
Здесь всё зависит от того, на каком этапе вы спохватились.
- ✅ Объект только помечен, но ещё не удалён физически. Самый лёгкий случай. Выделите его в списке, нажмите
Ctrl + Delили через менюЕщёснимите пометку — объект вернётся в работу как ни в чём не бывало. - ❌ Объект уже удалён обработкой. Встроенной «корзины» и отмены в 1С нет. Единственный способ вернуть данные — восстановить резервную копию базы на момент до удаления и перенести оттуда нужный объект.
Поэтому резервная копия перед массовой чисткой — не формальность. Порядок восстановления обычно такой: разворачиваете копию базы в отдельную (тестовую) информационную базу, находите в ней удалённый объект, выгружаете через типовой обмен или вводите заново в рабочей базе. Накатывать старую копию поверх рабочей базы нельзя — потеряете все данные, введённые после даты копии.
Автоматизация: чистка по расписанию
Если помеченных объектов в базе накапливается много, удаление можно не запускать руками каждый раз, а поставить на расписание — тогда база чистится сама, а вы только изредка просматриваете, что осталось со ссылками.
В типовых конфигурациях на БСП для этого есть настройка расписания прямо в форме обработки Удаление помеченных объектов: включаете автоматическое удаление и задаёте периодичность (например, раз в неделю ночью). Дальше регламентное задание само обходит базу и удаляет объекты без ссылок, а те, что удалить нельзя, оставляет и фиксирует в журнале.
Несколько замечаний по автоматической чистке:
- ⏰ Ставьте задание на нерабочее время — ночь или выходные, когда поиск ссылок никому не помешает.
- 📋 Автоудаление снимает только «чистые» объекты. Элементы со ссылками оно не трогает, так что регулярно просматривайте, что скопилось.
- 🔌 В клиент-серверной базе регламентные задания выполняет сервер — следите, чтобы служба была запущена и расписание активно.
Внешние обработки для удаления писать обычно не нужно: встроенного механизма хватает. Если же конфигурация самописная и штатной обработки в ней нет, разработчик может вызвать удаление программно средствами платформы — но это уже задача для специалиста 1С, а не для рядовой чистки базы.