Удаление данных с отбором и построением дерева ссылок в базах 1С 8.1-8.3 (УТ 10.3, БП 2, ЗУП 2.5, КА 1.1, УТ 11, БП 3, УНФ 1.6, КА 2, ЗУП 3 и т.д.)

Опубликовал Дмитрий Топчий (hakerxp) в раздел Администрирование - Чистка базы

Данные обработки помогут Вам легко и, главное быстро, выполнить удаление любых данных в Ваших базах 1С на платформах 8.1-8.3. Обработки помогут легко просмотреть связи ссылок в виде дерева, выбрать что удалять, а что нет, используя любые отборы. Это позволит уменьшить объем лишней и не нужной информации в справочниках и документах, планах видов характеристик и др. объектах и облегчит работу с данными пользователям и Вам. Понятное расположение команд и настроек, в сочетании с описанием и справкой, еще упростят процесс. Если что-то будет неясно по работе с обработками – я готов Вам помочь. А так же обновления Вы получаете бесплатно в течение года с момента приобретения данных обработок! Данные обработки входят в ТОП-100 продаж за все время, что является залогом популярности, надежности в работе, и признанием других покупателей. (Обновление от 24.05.2017, версия 3.23(такси),3.17, 3.16(ОФ))

Описание возможностей (кратко):

  • Быстрый и продуманный алгоритм поиска ссылок и построения дерева;
  • Порционное удаление данных (уменьшает количество накладываемых блокировок при удалении данных).
  • Построение дерева ссылок на объекты рекурсивно или с указанием конечного уровня построения;
  • Исключено зацикливание в ветках дерева т.к. происходит проверка;
  • Любые отборы на любые виды объектов на любые реквизиты объекта;
  • Контроль ссылочности при удалении или без него;
  • Возможность выполнение процесса удаления в транзакции;
  • Отображение пиктограмм для помеченных объектов (отдельная кнопка);
  • Возможность выборочного удаления любого объекта/записи независимого регистра сведений;
  • Возможность удаления неиспользуемых элементов справочника/ПВХ с очисткой связанных регистров сведений (если больше нет других ссылок);
  • Выбор количества ссылок для построения дерева;
  • Возможность быстрого выбора объектов которые точно можно удалить (без ссылок);
  • Возможность дополнительного построения дерева для выбранной строки;
  • Возможность сохранения настроек;

Примечания!

  •  Скорость поиска ссылок и построения дерева зависит от мощности компьютера выбранного уровня поиска ссылок количества начальных выбранных ссылок от количества данных в БД.
  •  Привилегированный режим не используется в обычной форме т.к. не работает в обработках как надо. Особенности платформы 1С (обычное приложение). В управляемой форме данная функция присутствует.
  •  Кнопка "Отобразить пометки на удаление" служит для запроса флага "ПометкаУдаления " каждого объекта дерева и отображения картинки по данному флагу. Данная процедура занимает время поэтому была исключена из процесса формирования дерева ссылок и вынесена отдельной командой.
  •  Для удаления данных нужны полные права!

Описание возможностей (полное):

  • Построение дерева ссылок с глубиной вложения до 9 уровня. Уровень поиска ссылок можно указывать в поле "Уровень вложенности поиска ссылок" (от 1 до 9). Указание большего числа чем 3-4 может привести к длительному поиску ссылок на объекты для каждого уровня дерева!
  • Есть возможность рекурсивного поиска ссылок пока не будет ссылок на выбранные объекты.
  • Порционное удаление данных (уменьшает количество накладываемых блокировок при поиске ссылок и удалении данных). Размер порции удаляемых данных можно редактировать. Чем больше порция, тем больше вероятность наложения большого количества блокировок на данные, увеличения объема хранимых данных в памяти. По-умолчанию - 1000 ссылок/записей.
  • Позволяет удалить любые данные (кроме очистки ссылки в константе) с возможностью выбора вида объекта и наложения любого отбора на любой вид объекта выбранный в дереве объектов без монопольного режима. А так же возможность выбора в дереве произвольных объектов для удаления.
  • Если установлена галка "Контроль ссылочности" то система не даст удалить данные если есть ссылки на данный объект (для документов если он проведен и есть ссылки на движения но при удалении они игнорируются и очищаются чтоб не было ). При этом система делает дополнительный поиск ссылок для предотвращения удаления данных на которые есть ссылки.
  • Если при поиске ссылок будут найдены ссылки на записи независимого регистра сведений то данные записи будут отображены в дереве ссылок. Данные записи из дерева можно открыть для просмотра записи. Для удаления записи ее нужно выбрать в дереве. При удалении помеченная запись будет удалена по ключу записи.
  • Если установлен флаг "Выполнять процесс удаления и очистки в транзакции" то процесс удаления будет происходить в транзакции. В случае сбоя данные не будут удалены. Если установлен флаг "Прекращать процесс удаления если не удалось удалить объект/запись" то при нахождении объекта или записи которую не получилось удалить система прекратит процесс удаления. При это транзакция будет отменена.
  • Если установлен флаг "Отобрать только помеченные на удаление" то будут отобраны все помеченные на удаления объекты которые выбраны в дереве объектов. Данный флаг действует для всех ссылочных объектов!
  • Если установлен флаг "Полностью очищать регистры сведений (без использования отбора)" то при удалении данных регистра сведений (если он выбран в дереве видов объектов!) не будет использоваться отборы что увеличит скорость удаления записей в регистре. Использовать с осторожностью!
  • Кнопка "Выбрать строки которые можно удалить" позволяет выбрать объекты из дерева ссылок только те объекты на которые точно нет ссылок). Объекты которые можно удалить будут выделены зеленым цветом в колонке "Можно удалить" будет стоять "Да". Если уровень поиска ссылок был например 4. А ветка дерева была построена до 3го уровня то такие данные будут помечены как данные для удаления. Если уровень ветки дерева имеет например на 4м уровне ссылки то такие данные не будут отмечены т.к. система не может точно гарантировать отсутствие ссылок. В строке в колонке "Комментарий" будет написано "Возможно есть ссылки". Для решения данного вопроса можно принудительно проверить ссылки для данной ссылки. Для этого становимся на строку и в контекстном меню дерева выбираем "Построить дерево для выбранной строки" или "Рекурсивно построить дерево для выбранной строки".
  • В контекстном меню дерева ссылок пункт "Построить дерево для выбранной строки" для дополнительного построения иерархии ссылок начиная с выбранной строки/ссылки с выбранным уровнем поиска ссылок (указанный уровень должен быть больше чем уровень выбранной строки)
  • В контекстном меню дерева ссылок пункт "Рекурсивно построить дерево для выбранной строки" аналогично пункту "Построить дерево для выбранной строки"только поиск происходит рекурсивно;
  • Кнопка "Обновить данные" перезаполняет дерево ссылок в зависимости от настроек. Аналогично кнопке "Построить дерево ссылок".
  • Поле "Количество выбранных ссылок для удаления" служит для вывода указанного количества ссылок по которым будет происходить построение дерева. Если указан "0" то будут выбраны 100000 первых ссылок/записей для каждого выбранного вида объектов. Например нужно удалить 100 объектов но мы хотим сначала удалить 10 объектов - устанавливаем в данном поле "10".
  • При удалении любого документа происходит очистка его движений для того чтоб исключить ситуацию не зависимо от контроля ссылочности!
  • Если установлена галка "Для всех объектов" то отбор по периоду будет для всех объектов (документов задач периодических регистров сведений);
  • Для каждого объекта можно установить свой произвольный отбор. Удаление будет идти именно по данному отбору!. Если установлен период выборки то данный период примениться как отбор ко ВСЕМ отборам объектов (если установлена галка "Для всех объектов"). Если у данного вида объекта нет такого поля то отбор не будет установлен на данный объект а галка выбора в дереве объектов будет убрана (чтоб случайно не дернуть то что не нужно).
  • Для периодических регистров сведений отбор идет только за период отбора (без срезов)!
  • Имеется возможность удалять неиспользуемые элементы справочников/ПВХ (те, на которые в данный момент нет ни одной ссылки). Для этого нужно нажать на кнопку "Удалить неиспользуемые элементы" - система проанализирует наличие ссылок на выбранных справочниках/ПВХ (нужно указать в дереве) и удалит, только те, на которые нет ссылок. Если на элемент ссылаются только независимые регистры сведений, то данный элемент будет удален, а ссылающиеся записи будут очищены из регистров сведений!

С конфигурациями 8.1 обработки работают только в режиме совместимости с 8.2 (обычное приложение)!

ВНИМАНИЕ! Возможно что при выборе справочника/документа/регистра/ПВХ в таблице отбора не будет доступных полей для отбора в управляемой форме. Это значит у Вас не включена функциональная опция которая блокирует использование данного объекта! Это особенности управляемого приложения и СКД!

Не забываем делать бэкап базы до использования обработки!

Данная обработка входит в Топ-100 продаж сайта "Инфостарт" за все время!

Все, купившие обработку, получают обновления БЕСПЛАТНО  в течении года с момента покупки (от даты заказа)! Обновления высылаются на почту, указанную при покупке.

.

Обновление от 24.05.2017 Ver.3.23(Ver.3.22) (УФ, 8.3)! 

  • Исправлена ошибка при отображении и отборе данных в динамическом списке на закладке "Объекты, которые будут удалены". Ранее, в конфигурациях, у которых стояло в свойствах конфигурации, режим совместимости 8.3.8 и выше, возникала ошибка.

Обновление от 01.11.2016 Ver.3.21, 3.16, 3.17!

  • Добавлена возможность удалять зацикленные (т.е. ссылающиеся друг на друга ссылки) неиспользуемые элементы в справочниках/ПВХ. Например, номенклатура и единица измерения - они ссылаются друг на друга, и ранее, их удалить нельзя было. Теперь система удаляет их после дополнительной проверки, которая немного увеличивает время удаления неиспользуемых элементов.

Обновление от 01.09.2016 Ver.3.20 (такси)!

  • Улучшен механизм отображения данных, которые будут удалены (просмотр объектов). Теперь данные можно сразу просмотреть с помощью динамического списка, тем более, при отображении будет учтен отбор, который наложен на выбранный объект метаданных. Это полезно при просмотре больших объемов данных. Для отображения данных нужно объект метаданных выбрать в дереве объектов.

Обновление от 27.05.2016 Ver.3.17 (такси)!

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

Обновление от 16.01.2016 Ver.3.16, 3.15!

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

Обновление от 27.05.2015 Ver.3.15, 3.14!

  • Исправлена ошибка при быстрой очистке регистров сведений (флаг "Полностью очищать регистры сведений" установлен).
  • Мелкие исправления.

Обновление от 29.03.2015 Ver.3.13, 3.14 (УФ)!

  • Исправлена ошибка "Не найдено поле Предопределенный" при выборке данных из бизнес-процессов, планов обменов.
  • Исправлена ошибка при выборке данных из ПВХ (брался реквизит "ТипЗначения").

Обновление от 16.01.2015 Ver.3.13 (УФ)!

  • Одна обработка для управляемого приложения разделена на 2 - для платформы 8.2 и платформы 8.3.
  • Исправлены проблемы при быстром выборе видов объектов в дереве.
  • Мелкие доработки и устранение недочетов. 

Гарантия возврата денег

Гарантия возврата денег

ООО "Инфостарт" гарантирует Вам 100% возврат оплаты, если программа не соответствует заявленному функционалу из описания. Деньги можно вернуть в полном объеме, если вы заявите об этом течение 14-ти дней со дня поступления денег на наш счет.

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

Для возврата оплаты просто свяжитесь с нами.

Скачать файлы

Наименование Файл Версия Размер
Удаление данных с отбором и просмотром дерева ссылок (для обычного приложение - БП 2, УТ 10, ЗУП 2.5, УПП 1.6 и прочие)
01.11.2016
3.16 2990 руб.

Моментальная
доставка

Удаление данных с отбором и просмотром дерева ссылок (для управляемого приложения, для платформ 8.2... - БП 3, УТ 11, УПП 2, ЗУП 3 и прочие)
01.11.2016
3.17 2990 руб.

Моментальная
доставка

Удаление данных с отбором и просмотром дерева ссылок (для управляемого приложения/"такси", для платформ 8.3... - БП 3, УТ 11, УПП 2, ЗУП 3, Розница 2.2, УНФ 1.6 и прочие)
21.05.2017
3.22 2990 руб.

Моментальная
доставка

1 час тех.поддержки
04.04.2017
1500 руб.

См. также

PowerTools от 1 000
Комментарии
1. andrey dyak (dyak84) 25.02.13 13:19 Сейчас в теме
Автор подскажите как со скоростю работы обработки в больших информационых базах, есть ли возможность остановки работы обработки после нажатия кнопки выполнить. Зарание спасибо за ответ
2. Belomor (Belomor) 86 25.02.13 14:54 Сейчас в теме
Спасибо большое за обработку - в наследство досталась баз с ~500000 помеченными на удаление объектами, штатно почистить не получается, а с твоей обработкой потихоньку чищу
3. Belomor (Belomor) 86 25.02.13 14:55 Сейчас в теме
(1) dyak84, можно ограничивать по периодам и не только по ним
4. Дмитрий Топчий (hakerxp) 750 25.02.13 18:13 Сейчас в теме
Про скорость удаления: тестировал на базе в 50 гигов на SQL server (БД расположена была на внешнем винте на 5400об/мин, 16гб оперативы, Xeon, 2,3Гц), удалял документы по подразделению с очисткой всех реквизитов в связанных объектах(галка на форме) (очистка связанных РС,очистка движений)(самый долгий процесс) в транзакции. Удалено было документов около 51 000, время затрачено - 4 часа 1 мин.
Отмену можно делать как всегда Ctrl+Break
sergiobargio1; +1 Ответить
5. Sergio Bargio (sergiobargio1) 116 27.02.13 13:43 Сейчас в теме
Спасибо. Скажите, пожалуйста, а возможно ли почистить с помощью Вашей обработки бухгалтерский регистр по определённому условию (например все записи, в которых ВидСубконто1 является ссылкой на справочникОбъектСтроительства и значение этого Субконто1 принадлежит определённой родительской папке в справочнике ОбъектыСтроительства или не заполнено вообще)? Спасибо.
6. Дмитрий Топчий (hakerxp) 750 27.02.13 13:52 Сейчас в теме
(5) Система такая: Регистры накопления/бухгалтерии/расчетов являются всегда подчиненными какому-либо документу и при удалении документа движения так же должны удаляться (как должно быть!))) Поэтому эти регистры при удалении документов очищаются автоматически (с отбором по регистратору). Следовательно, отбор нужно накладывать на документ-регистратор т.к. движения формируют его реквизиты табличных частей. Но! Я еще дорабатываю возможность фильтрации по реквизитам таб. частей и скоро будет новая версия.
7. Sergio Bargio (sergiobargio1) 116 27.02.13 15:23 Сейчас в теме
(6) hakerxp, спасибо. однако засада как раз в том, что в бухгалтерском регистре присутствуют несколько записей из табличной части одного документа, например "ПТиУ". возможно ли, что бы в регистре бухгалтерии остались все корректные записи из табличной части документа (не удовлетворяющие условию отбора), а вот "некорректные" (удовлетворяющие условию отбора) удалить из регистра бухгалтерии? Или с помощью этой обработки бухгалтерский регистр вообще не чистится?
8. Дмитрий Топчий (hakerxp) 750 27.02.13 15:34 Сейчас в теме
Или с помощью этой обработки бухгалтерский регистр вообще не чистится?
Регистр бухгалтерии чистится как движение документа (при удалении документа удаляется и его движения, в регистре бухгалтерии тоже с отбором по регистратору).
возможно ли, что бы в регистре бухгалтерии остались все корректные записи из табличной части документа (не удовлетворяющие условию отбора), а вот "некорректные" (удовлетворяющие условию отбора) удалить из регистра бухгалтерии?
- насколько я знаю, записи в регистре подчиненные одному регистратору могут либо существовать все либо вообще не быть ни одной. В режиме обмена можно попробовать удалить, но моя обработка удаляет с отбором по ссылке в регистре бухгалтерии/накопления/расчетов и подчиненных регистров сведений. Отдельные записи в регистрах бухгалтерии/накопления/расчета моей обработкой не удаляются при не удалении документа-регистратора!
9. Максим Анпилов (Mx00) 132 13.03.13 01:21 Сейчас в теме
Продолжу про регистры с методом записи «Подчинен регистратору»
Перенес данные из ЗиК в ЗУП (при этом перенеслись данные за январь и февраль 2013)
при переносе создаются документы "Перенос данных"
в самих документах нет данных, они "хранятся" в регистрах
мне нужно удалить записи регистров относящиеся к 2013-му году
если будет возможность подумай над такой задачей :-)
10. Дмитрий Топчий (hakerxp) 750 13.03.13 08:39 Сейчас в теме
(9)Код открытый, можете самостоятельно изменить как Вам угодно.
11. Сергей Маслов (LexSeIch) 182 15.03.13 05:25 Сейчас в теме
Мир этому дому!
Интересно - взял на заметку.
12. Anya Yakushina (Little-ann) 13 18.03.13 10:57 Сейчас в теме
Полезно, чистильщики всегда нужны, тем более с возможностью отборов.
13. ivanov660 ivanov660 (ivanov660) 330 23.03.13 19:12 Сейчас в теме
А интерфейс только для толстого клиента? Для тонкого планируете обновить? Было бы интересно посмотреть на данную реализацию.
14. Дмитрий (Dim4ik) 29.04.13 08:08 Сейчас в теме
Есть база с несколькими учреждениями. Возможно ли вашей обработкой удалить одно учреждение из базы и все справочники, документы, регистры на которые ссылается?
15. Дмитрий Топчий (hakerxp) 750 29.04.13 08:20 Сейчас в теме
16. Дмитрий (Dim4ik) 29.04.13 08:29 Сейчас в теме
hakerxp, А как это корректно сделать?
17. Дмитрий Топчий (hakerxp) 750 29.04.13 08:38 Сейчас в теме
Во-первых, сразу сделайте бэкап.
Во-вторых, берем выделяем тип документов которые будут удаляться. Ставим отбор по учереждению. Применяем отбор на все документы через правую кнопку "Установить для всех ..." (отбор установиться для тех документов у которых есть указанный в отборе реквизит "учреждение") Ставим отбор по периоду для всех документов. Желательно удалять порциями по периоду если база большая (например, по 3-6 месяцев). Ставим галки "Очищать связанные записи в регистрах сведений". При таких настройках буду удалены все документы, которые подходят под отбор и их движения. Данные в регистрах сведений независимых нужно чистить осмотрительно (там наверно нет реквизита "учереждение". А если есть смело ставим отбор по учреждению и удаляем записи). Еще раз прочтите справку и описание к обработке.
18. Дмитрий (Dim4ik) 29.04.13 08:45 Сейчас в теме
Спасибо! База не большая. Была свернута на 31.12.12.
19. Дмитрий (Dim4ik) 29.04.13 09:43 Сейчас в теме
Удаляются только помеченные на удаление??
Было бы удобно добавить в форме "показать связанные объекты" кнопку "пометить на удаление все". Тогда, можно пометить на удаление учреждение, потом выбрать связанные объекты, их пометить на удаление, и после удалить, но на них тоже могут ссылаться другие объекты, у которых нет реквизита учреждение.
20. Дмитрий Топчий (hakerxp) 750 29.04.13 09:49 Сейчас в теме
Обработка удаляет все объекты, если снята галка "Только помеченные на удаления". Читайте ВНИМАТЕЛЬНО описание и инструкции! Пометки на удаления не ставит!!!
21. vicmos victor (vicmos) 40 29.04.13 17:05 Сейчас в теме
22. Владислав Игнатенко (fuser) 3 01.05.13 10:19 Сейчас в теме
Конфигурация БП 1.6
Отметил все документы

Нажимаю "Удалить объекты без просмотра (быстро)"
Получаю сообщение:
01.05.2013 13:48:48 Начат процесс удаления выбранных объектов...
01.05.2013 13:48:48 Отобрано объектов: 923 Документ.АвансовыйОтчет Удаление...
Поле объекта не обнаружено (Ссылка)

ошибка в строке 620
УдалитьВыбранныеОбъекты(СтрокаТЗ.Ссылка);

У СтрокаТЗ нет реквизита Ссылка!

Нажимаю "Показать отобранные объекты"
Получаю:
{Форма.Форма.Форма(701)}: Преобразование значения к типу Булево не может быть выполнено
Если СтрокаТЗ.ПометкаУдаления Тогда


Смотрел в отладчике:
СтрокаТЗ.ПометкаУдаления = Неопределено
СтрокаТЗ.ТипОбъекта = "Документ.АвансовыйОтчет" (Строка)

Что делаю не так?
23. Гость 09.05.13 11:54 Сейчас в теме
Добрый день.
а не подскажите как установить отбор по пометке удаления в регистре сведений, если объект отбора имеет множественный тип? если к примеру выбрать объект.пометкаудаления = нужный тип данных, то отбор не срабатывает
24. Дмитрий Топчий (hakerxp) 750 09.05.13 12:55 Сейчас в теме
(23) Что-то я вас не понял... в регистре сведений нет пометки удаления. Опишите более подробно что вам нужно, можно на почту.
25. moreZ moreZ (moreZ) 11 09.05.13 13:45 Сейчас в теме
Поправил, для файловой версии работает. Ошибка в Ссылке(22) fuser,


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

Если ВыполнятьВТранзакции Тогда
НачатьТранзакцию();
КонецЕсли;

Для каждого Стр Из ДеревоОбъектов.Строки Цикл
Для каждого СтрокаДерево Из Стр.Строки Цикл
Если СтрокаДерево.Пометка И СтрокаДерево.Родитель<>Неопределено Тогда
ОбработкаПрерыванияПользователя();
ИмяОбъекта=СтрокаДерево.ИмяОбъекта;
ИмяСКД=СтрокаДерево.ИмяДляСКД;
ПолноеИмя=СтрокаДерево.Тип+"."+ИмяОбъекта;
НайденныеСсылки=Новый ТаблицаЗначений;
Если ПолностьюОчищатьРегистрыСведений И Найти(ПолноеИмя,"РегистрСведений")>0 Тогда
Набор=РегистрыСведений[ИмяОбъекта].СоздатьНаборЗаписей();
попытка
Набор.Записать();
Исключение КонецПопытки;
Сообщить(Строка(ТекущаяДата())+" Обработан "+ПолноеИмя);
Продолжить;
КонецЕсли;

ТЗ=СформироватьТЗпоСКД(СтруктураСКД[ИмяСКД]);
Сообщить(Строка(ТекущаяДата())+" Отобрано объектов: "+Строка(ТЗ.Количество())+" "+ПолноеИмя+" Удаление...");


Если Найти(ПолноеИмя,"РегистрСведений")>0 Тогда
ОчиститьРегистрСведений(ТЗ,ПолноеИмя);
Сообщить(Строка(ТекущаяДата())+" Обработан "+ПолноеИмя);
Продолжить;
КонецЕсли;

Если ПроверкаСсылочности Тогда
попытка
НайденныеСсылки=НайтиПоСсылкам(ТЗ.ВыгрузитьКолонку("Ref"));
Исключение КонецПопытки;
КонецЕсли;
Кол=0;
Удалено=0;

Если ОчищатьСсылки ИЛИ ОчищатьСвязанныеРегистрыСведений Тогда
Попытка
МассивСсылок=ТЗ.ВыгрузитьКолонку("Ref");
Исключение КонецПопытки;
ФлагОчистки=ОчиститьСсылки(МассивСсылок);
Если НЕ ФлагОчистки Тогда
Сообщить(Строка(ТекущаяДата())+" Процесс удаления прерван из-за ошибки очистки реквизитов!");
Продолжить;
КонецЕсли;
КонецЕсли;

Попытка
Для каждого СтрокаТЗ Из ТЗ Цикл
ОбработкаПрерыванияПользователя();
Кол=Кол+1;
Если ПроверкаСсылочности Тогда
Отбор=Новый Структура("Ссылка",СтрокаТЗ.Ref);
КолСсылок=НайденныеСсылки.НайтиСтроки(Отбор).Количество();
Отбор=Новый Структура("Данные",СтрокаТЗ.Ref);
КолСсылок=КолСсылок-НайденныеСсылки.НайтиСтроки(Отбор).Количество();
Если КолСсылок=0 Тогда
УдалитьВыбранныеОбъекты(СтрокаТЗ.Ref);
Удалено=Удалено+1;
ВсегоУдалено=ВсегоУдалено+1;
КонецЕсли;
Иначе
УдалитьВыбранныеОбъекты(СтрокаТЗ.Ref);
Удалено=Удалено+1;
ВсегоУдалено=ВсегоУдалено+1;
КонецЕсли;
Состояние("Обработано "+Строка(Кол)+" из "+Строка(ТЗ.Количество())+" Удалено: "+Строка(Удалено));
КонецЦикла;
Сообщить(Строка(ТекущаяДата())+" Обработан "+ПолноеИмя+" Удалено: "+Строка(Удалено));
Исключение
Сообщить(ИнформацияОбОшибке().Описание);
Если ВыполнятьВТранзакции Тогда
ОтменитьТранзакцию();
КонецЕсли;
Возврат;
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
Если ВыполнятьВТранзакции Тогда
ЗафиксироватьТранзакцию();
КонецЕсли;
Сообщить(Строка(ТекущаяДата())+" Процесс удаления завершен! Всего удалено объектов: "+Строка(ВсегоУдалено)+" Затраченное время: "+ОпределитьВремяРег(ТекВРемя));
КонецПроцедуры
26. Олег Шокин (skiller3000) 120 09.05.13 20:26 Сейчас в теме
собственно надо убрать записи в регистре сведений если объект помечен на удалениие.
ну например в торговле есть рег объектыдоступа документов, так вот, пытаюсь удалить записи относящиеся к помеченным на удаление объектам.
27. Дмитрий Топчий (hakerxp) 750 09.05.13 21:20 Сейчас в теме
Когда делаете отбор по измерениям данного регистра есть возможность указать в отборе типа "измерение".ПометкаУдаления=истина
28. Олег Шокин (skiller3000) 120 09.05.13 22:26 Сейчас в теме
Таки да, извиняюсь, спасибо. почему то днем не получалось, вообще все попадало в выборку.
А тогда уж заодно, тут правку выложили, не посмотрите, актуальна ли она?
29. Олег Шокин (skiller3000) 120 09.05.13 22:27 Сейчас в теме
и в таблице по кнопке показать отобраные объекты не работает копирование, может поправите тоже?
30. Snike Valmon (Snike) 20.05.13 05:47 Сейчас в теме
во время удаления выдает:

{Форма.Форма.Форма(701)}: Преобразование значения к типу Булево не может быть выполнено
Если СтрокаТЗ.ПометкаУдаления Тогда

в чем может быть причина?
31. Серега (serezhick) 22.05.13 16:11 Сейчас в теме
нужно удалить все док-ты по одной их фирм. как сделать не нашел (
32. Дмитрий Топчий (hakerxp) 750 22.05.13 16:21 Сейчас в теме
Вы справку и описание обработки читали?
33. Марат Нафиков (Jetoo) 54 24.05.13 12:12 Сейчас в теме
На 8.1 бы ее попробовать...
34. Дмитрий Топчий (hakerxp) 750 24.05.13 12:16 Сейчас в теме
Создаете обработку под 8.1 и переносите код из обычной формы. Может и будет работать, я не проверял.
35. Марат Нафиков (Jetoo) 54 24.05.13 13:08 Сейчас в теме
Тогда в пояснении уберите "Платформа: 1C: Предприятие 8.1".
36. Владимир Клименко (KliMich) 26.05.13 23:09 Сейчас в теме
Спасибо! Как раз понадобилась.
У клиента километры помеченых на удаление объектов ...
37. mixa_gr wer (mixa_gr) 53 07.06.13 10:12 Сейчас в теме
не работает Ваша обработка.
38. Дмитрий Топчий (hakerxp) 750 07.06.13 10:16 Сейчас в теме
Из Вашего комментария все понятно)
39. Маргарита Михайлова (margo_m09) 17.06.13 13:56 Сейчас в теме
Во-первых, сразу сделайте бэкап.
Во-вторых, берем выделяем тип документов которые будут удаляться. Ставим отбор по учереждению. Применяем отбор на все документы через правую кнопку "Установить для всех ..." (отбор установиться для тех документов у которых есть указанный в отборе реквизит "учреждение") Ставим отбор по периоду для всех документов. Желательно удалять порциями по периоду если база большая (например, по 3-6 месяцев). Ставим галки "Очищать связанные записи в регистрах сведений". При таких настройках буду удалены все документы, которые подходят под отбор и их движения. Данные в регистрах сведений независимых нужно чистить осмотрительно (там наверно нет реквизита "учереждение". А если есть смело ставим отбор по учреждению и удаляем записи). Еще раз прочтите справку и описание к обработке. а можно просто выбирать конкретные данные которые нужно удалить из регистра
40. Светлана Гильман (SvetLanaGil) 03.07.13 15:15 Сейчас в теме
Отличная чистилка! В УТ11 всегда проблеммы удаления с ключами аналитики, а тут все на раз удаляет! Спасибо!
41. Алексей Т. (CratosX) 98 15.08.13 17:53 Сейчас в теме
(0) публикация обновлена 02.08.2013 12:13, изменялся ли файл?
42. Евгений Столярский (Mastekor) 27.08.13 12:18 Сейчас в теме
43. Дмитрий Топчий (hakerxp) 750 27.08.13 13:55 Сейчас в теме
(42) Скопируйте код и элементы, реквизиты в пустую обработку, созданную в 1с 8.1 и должно работать, позже будет для 8.1
44. Дмитрий Топчий (hakerxp) 750 19.09.13 17:31 Сейчас в теме
Обновление от 19.09.2013 Версия 1.8!

- Используетсмя привелегированный режим при работе с данными, ускорен процесс обработки и удаления;

- Создана обработка для управляемого приложения (подходит для БП 3, УТ 11 и т.д.);

Все кто купил пишем на почту - вышлю обновления!

Обновление от 17.09.2013 Версия 1.7!

- Модернизирован код, увеличина скорость удаления и очистки ссылок;

- Изменен интерфейс просмотра ссылок;

- Добавлена возможность установки пометки на удаление, если не нужно удалять;

- Исправлены мелкие ошибки;
45. Дмитрий Топчий (hakerxp) 750 21.09.13 09:40 Сейчас в теме
Обновление от 21.09.2013 Версия 1.9!

- Добавлен отбор по реквизитам табличных частей для каждого вида объекта;

- Исправлена ошибка "Ошибка создания источника доступных настроек компановки данных" в управляемой форме;

Все кто купил пишем на почту - вышлю обновления!
46. Дмитрий Топчий (hakerxp) 750 01.10.13 09:48 Сейчас в теме
Обновление от 01.10.2013 Версия 2.0!
- Исправлена ошибка при очистке ссылок в реквизитах адресации в задачах;
- Исправлена ошибка при установке отборов при очистке ссылок в связанных периодических регистрах сведений;
Все кто купил пишем на почту - вышлю обновления!
47. Павел Рыжиков (RPV) 20.10.13 18:10 Сейчас в теме
Позволяет ли эта обработка производить в монопольном и/или не монопольном режиме удаление пользователям, у которых отсутствуют полные права? Пока не нашел такую обработку, а очень надо!!!
48. Дмитрий Топчий (hakerxp) 750 20.10.13 18:30 Сейчас в теме
(47), удаление идет в не монопольном режиме. В коде используется привилегированный режим при работе процедур т.е. проверка прав выключается для увеличения скорости работы. Можно закоментить строки вызова установки привилегированного режима и будет идти процесс удаления с учетом прав.
49. Павел Рыжиков (RPV) 20.10.13 19:19 Сейчас в теме
(48) hakerxp, а нельзя ли этот механизм встроить в обработку, чтоб пользователь мог выбирать как ему надо ... И я бы с радостью приобрел Вашу обработку.
50. Павел Рыжиков (RPV) 20.10.13 20:25 Сейчас в теме
(48) hakerxp,
При ограниченных правах у пользователя выдает ошибку при активации строки в удаляемых объектах.
Процедура ТаблицаРезультатПриАктивизацииСтроки(Элемент)
Если ЭлементыФормы.ТаблицаРезультат.ТекущиеДанные<>Неопределено И
Элемент.ТекущаяКолонка.Имя="Ссылка" Тогда
СсылкаОбъекта=ЭлементыФормы.ТаблицаРезультат.ТекущиеДанные.Ссылка;
ТаблицаСсылок.Очистить();
МассивСсылок=Новый Массив;
МассивСсылок.Добавить(СсылкаОбъекта);
Состояние("Поиск ссылок на объект <"+Строка(СсылкаОбъекта)+">");
УстановитьПривилегированныйРежим(истина);//tsv
Найденныессылки=НайтиПоСсылкам(МассивСсылок);
Для каждого СтрокаТЗ Из Найденныессылки Цикл
СтрокаСсылок=ТаблицаСсылок.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаСсылок,СтрокаТЗ);
КонецЦикла;
УстановитьПривилегированныйРежим(ложь);//tsv
КонецЕсли;
КонецПроцедуры

для исправления см комментарий tsv

Так же было бы хорошо иметь функции СохранитьЗначение(при закрытии формы) и ВосстановитьЗначение (при открытии формы) для галочек таких как КонтрольСсылочности...

Хорошо бы ещё добавить такой режим работы (галочку, например) что бы пользователи без полных прав при всём желании не могли удалить объекты на которые есть ссылки
51. Дмитрий Топчий (hakerxp) 750 21.10.13 08:06 Сейчас в теме
(50), спасибо за предложения. Но насчет "СохранитьЗначение" для галки "Контроль ссылочности" - я специально не делал сохранение значений т.к. удаление объектов нужно не очень часто и чтоб человек по незнанию или невниманию не начал удалять объекты без контроля ссылочности или еще с какими-то еще настройками.
По поводу настройки вкл/выкл привилегированного режима - добавлю в скором времени.
52. Дмитрий Топчий (hakerxp) 750 29.10.13 10:05 Сейчас в теме
Обновление от 29.10.2013 Версия 2.1!
- Добавлена возможность включать привилегированный режим при удалении данных (отключения проверки прав);
Все кто купил пишем на почту - вышлю обновления!
53. Павел Рыжиков (RPV) 30.10.13 00:39 Сейчас в теме
(52) hakerxp, Спасибо! А что если еще предусмотреть, чтоб пользователи, не имеющие полных прав и имеющие доступ только к определенным организациям могли удалять документы и им подобные.. только по "своим" организациям, к которым у них предоставлен доступ!?
54. Дмитрий Топчий (hakerxp) 750 30.10.13 10:55 Сейчас в теме
(53), для этого лучше используйте отбор по организации.
55. Дмитрий Топчий (hakerxp) 750 26.11.13 17:34 Сейчас в теме
Обновление от 26.11.2013 Версия 2.2!
- Исправлены ошибки (Поле "Ссылка"/"ПометкаУдаления" не найдена) при удалении данных в регистрах сведений;
- Добавлена возможность удалять бизнес-процессы;

Все кто купил пишем на почту - вышлю обновления!
56. Дмитрий Топчий (hakerxp) 750 20.12.13 13:14 Сейчас в теме
Обновление от 20.12.2013 Версия 3.0 (пока обычное приложение, управляемое -в процессе)!
- Полностью переработан код обработки и возможности. Более подробно читаем в теме обработки. Пока только для обычного приложения.

Все кто купил пишем на почту - вышлю обновления!
57. Роман Иванов (Prelude) 26 13.01.14 13:41 Сейчас в теме
Можно обновления в почту?
58. Павел С (pavel_pss) 159 27.01.14 14:07 Сейчас в теме
59. pulpik (pulpik) 105 14.02.14 15:09 Сейчас в теме
Добрый день, купил вашу обработку, второй день пытаюсь пометить на удаление объекты.
Не подскажите оптимальные настройки для очистки базы от всех документов по нескольким фирмам. Если делаю уровень вложенности 2 то не помечает, а поставил рекурсивно, уж обрабатывается 6 часов и не видно когда закончится) спасибо
60. pulpik (pulpik) 105 14.02.14 15:10 Сейчас в теме
61. Дмитрий Топчий (hakerxp) 750 15.02.14 08:24 Сейчас в теме
(59) придерживайтесь таких правил:
1. Делаем удаление порциями (выделяем в дереве несколько видов объектов), чтоб лучше контролировать процесс поиска ссылок и удаления
2. Устанавливаем отборы на выбранные виды объектов;
3. Если нужно удалить документы, то достаточно поставить уровень поиска ссылок 2. После, уже в дереве ссылок для каждого вида смотреть есть ли еще ссылки. Используем контекстное меню для построения ветки дерева для выбранного объекта в дереве ссылок
4. Рекурсию желательно применять только если объем удаляемых данных небольшой, иначе система может очень долго думать.

Если будут еще вопросы пишите лучше на почту, указанную на форме обработки внизу.
62. Роман Солоницын (roman-sln) 41 24.02.14 17:30 Сейчас в теме
Добрый день.Можнокаким-нибудь способом, используя вашу обработку, удалить номенклатуру, не учавствующуюв движениях? Флаг "Контроль ссылочности" не помогает т.к. есть ссылки из справочника присоединенных файлов.
63. Антон Собейко (sobeyko2008) 6 13.03.14 12:20 Сейчас в теме
Ух опасная обработка! Если ни в те руки попадет, то пиши пропало.
64. Дмитрий Топчий (hakerxp) 750 13.03.14 12:49 Сейчас в теме
(63), так можно и про половину всех обработок написать "Если ни в те руки попадет")))
65. Дмитрий Топчий (hakerxp) 750 14.04.14 13:18 Сейчас в теме
Обновление от 30.03.2014 Версия 3.3(УФ), 3.2 (ОФ)!
- Появилась возможность удалять неиспользуемые элементы справочников/ПВХ (те, на которые в данный момент нет ни одной ссылки). Для этого нужно нажать на кнопку "Удалить неиспользуемые элементы" - система проанализирует наличие ссылок на выбранных справочниках/ПВХ (нужно указать в дереве) и удалит, только те, на которые нет ссылок. Если на элемент ссылаются только независимые регистры сведений, то данный элемент будет удален, а ссылающиеся записи будут очищены из регистров сведений!
66. Дмитрий Топчий (hakerxp) 750 15.04.14 14:47 Сейчас в теме
Обновление от 15.04.2014 Версия 3.4!
- Теперь данные удаляются порциями, по 1000 объектов (или как установите). Это уменьшает время блокирования данных и уменьшает объем данных в памяти, увеличивая скорость выполнения удаления.
- Исправлены проблемы с отборами. Теперь можно использовать группы.
- Улучшена установка общих отборов для нескольких видов объектов. Теперь можно устанавливать и группы и элементы.
- Мелкие исправления и доработки.
67. Дмитрий Топчий (hakerxp) 750 21.07.14 16:47 Сейчас в теме
Обновление от 21.07.2014 Ver.3.6 (УФ), 3.5 (ОФ)!
- Увеличена скорость построения дерева ссылок;
68. Марина Семёнова (SemenovaMarinaV) 23.07.14 16:25 Сейчас в теме
69. Дмитрий Топчий (hakerxp) 750 24.07.14 13:56 Сейчас в теме
Обновление от 24.07.2014 Ver.3.6 (ОФ)!
- Исправлены ошибки при работе в режиме 8.1 или на платформе 8.1;
70. Дмитрий Топчий (hakerxp) 750 25.07.14 18:04 Сейчас в теме
Обновление от 25.07.2014 Ver.3.7 (УФ)!
- Исправлены ошибки при работе в интерфейсе "Такси" (режим модальности - не использовать приводил к ошибкам);
- Форма будет отображаться в компактном режиме.
71. Дмитрий Топчий (hakerxp) 750 29.08.14 16:45 Сейчас в теме
Обновление от 29.08.2014 Ver.3.10!
- Исправлена ошибка при установке общих отборов для выбранных объектов метаданных.
- Теперь можно открыть список любого вида объекта через двойной клик на строке в дереве объектов.
72. Алексей Т. (CratosX) 98 02.09.14 15:58 Сейчас в теме
Какой последний релиз бесплатной версии? Он сейчас распространяется?
73. Дмитрий Топчий (hakerxp) 750 02.09.14 16:02 Сейчас в теме
(72), бесплатной версии уже нет.
74. Дмитрий Топчий (hakerxp) 750 08.09.14 10:43 Сейчас в теме
Обновление от 08.09.2014 Ver.3.11 !
- Добавлена возможность сортировки для каждого вида объектов.
- Увеличена в несколько раз скорость получения данных.
- Теперь в таблице просмотров объектов строки регистров сведений будут отображать текстовое представление ключа записи.
- Данные теперь считываются динамически, что позволяет удалять большое количество данных.
- Увеличена отзывчивость управляемой формы.
75. Olga V (Olga255) 17.09.14 16:36 Сейчас в теме
При удалении вашей обработкой документа Расчет себестоимости, его движения удаляются? Насколько помню, если установить пометку удаления, движения остаются.
76. Дмитрий Топчий (hakerxp) 750 17.09.14 16:49 Сейчас в теме
(75), да, движения удаляются, если документ проведен. В данной обработке свой собственный механизм удаления движений при удалении/пометке на удаление документа.
77. Дмитрий Топчий (hakerxp) 750 18.09.14 15:12 Сейчас в теме
Обновление от 18.09.2014 Ver.3.12!
- Добавлено в дереве объектов строковое представление отборов для каждого вида метаданных;
78. Зоя Сорокина (Soikalv) 16.12.14 14:20 Сейчас в теме
оБРАБОТКА ОКАЗАЛАСЬ ПОЛЕЗНОЙ ДЛЯ УДАЛЕНИЯ ЦЕЛОЙ БАЗЫ В 1С. сПАСИБО
79. Никита Ефремов (Shooroopik111) 116 05.02.15 15:42 Сейчас в теме
Управляемая и обычная формы (подходят для БП 1.6,2.0,3.0 УТ 10, 11, УПП 1.6, 2.0, ЗУП 2.5 и т.д., самописных конфигураций

Для УПП 1.6 не подойдет. Это я Вам точно говорю)
80. Дмитрий Топчий (hakerxp) 750 08.02.15 20:35 Сейчас в теме
81. abadonna.83 (abadonna83) 21.05.15 10:24 Сейчас в теме
Добрый день!

Обработка понравилась . Даже не жалко было денег за нее
.
Единственный вопрос к разработчикам.

Можно ли предусмотреть возможность сохранения выбранных объектов в файл для дальнейшего анализа.
82. Yran Kolm (Yran) 10.08.15 09:43 Сейчас в теме
Добрый день!
Для конфигурации 1С:Документооборота 2.0 подойдет?
Там вечная проблема с удалением задач.
83. Дмитрий Топчий (hakerxp) 750 10.08.15 13:29 Сейчас в теме
Здравствуйте! Да, будет работать. Главное правильно выберите версию обработки для конфигурации (управляемое или обычное)
84. Гость 07.10.15 14:38 Сейчас в теме
Добрый день, подойдет ли обработка для 1С 8.3 УТ 11.1
цель: полная чистка базы и узлов.
85. Дмитрий Топчий (hakerxp) 750 08.10.15 07:00 Сейчас в теме
Добрый день! Подойдет, версия для платформы 8.3... При начале работы с обработкой прочтите инструкцию и рекомендации.
86. Андрей Киселев (FOXKILLER33) 03.12.15 20:14 Сейчас в теме
Подскажите у меня проблема с базой при загрузки в mssql,
появляется ошибка
Microsoft SQL Server Native Client 11.0: Выполнение инструкции CREATE UNIQUE INDEX прервано, поскольку обнаружен повторяющийся ключ для объекта с именем "dbo._InfoRgSL17451" и индекса с именем "_InfoR17451_ByDims_RRR". Повторяющееся значение ключа: (0, 0xa32cdb6b93ebd00f11e2403ea03ec27e, 0x9a929bc615b8590911e1c21c5ad4aadd, 0x00000000000000000000000000000000).
HRESULT=80040E2F, SQLSrvr: SQLSTATE=23000, state=1, Severity=10, native=1505, line=1

Поможет ли ваша обработка решить данную проблему и как
87. Дмитрий Топчий (hakerxp) 750 04.12.15 09:08 Сейчас в теме
(86), это у Вас проблема на уровне таблиц и записей базы. Моя обработка вам не поможет в данном вопросе.
88. Андрей Киселев (FOXKILLER33) 04.12.15 11:20 Сейчас в теме
(87) hakerxp,
Уже разобрался, спасибо
89. Стасилло Аверкин (21stas) 95 16.12.15 08:59 Сейчас в теме
Купил "УдалениеОбъектовСИерархией3 (версия 3.15, для управляемого приложения/"такси", для платформ 8.3... - БП 3, УТ 11, УПП 2, ЗУП 3 и т.д.)"
Две другие за отдельную плату, т.е. за каждый вид обработки нужно платить отдельно?
90. Дмитрий Топчий (hakerxp) 750 16.12.15 13:45 Сейчас в теме
Если вы купили для платформы 8.3 и управляемого - это один код (сделаная мной работа). Для обычного приложения - это другая обработка и другой код. Следовательно, каждый вид обработки приобретается отдельно.
91. Олег Ортман (ortpro) 14.01.16 10:46 Сейчас в теме
Выбрать строки, которые можно удалить - на большом количестве записей в дереве ооооооочень долго думает. Можно что-нибудь сделать?!!
Формирование дерева в несколько раз быстрее, получается, чем "Выбрать строки, которые можно удалить".
92. Дмитрий Топчий (hakerxp) 750 14.01.16 14:14 Сейчас в теме
(91), если стоит проверка на ссылочность при удалении в обработке, то система еще для выбранных ссылок ищет ссылки, что не удалить лишнего, а это еще дополнительное время. Ускорить данный процесс ни как нельзя (за все отвечает платформа 1С). Единственное - отключить проверку на ссылочность при удалении или выбрать небольшое количество ссылок.
Я рекомендую всем делать удаление порционно и/или для нескольких видов объектов максимум.
93. Олег Ортман (ortpro) 14.01.16 17:56 Сейчас в теме
(92) hakerxp, Вы не правильно поняли....

Объясню по-другому....
На главной странице ставлю флажок, например, на документе "Отчет о розничных продажах"
Устанавливаю период. Жму "Построить дерево ссылок".
После того как дерево сформировано (а в нем на первом уровне получается около 80000 документов) жму кнопку "Выбрать строки, которые можно удалить"
и абзац..... Ждал час - не дождался, пока обработка проставит флажки на документы, которые можно удалить....
94. Александр Ануфриев (Digus2015) 06.02.16 20:31 Сейчас в теме
Почему--то обновление не пришло по почте....
95. Дмитрий Топчий (hakerxp) 750 07.02.16 07:57 Сейчас в теме
(94), напишите, пожалуйста, номер заказа. Если вы приобретали более года назад, то обновленную обработку нужно купить заново, если вам нужен новый функционал.
96. Виктор Бас (ViktorBas) 06.04.16 09:04 Сейчас в теме
Рассчитывал на очистку регистров накопления. Почему-то не реализовано ...
97. Дмитрий Топчий (hakerxp) 750 06.04.16 09:40 Сейчас в теме
(96), будет реализовано в ближайшее время. Обновление будет выслано на почту. Спасибо.
98. Иван В (isvelichko) 08.09.16 05:41 Сейчас в теме
А можно ли данной обработкой удалить документ корректировка записей регистров, с отбором по организации?
99. Дмитрий Топчий (hakerxp) 750 08.09.16 17:00 Сейчас в теме
(98), если регистратором выступает данный документ, то да. Я точно не помню как там формируются записи в регистрах. Сейчас на море, не могу глянуть.
Оставьте свое сообщение