Как очистить базу 1С УТ 11 от помеченных на удаление объектов
Содержание
Помеченные на удаление объекты в 1С:Управление торговлей 11 убирает из базы встроенная обработка Удаление помеченных объектов. Путь к ней: НСИ и администрирование → Администрирование → Обслуживание → Удаление помеченных объектов. Пометка и само удаление — это два разных действия: сначала объект помечают красным крестиком, и только потом обработка физически стирает его из базы.
Разрыв между пометкой и удалением сделан не случайно. Пока объект просто помечен, на него ещё могут ссылаться другие документы и записи. Удалить его без проверки — значит получить «висячие» ссылки и битые отчёты. Поэтому перед стиранием программа проверяет, не нужен ли объект кому-то ещё.
Ниже — как пометить объекты по одному и группой, как запустить обработку в автоматическом и выборочном режиме, что делать, когда объект отказывается удаляться, и как вернуть базе объём после чистки.
Зачем помечать, а не удалять напрямую
В 1С УТ 11 нельзя стереть документ или элемент справочника одной кнопкой прямо из списка. Сначала ставится пометка на удаление — объект остаётся в базе, но отображается перечёркнутым и с красным крестиком в первой колонке списка.
Пометка обратима. Пока обработка удаления не отработала, крестик можно снять той же командой, и объект вернётся в строй. Это страховка от случайного нажатия.
Фактическое удаление делает только обработка Удаление помеченных объектов. Она проверяет ссылочную целостность: если на помеченный объект ссылается другой, не помеченный объект, удалить его нельзя — иначе ссылка указывала бы в пустоту.
Пометка не освобождает место на диске и не ускоряет базу сама по себе. Помеченный документ продолжает занимать место и попадать в некоторые служебные выборки, пока его не удалит обработка.
Как пометить объекты на удаление по одному и группой
Поставить пометку можно из любого списка — документов, номенклатуры, контрагентов, цен.
Один объект. Встаньте на строку в списке и нажмите клавишу Delete, либо вызовите контекстное меню правой кнопкой и выберите команду пометки на удаление. Повторная команда снимает пометку.
Группа объектов. Выделите несколько строк мышью с зажатым Ctrl (вразнобой) или Shift (диапазон), затем примените ту же команду пометки. Пометка проставится сразу на всё выделение.
Снятие пометки работает так же: выделяете перечёркнутые строки и повторяете команду. Пометка на удаление проведённого документа сама по себе не отменяет его движения по регистрам — распроведите документ отдельно, если движения больше не нужны.
Если вы работаете в общей базе, не помечайте чужие документы, не согласовав это. Снять пометку легко, а вот восстановить уже удалённый обработкой объект — только из резервной копии.
Запуск обработки удаления помеченных объектов
Основной путь в интерфейсе «Такси»:
- Откройте раздел
НСИ и администрирование. - Перейдите в группу команд
Администрирование → Обслуживание. - Запустите
Удаление помеченных объектов.
Если команды не видно в меню, обработка доступна через Главное меню (значок слева вверху) → Все функции → Стандартные → Удаление помеченных объектов. Пункт Все функции включается в Главное меню → Сервис → Параметры → Отображать команду «Все функции».
При старте обработка предлагает выбрать режим.
| Режим | Что делает | Когда применять |
|---|---|---|
| Автоматическое удаление | Пытается удалить все помеченные объекты сразу | Плановая регулярная чистка |
| Выборочное удаление | Показывает список помеченных, вы отмечаете, что удалять | Разовая чистка, когда нужен контроль |
Перед запуском в рабочей базе есть смысл пройтись по короткому списку подготовки — он не повторяет шаги самой обработки, а защищает данные.
Настройка состава удаляемых объектов
Выборочный режим — это и есть «настройка состава». После поиска обработка покажет все помеченные объекты, сгруппированные по видам (документы, элементы справочников, наборы записей).
Флажками вы управляете тем, что пойдёт на удаление:
- 📌 снимите флажок с группы или отдельной строки, чтобы объект пока остался в базе;
- 📌 оставьте флажки только на тех видах, которые чистите сейчас (например, старые заказы, а контрагентов не трогать);
- 📌 воспользуйтесь отбором или поиском по форме списка, если помеченных объектов много и нужно найти конкретные.
Такой подход удобен, когда база большая и вы не хотите за один проход удалять всё подряд. Отметили часть — удалили — проверили результат — перешли к следующей порции.
После того как состав определён, нажмите кнопку удаления. Дальше начинается контроль ссылок.
Контроль ссылочной целостности и процесс удаления
Удаление идёт в два этапа, и второй — самый важный.
Этап 1. Поиск помеченных объектов. Обработка собирает всё, что помечено (или только то, что вы отметили флажками в выборочном режиме).
Этап 2. Контроль ссылок. Для каждого объекта программа ищет, кто на него ссылается. Если ссылок от не удаляемых объектов нет — объект удаляется. Если есть — он остаётся, а в итоговом окне попадает в список не удалённых с перечнем ссылающихся объектов.
По ходу удаления отображается прогресс. В конце обработка показывает две группы: что удалено и что удалить не удалось со списком причин.
В окне результатов список не удалённых объектов интерактивен. Двойным щелчком по ссылающемуся объекту вы открываете его карточку и прямо оттуда решаете, что с ним делать: распровести, пометить на удаление, изменить реквизит. После правок перезапустите удаление, не закрывая обработку, — она пересчитает ссылки заново.
Чаще всего ссылку на помеченный объект держат:
- 📎 проведённые документы и их движения по регистрам — пока документ проведён, ссылка живёт;
- 📎 записи регистров сведений (цены, соответствия, настройки);
- 📎 подчинённые элементы справочников (например, контактная информация, привязанная к контрагенту);
- 📎 другие справочники, где объект указан как значение реквизита.
Запускайте удаление, когда другие пользователи вышли из базы. Активные сеансы могут и заблокировать удаление отдельных объектов, и исказить контроль ссылок, если кто-то в этот момент создаёт документы. Не завершайте чужие сеансы на ходу — просто выберите подходящее время, например нерабочие часы.
Для файловой базы долгое удаление большого объёма лучше дробить на порции через выборочный режим: так ниже риск прерывания и проще понять, на каком объекте возникла заминка.
Почему объект не удаляется и что делать
Главная причина отказа всегда одна: на помеченный объект ссылается другой объект, который удалять не собираются. Обработка показывает такие объекты в списке не удалённых и перечисляет, кто именно держит ссылку.
Разберите по симптому, что делать дальше.
Отдельная ситуация — группы (папки) в справочниках. Группу нельзя удалить, пока внутри неё остаются не помеченные элементы. Сначала пометьте или перенесите вложенные элементы, потом удаляйте саму папку. Порядок удаления обработка выстраивает сама: сперва зависимые объекты, затем те, на которые они ссылались.
Отдельный приём для массовых ссылок — поиск и замена ссылок. В типовой УТ 11 есть стандартная обработка Поиск и замена значений (там же, в Все функции → Стандартные): она массово заменяет один элемент на другой во всех документах. Это помогает, когда нужно удалить дубль справочника, на который ссылаются сотни документов: заменяете дубль на правильный элемент, затем спокойно удаляете пустой дубль.
Оптимизация базы после удаления помеченных объектов
Само удаление помеченных объектов не всегда уменьшает физический размер базы — освободившееся место внутри файла или таблиц остаётся зарезервированным. Чтобы вернуть объём, нужен отдельный шаг.
Файловая база (1Cv8.1CD). Освободить место помогает реструктуризация. Способы:
- в Конфигураторе:
Администрирование → Тестирование и исправление информационной базы, с включённой реструктуризацией таблиц; - утилитой
chdbfl.exeиз каталога установки платформы — она проверяет и сжимает файловую базу (запускать на копии базы, когда все вышли).
Выгрузка и загрузка .dt. Для файловой базы самый простой способ пересобрать файл компактно — выгрузить базу в файл .dt (Конфигуратор → Администрирование → Выгрузить информационную базу) и тут же загрузить обратно в чистую базу. Загрузка пересоздаёт все таблицы заново, без «дыр» от удалённых объектов, и итоговый файл обычно заметно меньше. Делайте это на копии и когда никто не работает.
Клиент-серверная база (СУБД). Физический объём освобождается средствами самой СУБД: переиндексация и сжатие таблиц. Это задача администратора сервера баз данных, а не 1С — в самой УТ 11 кнопки «сжать базу» нет. Удаление помеченных объектов лишь освобождает строки таблиц; вернёт ли СУБД это место файлу, зависит от её настроек обслуживания.
Планово помечайте и удаляйте устаревшие объекты (черновики, отменённые заказы, тестовые документы) раз в период. Регулярная чистка небольшими порциями проходит быстрее и реже упирается в ссылки, чем разовая «уборка» за несколько лет.
Частые вопросы
Можно ли восстановить объект после удаления обработкой?
Удаление помеченных объектов стёрла объект, внутри базы его не вернуть. Единственный путь — восстановление из резервной копии, сделанной до удаления.Чем пометка на удаление отличается от удаления?
Почему после удаления файл базы не стал меньше?
Тестирование и исправление или chdbfl.exe), для серверной — сжатие на стороне СУБД.Обязательно ли выгонять пользователей?
Как удалить дубль справочника, на который ссылаются документы?
Поиск и замена значений, затем пометьте опустевший дубль на удаление и запустите обработку.Можно ли удалять помеченные объекты по расписанию?
НСИ и администрирование → Администрирование. Для разовой чистки с контролем результата интерактивный запуск нагляднее.