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

24.02.26

База данных - Чистка данных

В любой типовой конфигурации 1cv8 есть типовая обработка "Удаление помеченных на удаление объектов". Проблема в том, что как только в базе данных накопится более миллиона основных записей, помеченных на удаление, то типовая обработка даже не сможет открыться, сколько дней ее не жди..... Данная моя обработка открывается в базе, в которой около 3-х миллионов помеченных на удаление объектов (справочников и документов) - за 67 секунд! Далее на начальной форме - очень гибкий отбор объектов, благодаря которому - возможно, наконец-таки, почистить базу от мусора. Не монопольно. Контроль ссылочности связанных объектов присутствует.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Удаление помеченных на удаление объектов с предварительным отбором
.epf 32,48Kb
70 3 400 руб. Купить
Пометить на удаление объекты с предварительным отбором:
.epf 18,91Kb
4 3 000 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

За основу была взята древняя типовая обработка из 1С:Медицина.Больница1.0. Она не запускалась в базе, в которой было около трех миллионов помеченных на удаление объектов...Почему? Потому что во всех типовых обработках на удаление - используется типовая функция НайтиПомеченныеНаУдаление(), а потом ее ставят в цикл на перебор типов объектов - и здесь: все умирает...Типовая обработка может стоять в запуске сутками - и так не открыться, чтобы начать отбор.

Я делаю проще: при открытии моей обработки - идет сбор помеченных на удаление объектов метаданных запросом (в базе с 3млн таких записей - занимает время на открытие моей обработки равное 67 секунд).

Для сбора данных - использую только справочники и документы, потому что 80% захламления базы находится в них. Кроме того, справочники и документы имеют ссылочный тип, а это очень полезно для нетиповых сильно переписанных конфигураций, так как могут присутствовать странные "ничейные" объекты, которые были забыты/оставлены при ручном обновлении базы (см.скрин). При обнаружении подобных "ничейных" объектов - внизу будет выдано сообщение: добавьте им роль ПолныеПрава в конфигураторе.

 

     

На начальной странице формы есть варианты отбора. Крайне не рекомендую выделять в тяжелой базе сразу все объекты: "Слона нужно есть по кусочку", поэтому для начала проанализируйте основные "тяжелые" объекты поштучно, с ссылочным режимом, чтобы видеть какие связанные объекты привязываются в каждом конкретном случае(см.скрин).

 

     

Например, отправлять на отработку сразу 300 тысяч документов - это долго и не рационально. Поэтому для документов я добавила фильтр по периоду. На скрине видно, что, выбрав один день и нажав кнопку пересчитать, в отборе будет не 300 тысяч, а всего 28 штук - такой объем быстро проанализируется.

Жмем кнопку "Далее".

 

     

На следующей странице формы появится список из наших отобранных 28 штук документов. Чтобы провести первый анализ по данным удаляемым объектам - нам так же не нужно выбирать все, отмечу галочкой только парочку документов. 

Жмем кнопку "Удалить":

 

     

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

 

     

Анализируем, что нам вообще-то не нужны эти записи в регистрах сведений...

Жмем кнопку "Назад", "Назад"

и возвращаемся с третьей страницы формы обработки - на начальную страницу, включаем галку "Очищать регистры сведений, ссылающиеся на помеченные на удаление документы?",

 

 

отбираем по периоду эти же документы, "Далее", "Далее", жмем "Удалить":

Получаем предупреждение, что все удалилось! В этом режиме, с включенной галкой "Очищать рег.свед", идет поиск ссылок на объект в базе, если найденные связанные объекты - это регистры сведений, то моим универсальным запросом к полученному регистру сведений - удаляется именно эта запись, а потом и сам документ (или справочник, в некоторых конфигурациях - и такие чудеса есть: как запись элемента справочника в регистре сведений)).

 

 

и обработка возвращает нас на вторую страницу формы, для дальнейшего выбора объектов к удалению.

     *Важно, если кроме регистра сведений, на удаляемый объект будет ссылаться иной документ/справочник, то он не удалится, а останется в списке неудаленных для последующего анализа (значит нужно сначала удалить ссылаемые объекты, например. Или вообще, может оказаться, что ссылаемый документ/справочник НЕ помечен на удаление - и нужно думать, что с этим делать).

==================================================================

     *Внимание: в свою обработку добавила волшебную галку "Чпых":

 

 

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

Скорость, конечно, хорошая, по сравнению с удалением при контроле ссылочных объектов), но это применяется для точно проанализованных данных.

*В принципе, используемые типовые функции в обработке еще с 1с.Платформы 8.0, но для современных конфигураций: запрещено использовать модальный режим, поэтому обработка общается с пользователем через "ПоказатьПредупреждение" и "ПоказатьВопрос", а они появились в 1с.Платформе 8.3.3....Поэтому, если у вас очень старенькая платформа, то заремарьте их и используйте модальные "Предупреждение" и "Вопрос".

А так, моя обработка должна в любой 1cv8 конфигурации открыться. Буду очень ждать комментариев: кто, в какой конфигурации использовал моего "Франкенштейна", и на сколько ваша база стала легче.)

п.с. В ходе аудита моей обработки: добавила в Исключение Попытки -> ЗаписьЖурналаРегистрации (для серверных функций) и ЖурналРегистрацииКлиент.ДобавитьСообщениеДляЖурналаРегистрации (для клиентской функции). Поэтому, если у вас старенький релиз конфигурации, в которой нету общего модуля "ЖурналРегистрацииКлиент" - заремарьте.

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

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

     В ходе глобальной чистки от захломляемости базы, был найден документ-паразит, который в принципе не нужен в текущем учете, но он порождался по подписке, на текущий момент оказалось таких документов 4,5 млн...Чтобы массово пометить на удаление с применением фильтра по Периоду: написала еще одну Универсальную обработку "Франкенштейн: Пометить на удаление.Универсальный".

В этой обработке - на начальной странице формы (при открытии формы) - разворачиваются так же все справочники по своей Иерархии по группам, так как очень удобно будет выделить конкретную группу и отправить ее элементы на Пометку удаления.

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

Для того, чтобы не ждать заново обновление начальной формы, то под кнопкой "Далее" - заремарила обновление данных.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

В ходе тестирования обработки удаления в разных конфигурациях, был выявлен ньюанс: некоторые виды документов, помеченные на удаление, ссылались на самих себя, и поэтому не удалялись:

Это не ошибка работы обработки, а просто в некоторых документах в конфигураторе в настройке "Удаление движений" выбрано: "Не удалять автоматически", например, в 1с.Бухгалтерии в документе "Авансовый отчет":

Решение простое: на первую форму обработки удаления добавила соответствующую галку:

а в Функция ВыполнитьУдаление_фма(Знач Удаляемые, ТипыУдаленныхОбъектовМассив) -> после определения ссылок на удаляемый объект - просто исключаем документ ссылающийся сам на себя:

				//*
				Если УдДокиСсылающНаСебя Тогда
					Для каждого стр Из Удаляемые Цикл 
						// Удаляем в Найденных ссылках -> ссылающегося на самого себя документ                                   
						ИндексДокаСамогоСебя = НайденныеДанные.Найти(стр.Ссылка,"Данные"); //значит в конфигурации данный документ с параметрами УдалениеДвижений = Не удалять автоматически
						Если ИндексДокаСамогоСебя <> Неопределено Тогда
							НайденныеДанные.Удалить(ИндексДокаСамогоСебя); 
						КонецЕсли;
					КонецЦикла;	
				КонецЕсли; 
                //*

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Обработки можно открыть: либо через Файл->Открыть, либо прикрепить в базе меню Администрирование в "Дополнительные отчеты обработки"

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

Проверено на следующих конфигурациях и релизах:

  • 1С:ERP Управление предприятием 2, релизы 2.5.25.68, 2.5.25.61
  • Бухгалтерия государственного учреждения, редакция 2.0, релизы 2.0.106.57
  • Зарплата и кадры государственного учреждения, редакция 3, релизы 3.1.36.19, 3.1.35.73
  • Документооборот КОРП, редакция 3.0, релизы 3.0.19.29
  • Управление торговлей, редакция 11, релизы 11.5.25.68, 11.5.25.61
  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.187.20, 3.0.186.21
  • Зарплата и управление персоналом, редакция 3.1, релизы 3.1.36.19, 3.1.35.73
  • Бухгалтерия государственного учреждения, релизы 1.0.76.9

Вступайте в нашу телеграмм-группу Инфостарт

Инструмент разработчика 1с Удаление помеченных на удаление объектов Франкенштейн Универсальная обработка механизмы платформы не монопольно Ссылки на связанные объекты Пометка на удаление объектов

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    68217    357    164    

313

Чистка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

Позволяет удалить организации из любых из информационных баз 1С на управляемых формах (БП 3.0, УТ 11, КА 2, ERP 2, ЗУП 3, УНФ, Розница 3.0 и пр.). Главное требование - программа должна содержать справочник "Организации". Реализован самый быстрый алгоритм непосредственного удаления объектов. Работает даже на базах большого размера. Для ускорения работы алгоритма не запускается проверка контроля ссылочной целостности. Проверку учета можно запустить отдельно с помощью дополнительной обработки. Необходимо перед удалением самостоятельно проверить базу на наличие перекрестных ссылок разных организаций в одном документе. Эту дополнительную обработку проверки перекрестных ссылок по запросу предоставляем бесплатно нашим покупателям.

6100 руб.

16.03.2015    281054    258    84    

291

Чистка данных Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 1.6 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Платные (руб)

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. (Обновление от 26.02.2026, версия 4.5, 4.6.0)

14640 руб.

22.02.2013    146602    291    153    

459

Чистка данных Инструменты администратора БД Администрирование 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Решение представляет собой набор из 6 обработок для 1С по удалению организаций и справочников из базы по фильтрам, документов по фильтрам, универсальное сжатие данных, очистка битых движений регистратора, удаление устаревших регистров сведений, удаление устаревших документов "Электронное письмо входящее" и "Электронное письмо исходящее"

23999 руб.

20.02.2026    1252    1    0    

4

Чистка данных Программист Пользователь 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

Обработка позволяет удобно и выборочно удалить данные из базы 1С на управляемых формах например БП 3.0, УТ 11, КА 2, ERP, УНФ, ЗУП 3, Розница и др. Это могут быть неактуальные организации или другие перечни объектов. При этом есть возможность провести анализ пересечений документов с другими организациями и таким образом уберечься от того, что при удалении обороты по другой организации изменятся. Объекты нужно выбирать вручную и после этого запускать команду удаления. Будут удалены все ссылки на них.

5000 руб.

28.11.2019    30566    82    21    

97

Чистка данных Инструменты администратора БД Системный администратор Программист 1С 8.3 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)

Хочешь выборочно удалить одну организацию, тестовую номенклатуру или «мусорного» контрагента, любую ссылку - без ручного поиска ссылок и часовых разборок зависимостей? Этот инструмент сам строит дерево связей, каскадно чистит с "глубоким поиском" документы, справочники, пвх, любые ссылки, регистры, движения в так же делает резервную копию и за пару минут оставляет базу чистой и полностью работоспособной (Управляемые формы, обычный интерфейс)

1 стартмани

03.02.2026    2841    103    war41k    0    

26

Чистка данных Системный администратор Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 2 Абонемент ($m)

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

1 стартмани

25.12.2023    14089    314    WeterSoft    7    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. aleksey2 96 17.11.25 13:33 Сейчас в теме
На БП была такая ситуация: стоит дата запрета по организации, и какой-то документ цепляет этот запрет, то падает вообще всё, удаление не происходит.
jan-pechka; +1 Ответить
2. jan-pechka 457 17.11.25 14:07 Сейчас в теме
(1) Спасибо большое, что напомнили о ДатеЗапретаИзменений!
Конечно, чтобы работать с данной обработкой: у пользователя должна быть роль "ПолныеПрава" и желательно ДатеЗапретаИзменений себе вообще очистить, т.к. встречала записанные ссылаемые документы и в 01.01.0025 году и в 01.01.3025году)
3. jan-pechka 457 20.11.25 16:00 Сейчас в теме
еще важно, чтобы на объект у роли ПолныеПрава - была вкл галка "ИнтерактивноеУдалениеПомеченных", иначе на второй вкладке - не отобразятся выбранные по периоду документы
/////////////////
столкнулась со странной ошибкой: при удалении самописного документа - в обработке возникла исключительная ошибка и документ не удалился. Посмотрела, а у него в модуле объекта в проц.ПередУдалением() -> стоит: Отказ=Истина....Веселая чья-то шутка((...Заремарила конечно, и все норм-удалился.
4. svs1963 17.01.26 14:57 Сейчас в теме
Добрый день . Обработка кидает ошибку . В чем может быть дело ? версия ЕРП 2.5.22.129
Прикрепленные файлы:
5. jan-pechka 457 18.01.26 07:50 Сейчас в теме
(4) по вашему скрину: видно, что включена галка ОчищатьРегистрСведений, а в самом регистре сведений не находит этот вид документа "АвансовыйОтчет"....Странно, это что-то в вашем документе придумано, бывает)...
Попробуйте поставить точку остановы на 1386строку и посмотрите что это за хитрый регистр сведений?
Если не принципиальный будет регистр, то снимите галку в обработке "ОчищатьРегистрСведений" и запустите вновь удаление.
Прикрепленные файлы:
6. svs1963 19.01.26 10:57 Сейчас в теме
Добрый день .Спасибо за ответ . Попробую .
jan-pechka; +1 Ответить
7. Prelude 41 18.03.26 10:27 Сейчас в теме
Добрый день!
Имеется ошибка
Поле объекта не обнаружено (Организации)
{ВнешняяОбработка.моеУдалениеПомеченныхОбъектовУниверсальный.Форма.ОсновнаяФорма.Форма(1398)}:НаборЗаписейСтатусыМедДок.Отбор[ВидДокумента].Установить(ДокументПомеченныйНаУдаление);
{ВнешняяОбработка.моеУдалениеПомеченныхОбъектовУниверсальный.Форма.ОсновнаяФорма.Форма(1188)}:Результат = ВыполнитьУдаление_фма(Удаляемые, ТипыУдаленныхОбъектов);
{ВнешняяОбработка.моеУдалениеПомеченныхОбъектовУниверсальный.Форма.ОсновнаяФорма.Форма(795)}:УдалитьПомеченныеОбъекты_фма(ПараметрыУдаления, АдресХранилища);
{ВнешняяОбработка.моеУдалениеПомеченныхОбъектовУниверсальный.Форма.ОсновнаяФорма.Форма(543)}:Результат = УдалениеВыбранныхНаСервере(ТипыУдаленныхОбъектов);
{ВнешняяОбработка.моеУдалениеПомеченныхОбъектовУниверсальный.Форма.ОсновнаяФорма.Форма(515)}:ВыполнитьУдалениеОсознанно()

[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]


СтатусыМедДок

у меня нет мед. документов.
Это универсальная обработка или чисто для мед. учр?
У меня КА 2,5
8. jan-pechka 457 19.03.26 14:19 Сейчас в теме
(7) нет, не только для мед.учрежд. НаборЗаписейСтатусыМедДок- это просто имя переменной, в которую в каждом шаге цикла - помещается регистр сведений из удаляемого документа. Подскажите: какой вид документа в КА вы пробуете удалить, чтобы мне воссоздать ошибку и исправить ее?
9. jan-pechka 457 23.03.26 12:21 Сейчас в теме
*Есть еще небольшой ньюанс работы с моей обработкой: в Функция ИсключенияПоискаСсылок() -> находится перечень типовых регистров сведений, которые не должны быть очищены, но сегодня попалась база с очень древним БСП, и в нем не оказалось типового РегистрыСведений.ИсполнителиЗадач, поэтому просто заремарила в данной функции отбор этого регистра, и все отработалось норм.
Если у кого-то так же будет, то заремарьте отбор исключений типовых рег.сведений.
10. jan-pechka 457 23.03.26 12:27 Сейчас в теме
И обязательно: у пользователя 1с, под которым запускается моя обработка - должны быть ПОЛНЫЕ права.
И Дата запрета изменения - для этого пользователя должна быть самой минимальной, чтобы все периоды в регистрах открывались.
11. user655564_gulnara-68 01.04.26 10:41 Сейчас в теме
Здравствуйте, конф.КА 2.5. Когда нажимаю "Далее" - пустой экран, отобранные документы или справочники не появляются.
Прикрепленные файлы:
13. пользователь 02.04.26 12:29
Сообщение было скрыто модератором.
...
14. пользователь 02.04.26 12:36
Сообщение было скрыто модератором.
...
15. jan-pechka 457 02.04.26 12:47 Сейчас в теме
(11) Возможно, что в выбранном вами периоде нету просто выбранного вида документа. Чтобы убедиться в этом -> нажмите рядом с периодом серую кнопочку "Пересчитать количество отобранных документов."
16. user655564_gulnara-68 02.04.26 13:01 Сейчас в теме
(15)В том то и дело, что есть. Серую кнопочку "Пересчитать количество отобранных документов" нажимаю.
17. jan-pechka 457 02.04.26 15:19 Сейчас в теме
(16) базу бы глянуть, чтобы понять в чем дело...
12. user655564_gulnara-68 01.04.26 10:42 Сейчас в теме
Второй скрин не прикрепился, добавлю здесь. Пробовала разные документы и справочники.
Прикрепленные файлы:
18. jan-pechka 457 02.04.26 15:57 Сейчас в теме
*Для тех, кто работает в ERP -> при очистке документов нужно включать УстановитьПривилегированныйРежим(Истина), и потом, конечно, его отключать: УстановитьПривилегированныйРежим(Ложь).
В моей обработке это было предусмотрено, но по аудиту - попросили заремарить....
Поэтому, просто по поиску УстановитьПривилегированныйРежим в конфигураторе в обработке - можете снять ремарки, но проверяйте сначала на копии базы!
Для отправки сообщения требуется регистрация/авторизация