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

· 9 мин

Содержание

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

Команда «Пометить на удаление» (Delete в списке) ничего не стирает. Документ или элемент справочника получает флажок, документ при этом теряет проведение, а запись остаётся в базе. Физически её убирает только отдельная операция удаления с проверкой ссылок.

Почему 1С сначала ставит пометку, а не удаляет сразу

В базе 1С всё связано ссылками. Контрагент указан в сотнях документов, номенклатура — в остатках и движениях регистров, договор — в платёжках. Если стереть такой объект сразу, в документах останутся «битые» ссылки вида <Объект не найден> (123:a1b2c3...).

Поэтому платформа работает в два этапа:

  • ✏️ Пометка. Пользователь отмечает лишнее. Пометку можно снять в любой момент, данные не теряются.
  • 🔍 Контроль ссылок. Обработка ищет, где ещё упоминается помеченный объект.
  • 🗑️ Удаление. Стираются только объекты, на которые никто не ссылается или ссылаются такие же помеченные объекты.

Такая схема защищает от случайной потери данных. Обратная сторона: если удалением никто не занимается, база годами копит тысячи «перечёркнутых» строк. Они засоряют списки, подбор и поиск.

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

Что сделать в конфигураторе перед удалением

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

Шаг 1. Выгрузите копию базы

  1. Запустите 1С в режиме Конфигуратор под пользователем с полными правами.
  2. Откройте Администрирование → Выгрузить информационную базу.
  3. Укажите папку и имя файла, например buh_2026-10-07_pered_udaleniem.dt.
  4. Дождитесь сообщения о завершении выгрузки.

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

Без свежей копии удаление помеченных не запускайте: вернуть отдельный стёртый документ штатными средствами нельзя.

Шаг 2. Проверьте, кто сейчас работает

В Конфигураторе откройте Администрирование → Активные пользователи. Если в списке есть сеансы бухгалтеров, договоритесь о времени. Обработка блокирует удаляемые объекты, и объект, который кто-то держит открытым, не удалится.

Шаг 3. Убедитесь в правах

У пользователя, который будет удалять, должна быть роль с правом интерактивного удаления помеченных. В типовых конфигурациях на БСП достаточно профиля «Администратор» или роли «Полные права». Проверить можно в Конфигураторе: Администрирование → Пользователи, вкладка «Прочие» в карточке пользователя.

Шаг 4. Запустите режим 1С:Предприятие

Прямо из Конфигуратора: Сервис → 1С:Предприятие. Откроется база под тем же пользователем. Дальнейшие действия выполняются уже в пользовательском режиме.

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

СпособГде запускаетсяКогда подходитРиски
Обработка типовой конфигурацииАдминистрирование → ОбслуживаниеБП 3.0, ЗУП 3.1, УТ 11 и другие на БСПМинимальные: есть контроль ссылок и отчёт
Стандартная функция платформыВсе функции → СтандартныеЛюбая конфигурация, включая самописныеНет удобных фильтров
Программный вызовВнешняя обработкаРегулярная очистка, большие базыОшибка в коде удалит лишнее

Способ 1. Через раздел «Обслуживание»

  1. Откройте Администрирование → Обслуживание.
  2. В группе корректировки данных выберите «Удаление помеченных объектов».
  3. Выберите режим: удалить всё помеченное или отметить объекты вручную.
  4. Нажмите кнопку удаления и дождитесь окончания.
  5. Изучите итог. Объекты, которые не удалось стереть, программа покажет списком вместе с местами, где на них есть ссылки.

Пути в типовых конфигурациях:

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

Способ 2. Через «Все функции»

Этот вариант есть в любой базе на платформе 8.3, даже без БСП.

  1. Если пункта «Все функции» нет в главном меню, включите его: Сервис и настройки → Параметры → Отображать команду «Все функции».
  2. Откройте Все функции → Стандартные → Удаление помеченных объектов.
  3. Платформа соберёт список помеченного. Отметьте нужное и запустите удаление с контролем.

Стандартная функция удобна в доработанных и отраслевых конфигурациях, где раздел «Обслуживание» переделан или отсутствует.

Способ 3. Программно, внешней обработкой

Платформа даёт два метода: НайтиПомеченныеНаУдаление() возвращает массив ссылок, УдалитьОбъекты() удаляет их с проверкой ссылок. Пример процедуры для внешней обработки, выполняемой на сервере:

&НаСервереБезКонтекста
Процедура УдалитьПомеченныеНаСервере()

    Помеченные = НайтиПомеченныеНаУдаление();
    Если Помеченные.Количество() = 0 Тогда
        Сообщить("Помеченных объектов нет");
        Возврат;
    КонецЕсли;

    НеУдалены = Новый Массив;
    // Второй параметр Истина включает контроль ссылочной целостности
    УдалитьОбъекты(Помеченные, Истина, НеУдалены);

    Сообщить(СтрШаблон("Найдено: %1, не удалено: %2",
        Формат(Помеченные.Количество(), "ЧГ=0"),
        Формат(НеУдалены.Количество(), "ЧГ=0")));

КонецПроцедуры

Параметр Истина оставляйте всегда. С Ложь платформа удалит объекты без проверки, и в документах появятся битые ссылки.

Программное удаление обходит интерфейсные проверки типовой обработки. Сначала прогоните его на копии базы.

Порядок удаления в большой базе

Если помеченных объектов десятки тысяч, один общий проход может идти всю ночь. Разбейте работу на этапы:

  1. 📄 Документы. Они ссылаются на справочники, но на них самих ссылаются редко. Удаляются быстрее всего.
  2. 📚 Подчинённые справочники: договоры, банковские счета, контактные лица.
  3. 🏢 Основные справочники: контрагенты, номенклатура, сотрудники.
  4. 🔁 Повторный общий проход. Он подберёт то, что раньше держали ссылки из уже удалённых документов.

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

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

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

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

Ещё три промаха, которые приводят к потере данных:

  • ❌ Удаление по пометкам, которые никто не проверял. Пометку ставят и случайно. Перед запуском просмотрите список: отбор по пометке удаления есть в любом журнале документов.
  • ❌ Удаление без контроля ссылок в программном варианте. Битые ссылки потом приходится чинить через тестирование базы.
  • ❌ Копия, которую не проверяли. Файл .dt нулевого размера или выгрузка с ошибкой обнаруживаются ровно в тот момент, когда нужен откат.

Чем отличается удаление в разных конфигурациях 1С

Механизм в основе один — платформенная проверка ссылок. Отличается оболочка.

В БП 3.0, ЗУП 3.1, УТ 11 форма удаления взята из Библиотеки стандартных подсистем. Она умеет показывать места использования, фильтровать по видам объектов и работать по расписанию.

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

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

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

Как настроить автоматическую очистку по расписанию

В конфигурациях на БСП удаление можно поручить регламентному заданию.

  1. Откройте форму удаления помеченных из раздела Администрирование → Обслуживание.
  2. Переключите режим на автоматическое удаление по расписанию.
  3. Нажмите на ссылку расписания и задайте время, например ежедневно в 03:00 или раз в неделю в воскресенье.
  4. Проверьте, что задание включено: Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

Регламентные задания в файловой базе выполняются, только пока запущен хотя бы один клиентский сеанс. В клиент-серверной базе их выполняет сервер 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

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

Автоматическая очистка удаляет то, что пометили пользователи, без участия человека. Включайте её только вместе с ежедневной резервной копией.

Перед включением автоудаления
Выполнено: 0 / 5

Как вернуть данные, если удалили лишнее

Корзины в 1С нет. Удалённый объект штатно не восстанавливается, поэтому все варианты опираются на копию.

Вариант 1. Откатить всю базу

Подходит, если с момента удаления в базе почти не работали.

  1. Выгоните пользователей и откройте Конфигуратор.
  2. Сначала выгрузите текущее состояние в отдельный .dt — на случай, если откат придётся отменить.
  3. Администрирование → Загрузить информационную базу, выберите копию до удаления.
  4. Подтвердите замену данных. Всё, что ввели после копии, придётся внести заново.

Вариант 2. Перенести отдельные объекты из копии

Подходит, когда после удаления успели поработать несколько дней.

  1. Создайте новую пустую базу и загрузите в неё копию .dt.
  2. Найдите там нужные документы или элементы справочников.
  3. Перенесите их в рабочую базу универсальной обработкой выгрузки и загрузки данных в XML. Ссылки при переносе сохраняются, поэтому документы встанут на прежние места.
  4. Перепроведите перенесённые документы и проверьте остатки.

Как узнать, кто и что удалил

Откройте журнал регистрации: в Конфигураторе Администрирование → Журнал регистрации или в пользовательском режиме через раздел администрирования. Установите отбор по событию «Данные. Удаление». В журнале видно пользователя, время и представление удалённого объекта. Так проще понять, что именно восстанавливать.

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

Уменьшится ли файл базы после удаления помеченных?
В файловой базе размер 1Cv8.1CD сам не уменьшается: освободившееся место используется под новые данные. Сжать файл можно в Конфигураторе через тестирование и исправление с режимом сжатия таблиц или выгрузкой и загрузкой .dt.
Попадают ли помеченные документы в отчёты?
Нет. При пометке на удаление документ теряет проведение, его движения пропадают из регистров. В отчётах он не участвует, хотя в журнале виден.
Как снять пометку с нескольких объектов сразу?
Выделите строки в списке и снова нажмите «Пометить на удаление» или клавишу Delete: команда работает как переключатель. Проведение документов после этого нужно восстановить вручную.
Можно ли удалить помеченное в базе, где работают люди?
Технически да, но объекты, открытые пользователями, будут заблокированы и не удалятся, а проверка ссылок замедлит работу всех. Надёжнее запускать в нерабочее время.
Что делать с битыми ссылками после неудачного удаления?
В Конфигураторе выполните Администрирование → Тестирование и исправление с проверкой ссылочной целостности и выберите действие для ссылок на несуществующие объекты. Перед этим тоже сделайте копию.