Удаление помеченных объектов в базе 1С: полный разбор

· 9 мин

Содержание

Пометка на удаление сама ничего не стирает. Объект остаётся в базе, занимает место и продолжает участвовать в проверках — он лишь получает признак «помечен на удаление». Чтобы физически удалить в 1С помеченное на удаление, нужна отдельная процедура.

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

Что проверить перед запуском очистки

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

Перед запуском сделайте резервную копию базы . Для файловой базы это выгрузка в .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) или копия каталога с базой. Для клиент-серверной — штатный бэкап средствами СУБД.

Дальше оцените обстановку:

  • 🕐 Время. Чем больше помеченных объектов и чем крупнее база, тем дольше идёт контроль ссылок. На больших базах процедура занимает часы — планируйте её на нерабочее время.
  • 👥 Пользователи. Пока идёт удаление, другим лучше не менять связанные документы. Если выберете режим с монопольным доступом, активные сеансы завершатся принудительно.
  • 📋 Что именно чистим. Иногда объект пометили ошибочно. Перед массовым удалением полезно пробежать список помеченного — вдруг там нужный контрагент или договор.

Если база работает в бою и в ней трудятся люди, не запускайте удаление «на ходу». Договоритесь об окне, предупредите пользователей, сделайте копию — и только потом чистите.

Как пометить объект на удаление и снять пометку

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

Способы пометить:

  1. Встаньте на объект в списке и нажмите клавишу Del.
  2. Либо вызовите контекстное меню правой кнопкой и выберите Пометить на удаление / Снять пометку.
  3. Та же команда есть в карточке самого объекта — в меню Ещё.

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

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

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

Где запускается групповое удаление в разных конфигурациях

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

КонфигурацияПуть к обработке
1С:Бухгалтерия 3.0Администрирование → Обслуживание → Удаление помеченных объектов
1С:ЗУП 3.1Администрирование → Обслуживание → Удаление помеченных объектов
1С:Управление торговлей 11НСИ и администрирование → Администрирование → Обслуживание → Удаление помеченных объектов
ERP, Комплексная автоматизацияНСИ и администрирование → Администрирование → Обслуживание

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

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

Как работает контроль ссылок и почему объект не удаляется

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

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

После запуска обработка показывает два списка:

  • Будут удалены — помеченные объекты, на которые никто не ссылается (или ссылаются только другие помеченные объекты, удаляемые заодно).
  • Не могут быть удалены — те, что держатся за счёт ссылок. Рядом видно, какие именно объекты мешают удалению.

Что делать с мешающими ссылками:

  1. Раскройте проблемный объект — увидите список ссылающихся на него документов и справочников.
  2. Либо пометьте эти объекты на удаление тоже (если они не нужны), либо откройте и уберите/замените ссылку на удаляемый объект.
  3. Повторите поиск — освобождённый объект перейдёт в список «Будут удалены».

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

Диагностика: выберите симптом

Как выполнить удаление: автоматически или выборочно

Обработка предлагает два режима работы — выбор делается в её настройках перед запуском.

Автоматическое удаление всех помеченных объектов. Платформа сама находит всё помеченное, проверяет ссылки и удаляет то, что можно. Подходит для регулярной плановой чистки, когда вы доверяете пометкам.

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

Порядок действий:

  1. Откройте обработку Удаление помеченных объектов.
  2. Выберите режим (автоматический или выборочный) и запустите поиск кнопкой Удалить / Найти.
  3. Дождитесь, пока пройдёт контроль ссылок.
  4. Разберитесь со списком «не могут быть удалены» (см. раздел про ссылки выше).
  5. Подтвердите удаление по объектам из списка «будут удалены».

После подтверждения вернуть объекты из базы нельзя. Если в списке «будут удалены» мелькнуло что-то нужное — остановитесь и разберитесь, прежде чем жать подтверждение.

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

Когда удаление помеченного лучше отложить

Не всё, что помечено, нужно стирать сразу. Несколько случаев, когда стоит притормозить.

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

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

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

Общее правило: помечайте на удаление смело, а вот физическое удаление запускайте обдуманно и по регламенту. Пометка обратима, удаление — нет.

Особенности удаления в клиент-серверной базе

В клиент-серверном варианте (база на сервере 1С и в СУБД — MS SQL, PostgreSQL) обработка запускается точно так же — из режима «1С:Предприятие», через тот же раздел меню. Разница в деталях администрирования.

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

Размер базы не уменьшится сам по себе. Удаление объектов освобождает место внутри таблиц СУБД, но файл базы данных на диске останется прежнего размера. Чтобы реально вернуть место, администратор СУБД выполняет сжатие базы средствами самой СУБД (для MS SQL — операция сжатия файла данных). Поэтому ждать мгновенного эффекта «база весила 20 ГБ, стала 5 ГБ» сразу после чистки не стоит — освобождение места на диске это отдельный шаг на стороне сервера.

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

Блокировки и фоновые задания. На время чистки разумно отключить регламентные задания, чтобы фоновые процессы не конкурировали с удалением за те же объекты. Включите их обратно после завершения.

Что сделать с базой после очистки

Удаление помеченных объектов — хороший повод привести базу в порядок целиком.

Пересчёт итогов регистров. После массового удаления движений итоги регистров накопления и бухгалтерии могут требовать пересчёта. Инструмент — Все функции → Стандартные → Управление итогами. Там же задаётся период, по который рассчитаны итоги.

Тестирование и исправление (файловая база). Для файловой базы выполните Конфигуратор → Администрирование → Тестирование и исправление информационной базы. Реструктуризация таблиц заодно сожмёт файл базы — для файлового варианта это основной способ вернуть место на диске. Операция требует монопольного доступа.

Реиндексация и статистика (клиент-сервер). В клиент-серверной базе после крупной чистки администратор перестраивает индексы и обновляет статистику средствами СУБД — это ускоряет запросы, которые «просели» из-за фрагментации.

Короткий порядок наведения порядка после удаления:

После удаления помеченных объектов
Выполнено: 0 / 6

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

Можно ли восстановить случайно удалённый объект?
Штатными средствами 1С — нет. Физически удалённый объект и его движения возвращаются только из резервной копии, сделанной до удаления. Поэтому копия перед чисткой обязательна.
Почему после удаления база не стала меньше на диске?
Удаление освобождает место внутри таблиц, но файл базы сохраняет прежний размер. В файловом варианте его сжимает тестирование и исправление с реструктуризацией, в клиент-серверном — сжатие средствами СУБД силами администратора сервера.
Нужен ли монопольный режим для удаления?
Для надёжного автоматического удаления его обычно включают, особенно на крупной базе. В файловой базе монопольный доступ требуется и для последующей реструктуризации. Помните: при монопольном режиме активные сеансы пользователей завершаются.
Как часто чистить базу от помеченных объектов?
По регламенту организации. На активно используемой базе разумно делать это планово — например, раз в квартал, в нерабочее время, с предварительной копией. Накапливать помеченные объекты годами смысла нет: они замедляют поиск ссылок при будущих чистках.
Удалятся ли движения документа вместе с ним?
Да. Удаляя документ, платформа убирает и все его движения по регистрам. Отдельно чистить регистры не нужно — но именно поэтому важно убедиться, что документ действительно лишний.