Чистка базы Управления торговлей от помеченных документов и элементов справочников
Содержание
В 1С:Управлении торговлей 11 помеченные объекты удаляют обработкой НСИ и администрирование → Администрирование → Обслуживание → Корректировка данных → Удаление помеченных объектов. Программа сначала проверяет ссылки: объект, на который ссылается хоть один живой документ или элемент справочника, не удалится, а попадёт в список «не удалено» с указанием мест использования. Остальное удаляется физически, без корзины.
Поэтому порядок всегда один: резервная копия, поиск помеченного, разбор ссылок, само удаление. Ниже — все рабочие способы для УТ 11 и УТ 10.3, ошибки, которые встречаются на практике, и что делать, если удалили лишнее.
Пометка на удаление в УТ: что это и зачем чистить базу
Когда пользователь нажимает Delete в списке или выбирает Еще → Пометить на удаление, объект не исчезает. Он получает флаг пометки и остаётся в базе со всеми связями. Это защита от случайного удаления: пометку можно снять тем же действием.
Что происходит с разными объектами:
- 📄 Документ (реализация, поступление, заказ клиента ) — при пометке у проведённого документа отменяется проведение, движения по регистрам пропадают. Остатки и взаиморасчёты пересчитываются так, будто документа нет.
- 📦 Элемент справочника (номенклатура, контрагент, склад) — остаётся в списке с перечёркнутым значком и по-прежнему доступен в ссылках из старых документов.
- 🗂 Группа справочника — пометка ставится на группу и на всё её содержимое.
Зачем удалять окончательно:
- 🐢 база растёт: тысячи черновиков, дубли номенклатуры и тестовые документы занимают место и замедляют поиск и отчёты;
- 🔍 в формах выбора помеченные элементы мешают — менеджер выбирает перечёркнутый дубль контрагента вместо рабочего;
- 🧹 перед обменом с бухгалтерией или переходом на новую базу проще перенести чистые данные.
Помеченные элементы можно скрыть в списке отбором по полю «Пометка удаления» в настройках списка (меню «Еще»). Это не удаление, а просто чистый вид.
Способы удалить помеченные объекты в 1С УТ: сравнение
| Способ | Когда подходит | Риски |
|---|---|---|
| Штатная обработка БСП | Обычная чистка раз в месяц или квартал | Минимальные: ссылки проверяются |
| Регламентное задание по расписанию | Базы, где пометки копятся постоянно | Удаление идёт без участия человека, ошибки видны только в отчёте |
| Платформенная «Удаление помеченных объектов» | Когда обработка конфигурации недоступна или нужна быстрая проверка | Те же проверки ссылок, но без удобного разбора мест использования |
| Консоль запросов + код | Поиск и анализ, массовая выборка по условию | Прямое удаление кодом без контроля ссылок ломает данные |
Интерактивное удаление Shift+Delete | Почти никогда | Обычно запрещено правами, ссылки не проверяются |
Пути запуска отличаются по версиям конфигурации:
| Конфигурация | Где запускать |
|---|---|
| УТ 11.4, 11.5 (интерфейс «Такси») | НСИ и администрирование → Администрирование → Обслуживание, группа «Корректировка данных» |
| УТ 10.3 (обычные формы, толстый клиент) | Главное меню Операции → Удаление помеченных объектов |
| Любая конфигурация на 8.3, платформенный вариант | Главное меню Функции для технического специалиста → Стандартные → Удаление помеченных объектов |
Команда «Функции для технического специалиста» в старых релизах платформы называлась «Все функции». Если её нет в меню, включите её в Сервис и настройки → Параметры флажком отображения этой команды.
Ручная пометка и снятие пометки в списках УТ
Удаление начинается с правильной пометки. Ошибка на этом шаге — главная причина потери нужных данных.
Как пометить
- Откройте список, например
НСИ и администрирование → НСИ → Номенклатураили журнал документов продаж. - Выделите строки:
Ctrl+ клик по отдельным,Shift+ клик — диапазон. - Нажмите
DeleteилиЕще → Пометить на удаление / Снять пометку. - Подтвердите вопрос программы.
Как снять пометку
Выделите помеченный объект и повторите то же действие. У документа, с которого сняли пометку, проведение само не восстановится — проведите его заново.
Что проверить перед массовой пометкой
- 🔗 нет ли у дубля номенклатуры остатков на складах и открытых заказов;
- 👥 не используется ли контрагент в договорах и соглашениях с клиентами;
- 📅 не попадают ли документы в закрытый период: после удаления изменятся остатки и себестоимость прошлых месяцев.
Пометка проведённого документа сразу меняет остатки и долги. Если документ был в закрытом периоде, после пометки придётся заново закрывать месяц.
Удаление помеченных объектов штатной обработкой УТ
Это основной способ для УТ 11. Обработка входит в Библиотеку стандартных подсистем, поэтому выглядит почти одинаково и в других конфигурациях на этой библиотеке.
Подготовка
Перед удалением сделайте резервную копию базы . Удалённые объекты не попадают в корзину, вернуть их можно только из копии.
- 💾 файловая база — выгрузка в
.dtчерез Конфигуратор или копия каталога базы при закрытой программе; - 🗄 клиент-серверная база — резервная копия средствами СУБД;
- 🔑 права — у пользователя должна быть роль на удаление помеченных объектов, обычно она есть у администратора;
- 🕗 время — запускайте вечером или в выходной: при большом объёме удаление идёт часами, а пользователи, работающие с теми же объектами, мешают обработке.
Монопольный режим для этой обработки не нужен, но чем меньше активных сеансов, тем меньше конфликтов блокировок.
Запуск по шагам
- Откройте
НСИ и администрирование → Администрирование → Обслуживание. - Разверните группу «Корректировка данных» и нажмите «Удаление помеченных объектов».
- Выберите режим: удалить все помеченные объекты или отобрать конкретные. Для первой чистки удобнее выборочный режим: видно, что именно попадёт под удаление.
- В выборочном режиме дождитесь, пока программа соберёт дерево помеченных объектов по видам: справочники, документы, прочие.
- Снимите флажки с того, что удалять рано.
- Нажмите «Удалить» и дождитесь окончания.
Как читать результат
После выполнения обработка покажет итог: сколько удалено и что осталось. По каждому неудалённому объекту есть список мест использования — документы и элементы, которые на него ссылаются.
Дальше два варианта:
- 🔁 ссылающийся объект тоже не нужен — пометьте его на удаление и запустите обработку повторно;
- ✏️ ссылка нужна, но на другой объект — откройте документ и замените, например, дубль номенклатуры на рабочую карточку. Для массовой замены дублей в УТ 11 есть обработка поиска и удаления дублей в той же группе «Корректировка данных».
Если два помеченных объекта ссылаются друг на друга, обработка удаляет их вместе: проверка учитывает, что оба уходят из базы.
Поиск помеченных через консоль запросов и удаление кодом
Консоль запросов — внешняя обработка для разработчика. Она умеет только читать данные, но для анализа незаменима: можно посчитать, сколько помеченных документов за период, и выгрузить список в таблицу.
Запрос для поиска помеченных документов
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка КАК Документ,
РеализацияТоваровУслуг.Дата КАК Дата,
РеализацияТоваровУслуг.Партнер КАК Партнер
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.ПометкаУдаления
И РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
УПОРЯДОЧИТЬ ПО
Дата
Для справочника замените источник, например на Справочник.Номенклатура, и уберите условие по дате. Поле ПометкаУдаления есть у всех документов и справочников.
Удаление кодом с контролем ссылок
Если нужна своя обработка, используйте платформенные методы НайтиПомеченныеНаУдаление() и УдалитьОбъекты(). Второй параметр Истина включает контроль ссылок, как в штатной обработке.
&НаСервере
Процедура УдалитьПомеченныеНаСервере()
Помеченные = НайтиПомеченныеНаУдаление();
Найденные = Неопределено;
УдалитьОбъекты(Помеченные, Истина, Найденные);
Сообщить(СтрШаблон("Помечено было: %1. Не удалено из-за ссылок: %2.",
Формат(Помеченные.Количество(), "ЧГ=0"),
Формат(Найденные.Количество(), "ЧГ=0")));
КонецПроцедуры
В Найденные возвращается таблица ссылок, которые помешали удалению. Её можно вывести пользователю или записать в файл.
Не удаляйте объекты методом Удалить() у объекта напрямую. Он стирает запись без проверки ссылок: в документах останутся «битые» ссылки вида <Объект не найден>, а остатки и отчёты начнут показывать ерунду.
Удаление по расписанию: регламентное задание и внешние обработки
В УТ 11 удаление можно поставить на автомат. Настройка находится в той же форме обработки: включите автоматическое удаление помеченных объектов и задайте расписание, например раз в неделю, в воскресенье ночью.
Под капотом это регламентное задание «Удаление помеченных объектов». Его состояние и журнал запусков видны в НСИ и администрирование → Администрирование → Обслуживание → Регламентные операции → Регламентные и фоновые задания.
Особенности работы:
- 🖥 в клиент-серверной базе задание выполняет сервер 1С, пользователи могут не входить в программу;
- 📁 в файловой базе регламентные задания выполняются, только пока открыт хотя бы один сеанс работы с базой;
- 📋 объекты, которые не удалось удалить, остаются помеченными, а итог виден в журнале регистрации.
Внешние обработки для автоматизации берут, когда нужна логика, которой нет в штатной: удалять только документы старше года, только черновики определённого вида, отправлять отчёт на почту. Такую обработку пишет программист на методах из предыдущего раздела и подключает через НСИ и администрирование → Печатные формы, отчёты и обработки → Дополнительные отчёты и обработки.
Автоудаление удобно, но лишает шанса «одуматься». Если пользователи ошибаются с пометкой, ставьте задание не чаще раза в неделю: будет время снять пометку.
Почему помеченный объект не удаляется: ошибки и решения
Отдельный случай — помеченная номенклатура с остатками. Обработка удалит её, только когда исчезнут все движения: значит, сначала нужно пометить или исправить документы поступления и продажи. Обычно правильнее не удалять такую карточку, а заменить её на рабочую обработкой поиска дублей.
Как вернуть данные после ошибочного удаления
Физически удалённый объект штатными средствами не восстанавливается: корзины в 1С нет. Работают три подхода.
1. Узнать, что и кто удалил
Откройте журнал регистрации: НСИ и администрирование → Администрирование → Обслуживание → Журнал регистрации. Поставьте отбор по событию «Данные. Удаление» и по дате. В записях видно пользователя, время и представление объекта. Данных объекта там нет, но список удалённого получите точный.
2. Достать объекты из резервной копии
- Разверните резервную копию в отдельную новую базу. Не загружайте
.dtповерх рабочей: пропадёт всё, что ввели после копии. - В копии найдите нужные документы и элементы справочников.
- Перенесите их в рабочую базу выгрузкой и загрузкой данных в XML. Для этого есть универсальные внешние обработки обмена; переносите только выбранные объекты.
- Проведите восстановленные документы и проверьте остатки.
3. Восстановить из версий объекта
Если в базе включено версионирование объектов, у документов и справочников хранится история изменений. Это помогает, когда объект испортили правкой, а не удалением. Для удалённых объектов надёжнее резервная копия.
Если удаление затронуло закрытый период, после восстановления документов перепроведите период и заново закройте месяцы, начиная с самого раннего затронутого.
Чтобы история не повторилась:
Частые вопросы
Освободит ли удаление помеченных место на диске?
1Cv8.1CD уменьшится только после сжатия таблиц в Конфигураторе через тестирование и исправление. В серверной базе место освобождает обслуживание СУБД.