Как окончательно очистить базу 1С от помеченных на удаление документов и элементов
Содержание
Помеченные на удаление объекты в 1С 8.3 удаляют окончательно обработкой «Удаление помеченных объектов». В типовых конфигурациях она открывается через Администрирование → Обслуживание → Удаление помеченных объектов, а в любой базе — через Все функции → Стандартные → Удаление помеченных объектов. Конфигуратор в этой процедуре нужен для подготовки и подстраховки: через него делают копию базы
.dt, проверяют пользователей и права, запускают режим 1С:Предприятие и при необходимости откатывают результат.
Команда «Пометить на удаление» (Delete в списке) ничего не стирает. Документ или элемент справочника получает флажок, документ при этом теряет проведение, а запись остаётся в базе. Физически её убирает только отдельная операция удаления с проверкой ссылок.
Почему 1С сначала ставит пометку, а не удаляет сразу
В базе 1С всё связано ссылками. Контрагент указан в сотнях документов, номенклатура — в остатках и движениях регистров, договор — в платёжках. Если стереть такой объект сразу, в документах останутся «битые» ссылки вида <Объект не найден> (123:a1b2c3...).
Поэтому платформа работает в два этапа:
- ✏️ Пометка. Пользователь отмечает лишнее. Пометку можно снять в любой момент, данные не теряются.
- 🔍 Контроль ссылок. Обработка ищет, где ещё упоминается помеченный объект.
- 🗑️ Удаление. Стираются только объекты, на которые никто не ссылается или ссылаются такие же помеченные объекты.
Такая схема защищает от случайной потери данных. Обратная сторона: если удалением никто не занимается, база годами копит тысячи «перечёркнутых» строк. Они засоряют списки, подбор и поиск.
Право ставить пометку обычно есть у всех пользователей, а право удалять помеченное — только у администратора. Так задумано: бухгалтер не может одним действием уничтожить чужие документы.
Что сделать в конфигураторе перед удалением
Удаление необратимо. Откатить его можно только восстановлением базы из копии, поэтому подготовку не пропускайте.
Шаг 1. Выгрузите копию базы
- Запустите 1С в режиме
Конфигураторпод пользователем с полными правами. - Откройте
Администрирование → Выгрузить информационную базу. - Укажите папку и имя файла, например
buh_2026-10-07_pered_udaleniem.dt. - Дождитесь сообщения о завершении выгрузки.
Выгрузка .dt требует, чтобы в базе не было других пользователей. Для клиент-серверной базы подойдёт и резервная копия средствами СУБД, если её делает администратор сервера.
Без свежей копии удаление помеченных не запускайте: вернуть отдельный стёртый документ штатными средствами нельзя.
Шаг 2. Проверьте, кто сейчас работает
В Конфигураторе откройте Администрирование → Активные пользователи. Если в списке есть сеансы бухгалтеров, договоритесь о времени. Обработка блокирует удаляемые объекты, и объект, который кто-то держит открытым, не удалится.
Шаг 3. Убедитесь в правах
У пользователя, который будет удалять, должна быть роль с правом интерактивного удаления помеченных. В типовых конфигурациях на БСП достаточно профиля «Администратор» или роли «Полные права». Проверить можно в Конфигураторе: Администрирование → Пользователи, вкладка «Прочие» в карточке пользователя.
Шаг 4. Запустите режим 1С:Предприятие
Прямо из Конфигуратора: Сервис → 1С:Предприятие. Откроется база под тем же пользователем. Дальнейшие действия выполняются уже в пользовательском режиме.
Способы удалить помеченные объекты
| Способ | Где запускается | Когда подходит | Риски |
|---|---|---|---|
| Обработка типовой конфигурации | Администрирование → Обслуживание | БП 3.0, ЗУП 3.1, УТ 11 и другие на БСП | Минимальные: есть контроль ссылок и отчёт |
| Стандартная функция платформы | Все функции → Стандартные | Любая конфигурация, включая самописные | Нет удобных фильтров |
| Программный вызов | Внешняя обработка | Регулярная очистка, большие базы | Ошибка в коде удалит лишнее |
Способ 1. Через раздел «Обслуживание»
- Откройте
Администрирование → Обслуживание. - В группе корректировки данных выберите «Удаление помеченных объектов».
- Выберите режим: удалить всё помеченное или отметить объекты вручную.
- Нажмите кнопку удаления и дождитесь окончания.
- Изучите итог. Объекты, которые не удалось стереть, программа покажет списком вместе с местами, где на них есть ссылки.
Пути в типовых конфигурациях:
| Конфигурация | Путь |
|---|---|
| Бухгалтерия предприятия 3.0 | Администрирование → Обслуживание → Удаление помеченных объектов |
| ЗУП 3.1 | Администрирование → Обслуживание → Удаление помеченных объектов |
| Управление торговлей 11 | НСИ и администрирование → Администрирование → Обслуживание |
Способ 2. Через «Все функции»
Этот вариант есть в любой базе на платформе 8.3, даже без БСП.
- Если пункта «Все функции» нет в главном меню, включите его:
Сервис и настройки → Параметры → Отображать команду «Все функции». - Откройте
Все функции → Стандартные → Удаление помеченных объектов. - Платформа соберёт список помеченного. Отметьте нужное и запустите удаление с контролем.
Стандартная функция удобна в доработанных и отраслевых конфигурациях, где раздел «Обслуживание» переделан или отсутствует.
Способ 3. Программно, внешней обработкой
Платформа даёт два метода: НайтиПомеченныеНаУдаление() возвращает массив ссылок, УдалитьОбъекты() удаляет их с проверкой ссылок. Пример процедуры для внешней обработки, выполняемой на сервере:
&НаСервереБезКонтекста
Процедура УдалитьПомеченныеНаСервере()
Помеченные = НайтиПомеченныеНаУдаление();
Если Помеченные.Количество() = 0 Тогда
Сообщить("Помеченных объектов нет");
Возврат;
КонецЕсли;
НеУдалены = Новый Массив;
// Второй параметр Истина включает контроль ссылочной целостности
УдалитьОбъекты(Помеченные, Истина, НеУдалены);
Сообщить(СтрШаблон("Найдено: %1, не удалено: %2",
Формат(Помеченные.Количество(), "ЧГ=0"),
Формат(НеУдалены.Количество(), "ЧГ=0")));
КонецПроцедуры
Параметр Истина оставляйте всегда. С Ложь платформа удалит объекты без проверки, и в документах появятся битые ссылки.
Программное удаление обходит интерфейсные проверки типовой обработки. Сначала прогоните его на копии базы.
Порядок удаления в большой базе
Если помеченных объектов десятки тысяч, один общий проход может идти всю ночь. Разбейте работу на этапы:
- 📄 Документы. Они ссылаются на справочники, но на них самих ссылаются редко. Удаляются быстрее всего.
- 📚 Подчинённые справочники: договоры, банковские счета, контактные лица.
- 🏢 Основные справочники: контрагенты, номенклатура, сотрудники.
- 🔁 Повторный общий проход. Он подберёт то, что раньше держали ссылки из уже удалённых документов.
Между этапами смотрите отчёт о неудалённых объектах. Если строк в нём становится меньше с каждым проходом, вы идёте правильно. Если число не меняется, ищите непомеченный документ, который держит всю цепочку.
Почему объекты не удаляются и что с этим делать
Обработка отработала, а часть строк осталась перечёркнутой — самая частая ситуация. Причина почти всегда в ссылках.
Ещё три промаха, которые приводят к потере данных:
- ❌ Удаление по пометкам, которые никто не проверял. Пометку ставят и случайно. Перед запуском просмотрите список: отбор по пометке удаления есть в любом журнале документов.
- ❌ Удаление без контроля ссылок в программном варианте. Битые ссылки потом приходится чинить через тестирование базы.
- ❌ Копия, которую не проверяли. Файл
.dtнулевого размера или выгрузка с ошибкой обнаруживаются ровно в тот момент, когда нужен откат.
Чем отличается удаление в разных конфигурациях 1С
Механизм в основе один — платформенная проверка ссылок. Отличается оболочка.
В БП 3.0, ЗУП 3.1, УТ 11 форма удаления взята из Библиотеки стандартных подсистем. Она умеет показывать места использования, фильтровать по видам объектов и работать по расписанию.
В самописных и старых отраслевых конфигурациях на 8.3 обычно доступна только стандартная функция платформы. Расписания там нет, его добавляют программист или внешняя обработка.
В ЗУП 3.1 будьте осторожнее с кадровыми документами. Удалённый приказ о приёме или увольнении тянет за собой историю сотрудника. Ошибочно помеченный кадровый документ лучше распомечать, чем потом восстанавливать стаж и расчёты.
Удаление помеченных — это не удаление объектов метаданных. Если нужно убрать из конфигурации справочник или реквизит, это делается в дереве Конфигуратора и требует обновления конфигурации базы данных. С пометками пользователей это никак не связано.
Как настроить автоматическую очистку по расписанию
В конфигурациях на БСП удаление можно поручить регламентному заданию.
- Откройте форму удаления помеченных из раздела
Администрирование → Обслуживание. - Переключите режим на автоматическое удаление по расписанию.
- Нажмите на ссылку расписания и задайте время, например ежедневно в 03:00 или раз в неделю в воскресенье.
- Проверьте, что задание включено:
Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
Регламентные задания в файловой базе выполняются, только пока запущен хотя бы один клиентский сеанс. В клиент-серверной базе их выполняет сервер 1С, если для базы не установлена блокировка регламентных заданий.
Если в базе нет БСП, используйте внешнюю обработку из раздела выше и запуск по планировщику Windows с параметром /Execute:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" ENTERPRISE /S "srv1c\buh" /N "Робот" /P "пароль" /Execute "D:\scripts\udalenie.epf" /DisableStartupMessages
Номер платформы в пути подставьте свой. Процедуру удаления вызывайте из обработчика открытия формы обработки, а в конце закрывайте сеанс.
Автоматическая очистка удаляет то, что пометили пользователи, без участия человека. Включайте её только вместе с ежедневной резервной копией.
Как вернуть данные, если удалили лишнее
Корзины в 1С нет. Удалённый объект штатно не восстанавливается, поэтому все варианты опираются на копию.
Вариант 1. Откатить всю базу
Подходит, если с момента удаления в базе почти не работали.
- Выгоните пользователей и откройте Конфигуратор.
- Сначала выгрузите текущее состояние в отдельный
.dt— на случай, если откат придётся отменить. Администрирование → Загрузить информационную базу, выберите копию до удаления.- Подтвердите замену данных. Всё, что ввели после копии, придётся внести заново.
Вариант 2. Перенести отдельные объекты из копии
Подходит, когда после удаления успели поработать несколько дней.
- Создайте новую пустую базу и загрузите в неё копию
.dt. - Найдите там нужные документы или элементы справочников.
- Перенесите их в рабочую базу универсальной обработкой выгрузки и загрузки данных в XML. Ссылки при переносе сохраняются, поэтому документы встанут на прежние места.
- Перепроведите перенесённые документы и проверьте остатки.
Как узнать, кто и что удалил
Откройте журнал регистрации: в Конфигураторе Администрирование → Журнал регистрации или в пользовательском режиме через раздел администрирования. Установите отбор по событию «Данные. Удаление». В журнале видно пользователя, время и представление удалённого объекта. Так проще понять, что именно восстанавливать.
Частые вопросы
Уменьшится ли файл базы после удаления помеченных?
.dt.Попадают ли помеченные документы в отчёты?
Как снять пометку с нескольких объектов сразу?
Delete: команда работает как переключатель. Проведение документов после этого нужно восстановить вручную.Можно ли удалить помеченное в базе, где работают люди?
Что делать с битыми ссылками после неудачного удаления?
Администрирование → Тестирование и исправление с проверкой ссылочной целостности и выберите действие для ссылок на несуществующие объекты. Перед этим тоже сделайте копию.