Чистка базы Управления торговлей от помеченных документов и элементов справочников

· 10 мин

Содержание

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

Поэтому порядок всегда один: резервная копия, поиск помеченного, разбор ссылок, само удаление. Ниже — все рабочие способы для УТ 11 и УТ 10.3, ошибки, которые встречаются на практике, и что делать, если удалили лишнее.

Пометка на удаление в УТ: что это и зачем чистить базу

Когда пользователь нажимает Delete в списке или выбирает Еще → Пометить на удаление, объект не исчезает. Он получает флаг пометки и остаётся в базе со всеми связями. Это защита от случайного удаления: пометку можно снять тем же действием.

Что происходит с разными объектами:

  • 📄 Документ (реализация, поступление, заказ клиента ) — при пометке у проведённого документа отменяется проведение, движения по регистрам пропадают. Остатки и взаиморасчёты пересчитываются так, будто документа нет.
  • 📦 Элемент справочника (номенклатура, контрагент, склад) — остаётся в списке с перечёркнутым значком и по-прежнему доступен в ссылках из старых документов.
  • 🗂 Группа справочника — пометка ставится на группу и на всё её содержимое.

Зачем удалять окончательно:

  • 🐢 база растёт: тысячи черновиков, дубли номенклатуры и тестовые документы занимают место и замедляют поиск и отчёты;
  • 🔍 в формах выбора помеченные элементы мешают — менеджер выбирает перечёркнутый дубль контрагента вместо рабочего;
  • 🧹 перед обменом с бухгалтерией или переходом на новую базу проще перенести чистые данные.

Помеченные элементы можно скрыть в списке отбором по полю «Пометка удаления» в настройках списка (меню «Еще»). Это не удаление, а просто чистый вид.

Способы удалить помеченные объекты в 1С УТ: сравнение

СпособКогда подходитРиски
Штатная обработка БСПОбычная чистка раз в месяц или кварталМинимальные: ссылки проверяются
Регламентное задание по расписаниюБазы, где пометки копятся постоянноУдаление идёт без участия человека, ошибки видны только в отчёте
Платформенная «Удаление помеченных объектов»Когда обработка конфигурации недоступна или нужна быстрая проверкаТе же проверки ссылок, но без удобного разбора мест использования
Консоль запросов + кодПоиск и анализ, массовая выборка по условиюПрямое удаление кодом без контроля ссылок ломает данные
Интерактивное удаление Shift+DeleteПочти никогдаОбычно запрещено правами, ссылки не проверяются

Пути запуска отличаются по версиям конфигурации:

КонфигурацияГде запускать
УТ 11.4, 11.5 (интерфейс «Такси»)НСИ и администрирование → Администрирование → Обслуживание, группа «Корректировка данных»
УТ 10.3 (обычные формы, толстый клиент)Главное меню Операции → Удаление помеченных объектов
Любая конфигурация на 8.3, платформенный вариантГлавное меню Функции для технического специалиста → Стандартные → Удаление помеченных объектов

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

Ручная пометка и снятие пометки в списках УТ

Удаление начинается с правильной пометки. Ошибка на этом шаге — главная причина потери нужных данных.

Как пометить

  1. Откройте список, например НСИ и администрирование → НСИ → Номенклатура или журнал документов продаж.
  2. Выделите строки: Ctrl + клик по отдельным, Shift + клик — диапазон.
  3. Нажмите Delete или Еще → Пометить на удаление / Снять пометку.
  4. Подтвердите вопрос программы.

Как снять пометку

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

Что проверить перед массовой пометкой

  • 🔗 нет ли у дубля номенклатуры остатков на складах и открытых заказов;
  • 👥 не используется ли контрагент в договорах и соглашениях с клиентами;
  • 📅 не попадают ли документы в закрытый период: после удаления изменятся остатки и себестоимость прошлых месяцев.

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

Удаление помеченных объектов штатной обработкой УТ

Это основной способ для УТ 11. Обработка входит в Библиотеку стандартных подсистем, поэтому выглядит почти одинаково и в других конфигурациях на этой библиотеке.

Подготовка

Перед удалением сделайте резервную копию базы . Удалённые объекты не попадают в корзину, вернуть их можно только из копии.

  • 💾 файловая база — выгрузка в .dt через Конфигуратор или копия каталога базы при закрытой программе;
  • 🗄 клиент-серверная база — резервная копия средствами СУБД;
  • 🔑 права — у пользователя должна быть роль на удаление помеченных объектов, обычно она есть у администратора;
  • 🕗 время — запускайте вечером или в выходной: при большом объёме удаление идёт часами, а пользователи, работающие с теми же объектами, мешают обработке.

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

Запуск по шагам

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

Как читать результат

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

Дальше два варианта:

  • 🔁 ссылающийся объект тоже не нужен — пометьте его на удаление и запустите обработку повторно;
  • ✏️ ссылка нужна, но на другой объект — откройте документ и замените, например, дубль номенклатуры на рабочую карточку. Для массовой замены дублей в УТ 11 есть обработка поиска и удаления дублей в той же группе «Корректировка данных».

Если два помеченных объекта ссылаются друг на друга, обработка удаляет их вместе: проверка учитывает, что оба уходят из базы.

Поиск помеченных через консоль запросов и удаление кодом

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

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

ВЫБРАТЬ
    РеализацияТоваровУслуг.Ссылка КАК Документ,
    РеализацияТоваровУслуг.Дата КАК Дата,
    РеализацияТоваровУслуг.Партнер КАК Партнер
ИЗ
    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
    РеализацияТоваровУслуг.ПометкаУдаления
    И РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
УПОРЯДОЧИТЬ ПО
    Дата

Для справочника замените источник, например на Справочник.Номенклатура, и уберите условие по дате. Поле ПометкаУдаления есть у всех документов и справочников.

Удаление кодом с контролем ссылок

Если нужна своя обработка, используйте платформенные методы НайтиПомеченныеНаУдаление() и УдалитьОбъекты(). Второй параметр Истина включает контроль ссылок, как в штатной обработке.

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

    Помеченные = НайтиПомеченныеНаУдаление();
    Найденные = Неопределено;

    УдалитьОбъекты(Помеченные, Истина, Найденные);

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

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

В Найденные возвращается таблица ссылок, которые помешали удалению. Её можно вывести пользователю или записать в файл.

Не удаляйте объекты методом Удалить() у объекта напрямую. Он стирает запись без проверки ссылок: в документах останутся «битые» ссылки вида <Объект не найден>, а остатки и отчёты начнут показывать ерунду.

Удаление по расписанию: регламентное задание и внешние обработки

В УТ 11 удаление можно поставить на автомат. Настройка находится в той же форме обработки: включите автоматическое удаление помеченных объектов и задайте расписание, например раз в неделю, в воскресенье ночью.

Под капотом это регламентное задание «Удаление помеченных объектов». Его состояние и журнал запусков видны в НСИ и администрирование → Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.

Особенности работы:

  • 🖥 в клиент-серверной базе задание выполняет сервер 1С, пользователи могут не входить в программу;
  • 📁 в файловой базе регламентные задания выполняются, только пока открыт хотя бы один сеанс работы с базой;
  • 📋 объекты, которые не удалось удалить, остаются помеченными, а итог виден в журнале регистрации.

Внешние обработки для автоматизации берут, когда нужна логика, которой нет в штатной: удалять только документы старше года, только черновики определённого вида, отправлять отчёт на почту. Такую обработку пишет программист на методах из предыдущего раздела и подключает через НСИ и администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.

Автоудаление удобно, но лишает шанса «одуматься». Если пользователи ошибаются с пометкой, ставьте задание не чаще раза в неделю: будет время снять пометку.

Почему помеченный объект не удаляется: ошибки и решения

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

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

Как вернуть данные после ошибочного удаления

Физически удалённый объект штатными средствами не восстанавливается: корзины в 1С нет. Работают три подхода.

1. Узнать, что и кто удалил

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

2. Достать объекты из резервной копии

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

3. Восстановить из версий объекта

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

Если удаление затронуло закрытый период, после восстановления документов перепроведите период и заново закройте месяцы, начиная с самого раннего затронутого.

Чтобы история не повторилась:

Перед каждой чисткой базы УТ
Выполнено: 0 / 5

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

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