gifts2017

Удаление данных с отбором и построением дерева ссылок в базах 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 продаж за все время, что является залогом популярности, надежности в работе, и признанием других покупателей. (Обновление от 01.11.2016, версия 3.21(такси),3.17, 3.16(ОФ))

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

- Быстрый и продуманный алгоритм поиска ссылок и построения дерева;

- Порционное удаление данных (уменьшает количество накладываемых блокировок при удалении данных).

- Построение дерева ссылок на объекты рекурсивно или с указанием конечного уровня построения;

- Исключено зацикливание в ветках дерева т.к. происходит проверка;

- Любые отборы на любые виды объектов на любые реквизиты объекта;

- Контроль ссылочности при удалении или без него;

- Возможность выполнение процесса удаления в транзакции;

- Отображение пиктограмм для помеченных объектов (отдельная кнопка);

- Возможность выборочного удаления любого объекта/записи независимого регистра сведений;

- Возможность удаления неиспользуемых элементов справочника/ПВХ с очисткой связанных регистров сведений (если больше нет других ссылок);

- Выбор количества ссылок для построения дерева;

- Возможность быстрого выбора объектов которые точно можно удалить (без ссылок);

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

- Возможность сохранения настроек;

Примечания!

 Скорость поиска ссылок и построения дерева зависит от мощности компьютера выбранного уровня поиска ссылок количества начальных выбранных ссылок от количества данных в БД.

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

 - Кнопка "Отобразить пометки на удаление" служит для запроса флага "ПометкаУдаления " каждого объекта дерева и отображения картинки по данному флагу. Данная процедура занимает время поэтому была исключена из процесса формирования дерева ссылок и вынесена отдельной командой.

 - Для удаления данных нужны полные права!

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

- Построение дерева ссылок с глубиной вложения до 9 уровня. Уровень поиска ссылок можно указывать в поле "Уровень вложенности поиска ссылок" (от 1 до 9). Указание большего числа чем 3-4 может привести к длительному поиску ссылок на объекты для каждого уровня дерева!

- Есть возможность рекурсивного поиска ссылок пока не будет ссылок на выбранные объекты.

- Порционное удаление данных (уменьшает количество накладываемых блокировок при поиске ссылок и удалении данных). Размер порции удаляемых данных можно редактировать. Чем больше порция, тем больше вероятность наложения большого количества блокировок на данные, увеличения объема хранимых данных в памяти. По-умолчанию - 1000 ссылок/записей.

- Позволяет удалить любые данные (кроме очистки ссылки в константе) с возможностью выбора вида объекта и наложения любого отбора на любой вид объекта выбранный в дереве объектов без монопольного режима. А так же возможность выбора в дереве произвольных объектов для удаления.

- Если установлена галка "Контроль ссылочности" то система не даст удалить данные если есть ссылки на данный объект (для документов если он проведен и есть ссылки на движения но при удалении они игнорируются и очищаются чтоб не было ). При этом система делает дополнительный поиск ссылок для предотвращения удаления данных на которые есть ссылки.

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

- Если установлен флаг "Выполнять процесс удаления и очистки в транзакции" то процесс удаления будет происходить в транзакции. В случае сбоя данные не будут удалены. Если установлен флаг "Прекращать процесс удаления если не удалось удалить объект/запись" то при нахождении объекта или записи которую не получилось удалить система прекратит процесс удаления. При это транзакция будет отменена.

- Если установлен флаг "Отобрать только помеченные на удаление" то будут отобраны все помеченные на удаления объекты которые выбраны в дереве объектов. Данный флаг действует для всех ссылочных объектов!

- Если установлен флаг "Полностью очищать регистры сведений (без использования отбора)" то при удалении данных регистра сведений (если он выбран в дереве видов объектов!) не будет использоваться отборы что увеличит скорость удаления записей в регистре. Использовать с осторожностью!

- Кнопка "Выбрать строки которые можно удалить" позволяет выбрать объекты из дерева ссылок только те объекты на которые точно нет ссылок). Объекты которые можно удалить будут выделены зеленым цветом в колонке "Можно удалить" будет стоять "Да". Если уровень поиска ссылок был например 4. А ветка дерева была построена до 3го уровня то такие данные будут помечены как данные для удаления. Если уровень ветки дерева имеет например на 4м уровне ссылки то такие данные не будут отмечены т.к. система не может точно гарантировать отсутствие ссылок. В строке в колонке "Комментарий" будет написано "Возможно есть ссылки". Для решения данного вопроса можно принудительно проверить ссылки для данной ссылки. Для этого становимся на строку и в контекстном меню дерева выбираем "Построить дерево для выбранной строки" или "Рекурсивно построить дерево для выбранной строки".

- В контекстном меню дерева ссылок пункт "Построить дерево для выбранной строки" для дополнительного построения иерархии ссылок начиная с выбранной строки/ссылки с выбранным уровнем поиска ссылок (указанный уровень должен быть больше чем уровень выбранной строки)

- В контекстном меню дерева ссылок пункт "Рекурсивно построить дерево для выбранной строки" аналогично пункту "Построить дерево для выбранной строки"только поиск происходит рекурсивно;

- Кнопка "Обновить данные" перезаполняет дерево ссылок в зависимости от настроек. Аналогично кнопке "Построить дерево ссылок".

- Поле "Количество выбранных ссылок для удаления" служит для вывода указанного количества ссылок по которым будет происходить построение дерева. Если указан "0" то будут выбраны 100000 первых ссылок/записей для каждого выбранного вида объектов. Например нужно удалить 100 объектов но мы хотим сначала удалить 10 объектов - устанавливаем в данном поле "10".

- При удалении любого документа происходит очистка его движений для того чтоб исключить ситуацию не зависимо от контроля ссылочности!

- Если установлена галка "Для всех объектов" то отбор по периоду будет для всех объектов (документов задач периодических регистров сведений);

- Для каждого объекта можно установить свой произвольный отбор. Удаление будет идти именно по данному отбору!. Если установлен период выборки то данный период примениться как отбор ко ВСЕМ отборам объектов (если установлена галка "Для всех объектов"). Если у данного вида объекта нет такого поля то отбор не будет установлен на данный объект а галка выбора в дереве объектов будет убрана (чтоб случайно не дернуть то что не нужно).

- Для периодических регистров сведений отбор идет только за период отбора (без срезов)!

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

Порядок работы:

1. На странице "Главная" выбираем виды объектов данные которых будем удалять. Если надо то используем отборы.

2. Указываем уровень поиска ссылок и количество объектов для отображения/поиска;

3. Нажимаем "Построить дерево ссылок". Ожидаем.

4. После того как дерево будет построено выбираем данные для удаления. Можно использовать "Выбрать строки которые можно удалить" для отбора данных которые точно можно удалить.

5. Нажимаем "Удалить выбранные объекты" или "Пометить на удаление";

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

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

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

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

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

P.S. Перед покупкой точно узнавайте на какой платформе у Вас работает база данных, для правильного выбора подходящей обработки!

.

Обновление от 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.

- Исправлены проблемы при быстром выборе видов объектов в дереве.

- Мелкие доработки и устранение недочетов. 

Обновление от 18.09.2014 Ver.3.12!

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

Обновление от 08.09.2014 Ver.3.11 !

Добавлена возможность сортировки для каждого вида объектов.

- Увеличена в несколько раз скорость получения данных.

- Теперь в таблице просмотров объектов строки регистров сведений будут отображать текстовое представление ключа записи.

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

- Увеличена отзывчивость управляемой формы.

- Исправлена ошибка при очистке регистров сведений с битыми ссылками.

Обновление от 29.08.2014 Ver.3.10!

- Исправлена ошибка при установке общих отборов для выбранных объектов метаданных.

- Теперь можно открыть список любого вида объекта через двойной клик на строке в дереве объектов.

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

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

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

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

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

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

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

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

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

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

Удаление данных с отбором и просмотром дерева ссылок (для управляемого приложения/"такси", для платформ 8.3... - БП 3, УТ 11, УПП 2, ЗУП 3 и прочие)
02.11.2016
3.21 2500 руб.

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

Продление тех. поддержки на 12 мес.
18.08.2016
2500 руб.

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение

Комментарии

1. andrey dyak (dyak84) 25.02.13 13:19
Автор подскажите как со скоростю работы обработки в больших информационых базах, есть ли возможность остановки работы обработки после нажатия кнопки выполнить. Зарание спасибо за ответ
2. Belomor (Belomor) 25.02.13 14:54
Спасибо большое за обработку - в наследство досталась баз с ~500000 помеченными на удаление объектами, штатно почистить не получается, а с твоей обработкой потихоньку чищу
3. Belomor (Belomor) 25.02.13 14:55
(1) dyak84, можно ограничивать по периодам и не только по ним
4. Дмитрий Топчий (hakerxp) 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) 27.02.13 13:43
Спасибо. Скажите, пожалуйста, а возможно ли почистить с помощью Вашей обработки бухгалтерский регистр по определённому условию (например все записи, в которых ВидСубконто1 является ссылкой на справочникОбъектСтроительства и значение этого Субконто1 принадлежит определённой родительской папке в справочнике ОбъектыСтроительства или не заполнено вообще)? Спасибо.
6. Дмитрий Топчий (hakerxp) 27.02.13 13:52
(5) Система такая: Регистры накопления/бухгалтерии/расчетов являются всегда подчиненными какому-либо документу и при удалении документа движения так же должны удаляться (как должно быть!))) Поэтому эти регистры при удалении документов очищаются автоматически (с отбором по регистратору). Следовательно, отбор нужно накладывать на документ-регистратор т.к. движения формируют его реквизиты табличных частей. Но! Я еще дорабатываю возможность фильтрации по реквизитам таб. частей и скоро будет новая версия.
7. Sergio Bargio (sergiobargio1) 27.02.13 15:23
(6) hakerxp, спасибо. однако засада как раз в том, что в бухгалтерском регистре присутствуют несколько записей из табличной части одного документа, например "ПТиУ". возможно ли, что бы в регистре бухгалтерии остались все корректные записи из табличной части документа (не удовлетворяющие условию отбора), а вот "некорректные" (удовлетворяющие условию отбора) удалить из регистра бухгалтерии? Или с помощью этой обработки бухгалтерский регистр вообще не чистится?
8. Дмитрий Топчий (hakerxp) 27.02.13 15:34
Или с помощью этой обработки бухгалтерский регистр вообще не чистится?
Регистр бухгалтерии чистится как движение документа (при удалении документа удаляется и его движения, в регистре бухгалтерии тоже с отбором по регистратору).
возможно ли, что бы в регистре бухгалтерии остались все корректные записи из табличной части документа (не удовлетворяющие условию отбора), а вот "некорректные" (удовлетворяющие условию отбора) удалить из регистра бухгалтерии?
- насколько я знаю, записи в регистре подчиненные одному регистратору могут либо существовать все либо вообще не быть ни одной. В режиме обмена можно попробовать удалить, но моя обработка удаляет с отбором по ссылке в регистре бухгалтерии/накопления/расчетов и подчиненных регистров сведений. Отдельные записи в регистрах бухгалтерии/накопления/расчета моей обработкой не удаляются при не удалении документа-регистратора!
9. Максим Анпилов (Mx00) 13.03.13 01:21
Продолжу про регистры с методом записи «Подчинен регистратору»
Перенес данные из ЗиК в ЗУП (при этом перенеслись данные за январь и февраль 2013)
при переносе создаются документы "Перенос данных"
в самих документах нет данных, они "хранятся" в регистрах
мне нужно удалить записи регистров относящиеся к 2013-му году
если будет возможность подумай над такой задачей :-)
10. Дмитрий Топчий (hakerxp) 13.03.13 08:39
(9)Код открытый, можете самостоятельно изменить как Вам угодно.
11. Сергей Маслов (LexSeIch) 15.03.13 05:25
Мир этому дому!
Интересно - взял на заметку.
12. Anya Yakushina (Little-ann) 18.03.13 10:57
Полезно, чистильщики всегда нужны, тем более с возможностью отборов.
13. ivanov660 ivanov660 (ivanov660) 23.03.13 19:12
А интерфейс только для толстого клиента? Для тонкого планируете обновить? Было бы интересно посмотреть на данную реализацию.
14. Дмитрий (Dim4ik) 29.04.13 08:08
Есть база с несколькими учреждениями. Возможно ли вашей обработкой удалить одно учреждение из базы и все справочники, документы, регистры на которые ссылается?
15. Дмитрий Топчий (hakerxp) 29.04.13 08:20
16. Дмитрий (Dim4ik) 29.04.13 08:29
hakerxp, А как это корректно сделать?
17. Дмитрий Топчий (hakerxp) 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) 29.04.13 09:49
Обработка удаляет все объекты, если снята галка "Только помеченные на удаления". Читайте ВНИМАТЕЛЬНО описание и инструкции! Пометки на удаления не ставит!!!
21. vicmos victor (vicmos) 29.04.13 17:05
22. Владислав Игнатенко (fuser) 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) 09.05.13 12:55
(23) Что-то я вас не понял... в регистре сведений нет пометки удаления. Опишите более подробно что вам нужно, можно на почту.
25. moreZ moreZ (moreZ) 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) 09.05.13 20:26
собственно надо убрать записи в регистре сведений если объект помечен на удалениие.
ну например в торговле есть рег объектыдоступа документов, так вот, пытаюсь удалить записи относящиеся к помеченным на удаление объектам.
27. Дмитрий Топчий (hakerxp) 09.05.13 21:20
Когда делаете отбор по измерениям данного регистра есть возможность указать в отборе типа "измерение".ПометкаУдаления=истина
28. Олег Шокин (skiller3000) 09.05.13 22:26
Таки да, извиняюсь, спасибо. почему то днем не получалось, вообще все попадало в выборку.
А тогда уж заодно, тут правку выложили, не посмотрите, актуальна ли она?
29. Олег Шокин (skiller3000) 09.05.13 22:27
и в таблице по кнопке показать отобраные объекты не работает копирование, может поправите тоже?
30. Snike Valmon (Snike) 20.05.13 05:47
во время удаления выдает:

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

в чем может быть причина?
31. Серега (serezhick) 22.05.13 16:11
нужно удалить все док-ты по одной их фирм. как сделать не нашел (
32. Дмитрий Топчий (hakerxp) 22.05.13 16:21
Вы справку и описание обработки читали?
33. Марат Нафиков (Jetoo) 24.05.13 12:12
На 8.1 бы ее попробовать...
34. Дмитрий Топчий (hakerxp) 24.05.13 12:16
Создаете обработку под 8.1 и переносите код из обычной формы. Может и будет работать, я не проверял.
35. Марат Нафиков (Jetoo) 24.05.13 13:08
Тогда в пояснении уберите "Платформа: 1C: Предприятие 8.1".
36. Владимир Клименко (KliMich) 26.05.13 23:09
Спасибо! Как раз понадобилась.
У клиента километры помеченых на удаление объектов ...
37. mixa_gr wer (mixa_gr) 07.06.13 10:12
не работает Ваша обработка.
38. Дмитрий Топчий (hakerxp) 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) 15.08.13 17:53
(0) публикация обновлена 02.08.2013 12:13, изменялся ли файл?
42. Евгений Столярский (Mastekor) 27.08.13 12:18
43. Дмитрий Топчий (hakerxp) 27.08.13 13:55
(42) Скопируйте код и элементы, реквизиты в пустую обработку, созданную в 1с 8.1 и должно работать, позже будет для 8.1
44. Дмитрий Топчий (hakerxp) 19.09.13 17:31
Обновление от 19.09.2013 Версия 1.8!

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

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

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

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

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

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

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

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

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

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

Все кто купил пишем на почту - вышлю обновления!
46. Дмитрий Топчий (hakerxp) 01.10.13 09:48
Обновление от 01.10.2013 Версия 2.0!
- Исправлена ошибка при очистке ссылок в реквизитах адресации в задачах;
- Исправлена ошибка при установке отборов при очистке ссылок в связанных периодических регистрах сведений;
Все кто купил пишем на почту - вышлю обновления!
47. Павел Рыжиков (RPV) 20.10.13 18:10
Позволяет ли эта обработка производить в монопольном и/или не монопольном режиме удаление пользователям, у которых отсутствуют полные права? Пока не нашел такую обработку, а очень надо!!!
48. Дмитрий Топчий (hakerxp) 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) 21.10.13 08:06
(50), спасибо за предложения. Но насчет "СохранитьЗначение" для галки "Контроль ссылочности" - я специально не делал сохранение значений т.к. удаление объектов нужно не очень часто и чтоб человек по незнанию или невниманию не начал удалять объекты без контроля ссылочности или еще с какими-то еще настройками.
По поводу настройки вкл/выкл привилегированного режима - добавлю в скором времени.
52. Дмитрий Топчий (hakerxp) 29.10.13 10:05
Обновление от 29.10.2013 Версия 2.1!
- Добавлена возможность включать привилегированный режим при удалении данных (отключения проверки прав);
Все кто купил пишем на почту - вышлю обновления!
53. Павел Рыжиков (RPV) 30.10.13 00:39
(52) hakerxp, Спасибо! А что если еще предусмотреть, чтоб пользователи, не имеющие полных прав и имеющие доступ только к определенным организациям могли удалять документы и им подобные.. только по "своим" организациям, к которым у них предоставлен доступ!?
54. Дмитрий Топчий (hakerxp) 30.10.13 10:55
(53), для этого лучше используйте отбор по организации.
55. Дмитрий Топчий (hakerxp) 26.11.13 17:34
Обновление от 26.11.2013 Версия 2.2!
- Исправлены ошибки (Поле "Ссылка"/"ПометкаУдаления" не найдена) при удалении данных в регистрах сведений;
- Добавлена возможность удалять бизнес-процессы;

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

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

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

Для УПП 1.6 не подойдет. Это я Вам точно говорю)
80. Дмитрий Топчий (hakerxp) 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) 10.08.15 13:29
Здравствуйте! Да, будет работать. Главное правильно выберите версию обработки для конфигурации (управляемое или обычное)
84. Гость 07.10.15 14:38
Добрый день, подойдет ли обработка для 1С 8.3 УТ 11.1
цель: полная чистка базы и узлов.
85. Дмитрий Топчий (hakerxp) 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) 04.12.15 09:08
(86), это у Вас проблема на уровне таблиц и записей базы. Моя обработка вам не поможет в данном вопросе.
88. Андрей Киселев (FOXKILLER33) 04.12.15 11:20
(87) hakerxp,
Уже разобрался, спасибо
89. Стасилло Аверкин (21stas) 16.12.15 08:59
Купил "УдалениеОбъектовСИерархией3 (версия 3.15, для управляемого приложения/"такси", для платформ 8.3... - БП 3, УТ 11, УПП 2, ЗУП 3 и т.д.)"
Две другие за отдельную плату, т.е. за каждый вид обработки нужно платить отдельно?
90. Дмитрий Топчий (hakerxp) 16.12.15 13:45
Если вы купили для платформы 8.3 и управляемого - это один код (сделаная мной работа). Для обычного приложения - это другая обработка и другой код. Следовательно, каждый вид обработки приобретается отдельно.
91. Олег Ортман (ortpro) 14.01.16 10:46
Выбрать строки, которые можно удалить - на большом количестве записей в дереве ооооооочень долго думает. Можно что-нибудь сделать?!!
Формирование дерева в несколько раз быстрее, получается, чем "Выбрать строки, которые можно удалить".
92. Дмитрий Топчий (hakerxp) 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) 07.02.16 07:57
(94), напишите, пожалуйста, номер заказа. Если вы приобретали более года назад, то обновленную обработку нужно купить заново, если вам нужен новый функционал.
96. Виктор Бас (ViktorBas) 06.04.16 09:04
Рассчитывал на очистку регистров накопления. Почему-то не реализовано ...
97. Дмитрий Топчий (hakerxp) 06.04.16 09:40
(96), будет реализовано в ближайшее время. Обновление будет выслано на почту. Спасибо.
98. Иван В (isvelichko) 08.09.16 05:41
А можно ли данной обработкой удалить документ корректировка записей регистров, с отбором по организации?
99. Дмитрий Топчий (hakerxp) 08.09.16 17:00
(98), если регистратором выступает данный документ, то да. Я точно не помню как там формируются записи в регистрах. Сейчас на море, не могу глянуть.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа