Очистка базы 1С от помеченных объектов: обработка, расписание, командная строка
Содержание
Чтобы окончательно удалить помеченный на удаление объект в 1С 8.3, запустите обработку Удаление помеченных объектов. В 1С:Бухгалтерии 3.0 она лежит в Администрирование → Обслуживание → Корректировка данных, в любой конфигурации её можно открыть через Все функции → Обработки. Обработка проверит ссылки и физически сотрёт из базы всё, на что никто не ссылается.
Типичная ситуация: бухгалтер в конце квартала нажимает Del на десятке ошибочных поступлений и черновиках контрагентов, а через месяц они всё ещё видны в списках, только с перечёркнутым значком. Так и задумано. Клавиша Del ставит только пометку, а удалением файла, документа или элемента справочника из базы занимается отдельная процедура.
Как работает пометка на удаление и почему объект остаётся в базе
В 1С 8.3 удаление идёт в два этапа:
- 🏷️ Пометка. Пользователь нажимает
Delили команду пометки в менюЕщё. У объекта включается признак «Пометка удаления», в списке он отображается перечёркнутым. Если документ был проведён, при пометке его проведение отменяется и движения по регистрам исчезают. - 🗑️ Физическое удаление. Администратор запускает обработку. Она собирает все помеченные объекты, ищет, где каждый из них используется, и удаляет только те, на которые нет ссылок из живых данных.
Зачем такая схема? Ссылочная целостность. Если сразу стереть контрагента, в счетах, актах и проводках вместо него останется «битая ссылка» вида <Объект не найден> (123:a1b2...). Двухэтапное удаление этого не допускает: пока на контрагента ссылается хотя бы один непомеченный документ, контрагент остаётся в базе.
Что ещё полезно знать про пометку:
- ↩️ Пометку можно снять той же клавишей
Del. До запуска обработки ничего не потеряно. - 📎 Присоединённые файлы (сканы, PDF, вложения к документам) в типовых конфигурациях хранятся как элементы отдельного справочника файлов. Помеченный файл удаляется той же обработкой, что и документы.
- 🔒 Документ в закрытом периоде пометить не получится, если в базе установлена дата запрета изменения данных. Сначала её сдвигают, потом ставят пометку.
- 🚫 Прямое удаление (
Shift+Del) без проверки ссылок обычным пользователям в типовых ролях недоступно. Это правильно, и включать его не стоит.
Удаление помеченных объектов в 1С через раздел «Администрирование»
Основной способ для всех типовых конфигураций на БСП. Нужна роль «Полные права» или «Администратор системы».
Где найти обработку
| Конфигурация | Путь к обработке |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов |
| ЗУП 3.1 | Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов |
| Управление торговлей 11 | НСИ и администрирование → Администрирование → Обслуживание → Удаление помеченных объектов |
| Любая конфигурация | Все функции → Обработки → Удаление помеченных объектов |
Если в разделе «Обслуживание» группа свёрнута, разверните её щелчком по заголовку. Команды раздела видны только пользователю с административными правами.
Пошагово
Перед первым удалением сделайте резервную копию базы . Удаление необратимо: в 1С нет корзины, и вернуть стёртый документ можно только из копии.
- Попросите коллег выйти из программы или выберите вечер, когда базой никто не пользуется. Обработка в современных релизах работает без монопольного режима, но пока пользователи вносят данные, они создают новые ссылки на помеченные объекты, и часть из них не удалится.
- Откройте обработку по пути из таблицы.
- Выберите режим:
- Автоматически — удалить всё помеченное, что можно удалить;
- Выборочно — программа покажет дерево помеченных объектов по видам (справочники, документы), и вы снимете флажки с того, что трогать пока не нужно.
- Нажмите
Удалить. Обработка запускается фоновым заданием, ход видно в той же форме. В базе на несколько гигабайт с тысячами помеченных объектов процесс может идти десятки минут. - Посмотрите итог. Форма покажет, сколько объектов удалено, и выведет список не удалённых с причиной: «места использования» — документы и записи, которые ссылаются на объект.
Выборочный режим удобен в первый раз. Пролистайте дерево: нередко кто-то пометил «на удаление» основной склад или договор, по которому ещё идут оплаты. Снимите с них флажок, а потом разберитесь с пометкой в самом справочнике.
Удаление по расписанию
В форме обработки есть настройка автоматического удаления по расписанию. Та же задача видна в Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания под именем «Удаление помеченных объектов». Включите её и задайте ночное время, например раз в неделю в 02:00.
Для файловой базы регламентные задания выполняются, только пока открыт хотя бы один сеанс программы. В клиент-серверном варианте их запускает сервер 1С сам.
Удаление через «Все функции» и что умеет Конфигуратор
Стандартная обработка платформы
Кроме обработки конфигурации, у платформы есть своя: Все функции → Стандартные → Удаление помеченных объектов. Она нужна для нетиповых или старых самописных конфигураций, где обработки из БСП нет.
Если пункта Все функции в меню нет, включите его: откройте главное меню (кнопка с тремя полосками или шестерёнка в заголовке окна) → Сервис и настройки → Параметры и установите флажок «Отображать команду “Все функции”».
Стандартная обработка проще: показывает список помеченных объектов, выполняет контроль ссылок и удаляет то, что можно. Расписания и фонового режима у неё нет.
Почему в Конфигураторе нет удаления помеченных
Частая путаница: многие ищут удаление в режиме Конфигуратора. Там этой команды нет. Физическое удаление данных — работа режима «1С:Предприятие», поскольку только он умеет проверять ссылки между объектами.
Конфигуратор в этой задаче нужен для двух вещей:
- 💾 Резервная копия перед удалением:
Администрирование → Выгрузить информационную базусохраняет файл.dt. Если удалили лишнее, его можно загрузить обратно. - 🛠️ Тестирование и исправление (
Администрирование → Тестирование и исправление). Этот режим требует монопольного доступа: все пользователи должны выйти. Флажок «Сжатие таблиц информационной базы» уменьшает файл1Cv8.1CDпосле массового удаления — сама обработка удаления место на диске не освобождает.
Массовая очистка внешней обработкой
Внешняя обработка пригодится, когда стандартная падает на огромном объёме, когда нужно удалять помеченное только одного вида или запускать процедуру из планировщика Windows.
В основе две функции платформы:
НайтиПомеченныеНаУдаление()возвращает массив ссылок на все помеченные объекты;УдалитьОбъекты(Массив, Контроль)удаляет объекты из массива. ПриКонтроль = Истинаплатформа проверяет ссылки и не удаляет используемые объекты.
Ниже пример модуля формы внешней обработки. Он удаляет объекты по одному, чтобы один «застрявший» объект с ссылками не мешал удалению остальных, и пишет итог в журнал регистрации.
&НаСервереБезКонтекста
Функция УдалитьПомеченныеНаСервере()
Помеченные = НайтиПомеченныеНаУдаление();
Удалено = 0;
Пропущено = 0;
Для Каждого Ссылка Из Помеченные Цикл
ОдинОбъект = Новый Массив;
ОдинОбъект.Добавить(Ссылка);
Попытка
УдалитьОбъекты(ОдинОбъект, Истина);
Удалено = Удалено + 1;
Исключение
Пропущено = Пропущено + 1;
КонецПопытки;
КонецЦикла;
Итог = СтрШаблон("Найдено: %1, удалено: %2, пропущено (есть ссылки): %3",
Формат(Помеченные.Количество(), "ЧГ=0"),
Формат(Удалено, "ЧГ=0"),
Формат(Пропущено, "ЧГ=0"));
ЗаписьЖурналаРегистрации("Удаление помеченных", УровеньЖурналаРегистрации.Информация, , , Итог);
Возврат Итог;
КонецФункции
&НаКлиенте
Процедура УдалитьПомеченные(Команда)
Сообщить(УдалитьПомеченныеНаСервере());
КонецПроцедуры
Объект, на который ссылается другой помеченный объект, при таком проходе может быть пропущен. Запустите обработку второй раз: после удаления «ссылающихся» объектов освободятся и «зависимые».
Поштучное удаление медленнее пакетного. На базе со 100 000 помеченных объектов оно займёт часы. Запускайте ночью и сначала проверьте обработку на копии базы.
Пользователю, который запускает внешнюю обработку
, нужны полные права. При открытии файла .epf программа покажет предупреждение защиты от опасных действий — это нормально для внешних обработок, читайте его и подтверждайте только для своих файлов.
Удаление помеченных объектов из командной строки
Отдельного ключа «удалить помеченные» у 1cv8.exe нет. Схема такая: платформа запускается в режиме «1С:Предприятие» и сразу открывает внешнюю обработку через параметр /Execute, а обработка при открытии делает удаление и закрывает программу.
Доработайте пример выше: в обработчике ПриОткрытии формы вызовите серверную функцию, а затем ЗавершитьРаботуСистемы(Ложь).
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Итог = УдалитьПомеченныеНаСервере();
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
Пример .bat для файловой базы:
@echo off
set V8="C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe"
%V8% ENTERPRISE /F"D:\Bases\Buh" /N"Администратор" /P"пароль" ^
/Execute"D:\Scripts\DeleteMarked.epf" /DisableStartupDialogs /DisableStartupMessages ^
/Out"D:\Scripts\delete_log.txt"
Для клиент-серверной базы замените /F"путь" на /S"сервер\имя_базы". Номер версии в пути подставьте свой — он совпадает с папкой платформы в C:\Program Files\1cv8.
Запланируйте файл в Планировщике заданий Windows на ночь после резервного копирования.
Пароль в .bat лежит открытым текстом. Заведите для регламента отдельного пользователя 1С, а доступ к папке со скриптом ограничьте правами Windows.
Сравнение способов
| Способ | Когда подходит | Ограничения |
|---|---|---|
| Обработка в «Администрировании» | Обычная очистка в типовой конфигурации | Нужны административные права |
| Удаление по расписанию | Постоянный порядок без участия человека | В файловой базе нужен открытый сеанс |
| «Все функции → Стандартные» | Нетиповая конфигурация без БСП | Нет расписания и фонового режима |
| Внешняя обработка | Огромный объём, выборочная логика | Нужно уметь писать и проверять код |
Командная строка + /Execute | Автоматизация через планировщик Windows | Пароль в скрипте, требует настройки |
Почему помеченный объект не удаляется и что делать
После прогона в списке «не удалённых» почти всегда кто-то остаётся. Разберите причину по симптому.
Отдельный случай — договор или контрагент, на который ссылаются регистры сведений. Например, ставки и настройки, записанные в регистр. Такие записи тоже считаются местом использования. Удалите или исправьте запись в регистре, и объект удалится при следующем прогоне.
Как держать базу чистой без авралов
Помеченные объекты не мешают работе сразу, но со временем засоряют списки, выбор в полях ввода и отчёты по справочникам. Порядок, который работает в небольших и средних базах:
- 📅 Еженедельно — удаление по расписанию ночью, после резервной копии.
- 📆 Раз в квартал — выборочный прогон вручную: посмотреть, что осталось не удалённым, и разобрать места использования.
- 🧹 Раз в год или после массовой чистки — тестирование и исправление со сжатием таблиц для файловой базы.
- 👥 Права — пометку на удаление справочников (контрагенты, номенклатура, договоры) лучше оставить ответственному, а рядовым пользователям не давать прямого удаления.