gifts2017

Удаление документов по организации, очистка неиспользованных номенклатуры и контрагентов

Опубликовал Игорь Чайкин (ЧИА) в раздел Администрирование - Чистка базы

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

Логика работы

 

Фаза 1

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

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

 

Фаза 2

Удаляются договоры по Организации.

 

Фаза 3

Перебрав в цикле объекты метаданных регистры, составляет запрос из тех, что имеют измерение "Организация".

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

 

Фаза 4

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

Удаляется из справочника все, чего нет в регистрах. Проверяется измерение "Номенклатура" (не проверяется ничего другого, типа "Продукция" и т.д.).

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

 

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

Удаляется из справочника все, чего нет в договорах.

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

 

Изменения в версиях

 

1.007
 
- Добавлена проверка ссылочной целостности при удалении контрагентов и номенклатуры.

- Оптимизированы запросы по памяти и скорости

 

1.009
 
- Добавлены дополнительные проверки.

- Оптимизированы запросы по памяти и скорости

 

Рекомендации по использованию

 

Проход 1

сделать выгрузку

запустить без флажков

Посмотреть, что получилось в операции - удаление помеченных

Если позволяет время - контроль - удалить (отработают штатные механизмы при удалении)

Но на 100000+ помеченных - оно долго (см. скрин 2)

В этом случае - повторить Проход 1

Иначе - срау к Проход 2

 

Проход  2

сделать выгрузку

флажок "удалять непосредственно" включить, справочники - нет, запустить

Произвести тестирование базы с настройками как на скрине 3

 

Проход  3

сделать выгрузку

флажок "удалять непосредственно" выключить, "справочники" - включить, запустить

Посмотреть что получилось в операции - удаление помеченных

Если надо - поправить руками

 

Проход  4

сделать выгрузку

запустить обработку альтернативной очистки

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

запускать или на малом числе документов, или после первых 3х фаз

Посмотреть что получилось в операции - удаление помеченных

Если надо - поправить руками (часто - надо)

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

Наименование Файл Версия Размер Кол. Скачив.
Удаление документов по организации и связанных справочников 1.010
.epf 12,63Kb
26.07.15
94
.epf 1.010 12,63Kb 94 Скачать

См. также

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

Комментарии

1. Igоr Sаulеviсh (gutentag) 14.02.15 00:56
2. Igоr Sаulеviсh (gutentag) 14.02.15 01:08
Ошибка в типовой БП 2.0.64.8

{Форма.Форма.Форма(31)}: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
{(5, 2)}: Таблица не найдена "Документ.КорректировкаЗаписейРегистров"
<<?>>Документ.КорректировкаЗаписейРегистров КАК КорректировкаЗаписейРегистров
3. Игорь Чайкин (ЧИА) 14.02.15 01:16
4. Igоr Sаulеviсh (gutentag) 15.02.15 00:15
(3) ЧИА, проверил измененную обработку, пока заметил следующее:
- обработка запустилась и удалила документы по выбранной оргаизации по определенную дату = 31.12.2014 ---> Тут все ОК

- обработка удалила договоры, по которым было движение и в 2014г и 2015г, что не есть правильно(имхо надо менять алгоритм в обработке)

- выскочило сообщение об ошибке, но наверное не критично:

{Форма.Форма.Форма(325)}: Ошибка при вызове метода контекста (Выполнить)
РезультатТЗ = Запрос.Выполнить().Выгрузить();
по причине:
{(23, 2)}: Таблица не найдена "Справочник.ЕдиницыИзмерения"
<<?>>Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
5. Игорь Чайкин (ЧИА) 15.02.15 06:19
- обработка удалила договоры, по которым было движение и в 2014г и 2015г, что не есть правильно(имхо надо менять алгоритм в обработке)

скорее всего, переделаю. сейчас проверяются даты договоров, а не движений по договорам.

{(23, 2)}: Таблица не найдена "Справочник.ЕдиницыИзмерения"
<<?>>Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения

это точно исправлю, но дня через 2
6. Igоr Sаulеviсh (gutentag) 15.02.15 08:16
(5) ЧИА, ....документы некоторые тоже нельзя удалять - например платежки по которым выписаны авансовые счета фактуры, ПТиУ и РТмУ которые участвуют во взаиморасчетах после 01.01.2015(у меня например) Но это надо смотреть по бухгалтерскому плану счетов

7. Игорь Чайкин (ЧИА) 15.02.15 08:54
там же написано - для документов ссылочная целостность не проверяется.
8. Игорь Чайкин (ЧИА) 18.02.15 09:43
(5) По зрелому размышлению, не буду переделывать. Будет тормозить.

Если надо удалять договора по дату, а даты в договорах не проставлены, запустите без галочек, потом через контроль удалите, что удалится, и
групповой обработкой в договорах, помеченных на удаление этой организации
1. поставьте дату договора более поздней, чем дата удаления
2. уберите пометку удаления
9. Максим Литвинов (maksa2005) 25.07.15 20:14
быстро удалились документы...
10. Максим Литвинов (maksa2005) 25.07.15 20:16
{Форма.Форма.Форма(325)}: Ошибка при вызове метода контекста (Выполнить)
РезультатТЗ = Запрос.Выполнить().Выгрузить();
по причине:
{(23, 2)}: Таблица не найдена "Справочник.ЕдиницыИзмерения"
<<?>>Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
11. Игорь Чайкин (ЧИА) 26.07.15 06:13
(10) maksa2005, исправил, выложил новую
12. Игорь Чайкин (ЧИА) 26.07.15 06:36
на самом деле я там теперь удаление известных мне справочников, ссылающихся на номенклатуру, теперь делаю в попытке
и у вас они не будут автоматом помечаться на удаление (удаляться непосредственно)
а что это за конфигурация, в которой нет
Справочник.ЕдиницыИзмерения
?
13. Максим Литвинов (maksa2005) 29.07.15 12:32
(12) ЧИА, 1с77 Бухгалтерия
Прикрепленные файлы:
14. Игорь Чайкин (ЧИА) 29.07.15 15:32
Платформа
1C: Предприятие 8.2

Конфигурация
Все для 1C:8
15. Максим Литвинов (maksa2005) 04.08.15 09:08
16. Игорь Чайкин (ЧИА) 24.05.16 12:10
возникла необходимость почистить от организаций УТ11
перепробовал много удалялок
в итоге доработал свою, но без переделки форм. Т.е. запускается с ключем "обычное приложение"
пока еще сыровато (то что хотел сделал, но половину - до этого другими утилитами, так что не все есть чтобы удалить организацию в УТ11 полностью, но то, что делает - делает на порядок быстрее)
стоит ли выкладывать?
17. Борис Золотарёв (john.doe) 14.07.16 13:30
(КА 1.1 на 8.3)
не очень информативные сообщения, о каком именно Договоре речь?
Не указана валюта договора.
Не указана организация, от которой заключен договор.
Не указан способ ведения взаиморасчетов по договору.
Не указан вид договора.

ну, и в процессе работы:
{ВнешняяОбработка.ЧИА_УдалениеДокументовПоОрганизацииИСвязанныхСправочников.Форма.Форма.Форма(1335)}: Поле объекта не обнаружено (Данные)
ДогОбъект = СтрокаТЗСсылок.Данные.ПолучитьОбъект();
18. Anastasiya Surmach (SurmachAU) 14.09.16 14:57
Обработка очень пригодилась. Однако использовать ее нужно аккуратно и с умом. У клиента надо было разделить базу по двум ИП. Так получилось, что в УТ 10 нет привязки склада и организации и с остатками пришлось повозиться. Сначала объяснить клиенту почему такая разница в остатках и что необходимо делать инвентаризацию.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа