Как очистить базу 1С УТ 11 от помеченных на удаление объектов

· 8 мин

Содержание

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

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

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

Зачем помечать, а не удалять напрямую

В 1С УТ 11 нельзя стереть документ или элемент справочника одной кнопкой прямо из списка. Сначала ставится пометка на удаление — объект остаётся в базе, но отображается перечёркнутым и с красным крестиком в первой колонке списка.

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

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

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

Как пометить объекты на удаление по одному и группой

Поставить пометку можно из любого списка — документов, номенклатуры, контрагентов, цен.

Один объект. Встаньте на строку в списке и нажмите клавишу Delete, либо вызовите контекстное меню правой кнопкой и выберите команду пометки на удаление. Повторная команда снимает пометку.

Группа объектов. Выделите несколько строк мышью с зажатым Ctrl (вразнобой) или Shift (диапазон), затем примените ту же команду пометки. Пометка проставится сразу на всё выделение.

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

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

Запуск обработки удаления помеченных объектов

Основной путь в интерфейсе «Такси»:

  1. Откройте раздел НСИ и администрирование.
  2. Перейдите в группу команд Администрирование → Обслуживание.
  3. Запустите Удаление помеченных объектов.

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

При старте обработка предлагает выбрать режим.

РежимЧто делаетКогда применять
Автоматическое удалениеПытается удалить все помеченные объекты сразуПлановая регулярная чистка
Выборочное удалениеПоказывает список помеченных, вы отмечаете, что удалятьРазовая чистка, когда нужен контроль

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

Перед удалением в рабочей базе
Выполнено: 0 / 4

Настройка состава удаляемых объектов

Выборочный режим — это и есть «настройка состава». После поиска обработка покажет все помеченные объекты, сгруппированные по видам (документы, элементы справочников, наборы записей).

Флажками вы управляете тем, что пойдёт на удаление:

  • 📌 снимите флажок с группы или отдельной строки, чтобы объект пока остался в базе;
  • 📌 оставьте флажки только на тех видах, которые чистите сейчас (например, старые заказы, а контрагентов не трогать);
  • 📌 воспользуйтесь отбором или поиском по форме списка, если помеченных объектов много и нужно найти конкретные.

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

После того как состав определён, нажмите кнопку удаления. Дальше начинается контроль ссылок.

Контроль ссылочной целостности и процесс удаления

Удаление идёт в два этапа, и второй — самый важный.

Этап 1. Поиск помеченных объектов. Обработка собирает всё, что помечено (или только то, что вы отметили флажками в выборочном режиме).

Этап 2. Контроль ссылок. Для каждого объекта программа ищет, кто на него ссылается. Если ссылок от не удаляемых объектов нет — объект удаляется. Если есть — он остаётся, а в итоговом окне попадает в список не удалённых с перечнем ссылающихся объектов.

По ходу удаления отображается прогресс. В конце обработка показывает две группы: что удалено и что удалить не удалось со списком причин.

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

Чаще всего ссылку на помеченный объект держат:

  • 📎 проведённые документы и их движения по регистрам — пока документ проведён, ссылка живёт;
  • 📎 записи регистров сведений (цены, соответствия, настройки);
  • 📎 подчинённые элементы справочников (например, контактная информация, привязанная к контрагенту);
  • 📎 другие справочники, где объект указан как значение реквизита.

Запускайте удаление, когда другие пользователи вышли из базы. Активные сеансы могут и заблокировать удаление отдельных объектов, и исказить контроль ссылок, если кто-то в этот момент создаёт документы. Не завершайте чужие сеансы на ходу — просто выберите подходящее время, например нерабочие часы.

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

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

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

Разберите по симптому, что делать дальше.

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

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

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

Оптимизация базы после удаления помеченных объектов

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

Файловая база (1Cv8.1CD). Освободить место помогает реструктуризация. Способы:

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

Выгрузка и загрузка .dt. Для файловой базы самый простой способ пересобрать файл компактно — выгрузить базу в файл .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) и тут же загрузить обратно в чистую базу. Загрузка пересоздаёт все таблицы заново, без «дыр» от удалённых объектов, и итоговый файл обычно заметно меньше. Делайте это на копии и когда никто не работает.

Клиент-серверная база (СУБД). Физический объём освобождается средствами самой СУБД: переиндексация и сжатие таблиц. Это задача администратора сервера баз данных, а не 1С — в самой УТ 11 кнопки «сжать базу» нет. Удаление помеченных объектов лишь освобождает строки таблиц; вернёт ли СУБД это место файлу, зависит от её настроек обслуживания.

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

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

Можно ли восстановить объект после удаления обработкой?
Нет. После того как обработка Удаление помеченных объектов стёрла объект, внутри базы его не вернуть. Единственный путь — восстановление из резервной копии, сделанной до удаления.
Чем пометка на удаление отличается от удаления?
Пометка только помечает объект крестиком, он остаётся в базе и обратим. Удаление физически стирает объект и необратимо. Между ними стоит контроль ссылочной целостности.
Почему после удаления файл базы не стал меньше?
Удаление освобождает место внутри базы, но не сжимает файл автоматически. Для файловой базы нужна реструктуризация (Тестирование и исправление или chdbfl.exe), для серверной — сжатие на стороне СУБД.
Обязательно ли выгонять пользователей?
Жёсткого запрета нет, но активные сеансы мешают: часть объектов не удалится из-за блокировок, а контроль ссылок может оказаться неточным. Надёжнее удалять, когда в базе никто не работает.
Как удалить дубль справочника, на который ссылаются документы?
Сначала замените дубль на правильный элемент стандартной обработкой Поиск и замена значений, затем пометьте опустевший дубль на удаление и запустите обработку.
Можно ли удалять помеченные объекты по расписанию?
В типовых конфигурациях на базе стандартных подсистем автоматическое удаление можно вынести в регламентное задание — оно чистит базу в фоне. Настройки живут в разделе НСИ и администрирование → Администрирование. Для разовой чистки с контролем результата интерактивный запуск нагляднее.