Работает в конфигурациях БП 3.0 и ЗУП 3.1.
Если стоит задача удалить информацию из базы (документы, справочники, регистры), касающуюся какой-либо из организаций, по которой ведется учет, нужно просто запустить данную обработку на выполнение.
Если нужно разделить данные разных организаций по нескольким базам, нужно сделать необходимое количество копий базы, и в каждой выполнить обработку, указав удаляемые организации. Т.е. сделать 2 копии базы, в которой ведется учет по "Фирме 1" и "Фирме 2", в первой копии удалить данные по "Фирме 2", во 2-й копии по "Фирме 1".
Обработка работает в 2-х режимах:
1) Удаление данных по выбранной в форме обработки организации;
2) Удаление данных по всем, кроме выбранной в форме организации.
Сначала будет осуществлен поиск всех данных, связанных с удаляемой организацией (документы, справочники, регистры сведений, планы обмена), затем пометка на удаление (для независимых регистров сведений непосредственное удаление записей). После этого запущена обработка удаления помеченных объектов для контроля ссылочной целостности и непосредственного удаления.
Даты запрета изменения данных будут сняты и установлены обратно после выполнения автоматически.
Если после завершения работы обработки, удаляемая организация осталась в справочнике, нужно повторно выполнить удаление помеченных объектов ("Администрирование"-"Удаление помеченных объектов"). Если это не помогло, необходимо проверить данные. Возможно, что связанные между собой документы/справочники относятся к разным организациям (например Платежное поручение оформлено на одну организацию, а Ведомость (в реквизите ПП) на другую организацию). Такие проблемы надо устранять в индивидуальном порядке.
После завершения удаления данных желательно выполнить Тестирование и исправление ИБ в режиме Конфигуратора ("Администрирование"-"Тестирование и исправление").
Обработка требует монопольного доступа. При невозможности перейти в Монопольный режим будет выдано предупреждение. Обработка должна быть запущена под пользователем с полными правами и правами на открытие внешних отчетов/обработок.
Обработка тестировалась на БП 3.0 (3.0.69.35), ЗУП 3.1 (3.1.8.216), платформа 8.3 (8.3.13.1513;8.3.13.1644).
Доброго времени суток!
Попробовал обработку на КА 2.4 — без напильника не получилось (модуль формы, после строки 45):
Показать
Вставил этот кусок кода, убрал монопольность (наверное это необязательно, но уж больно без отладки скушно) и транзакции — это, конечно ускоряет работу, но времени на исправление в следствии использования этих бантиков потерял много больше, чем потом прошло само удаление без них)))
А так + удалилась таки непотребная организация…
(1) Добрый день, коллега!
Спасибо за комментарий. Может кому-то тоже пригодится.
(2) Пожалуйста!
Здравствуйте, в базе ЗУП с документами ввода начальных остатков программа не справилась.
(4) Добрый день!
Хотелось бы более подробную информацию получить про проблему с этими документами.
Дело в том, что документы Переноса данных (я так понимаю речь о них) немного специфические, они содержат изначально записи регистров.
И указав реквизит шапки документа «Организация»=Фирма_А, ничего не мешает создать записи регистров в нем с измерением «Организация»=Фирма_Б.
Это из той же серии зехеров, когда зависимые документы оформлены на разные организации.
(5) Документы ввода остатков перенесены стандартной программой из предыдущей версии.
Кроме них осталось много других документов и записей регистров. В ЗУП данные аналитики могут быть «переплетены» между собой что вызывает взамоблокировки.
Рекомендую для подобной корректировки отказаться от транзакции, т.к. с первого раза операция гладно пройдет в редких случаях.
Также изменить конструкцию попытка — исключение и перенести ее внутрь цикла, таким образом обработка сможет исправить то, что сможет. А с остальным можно будет справиться проанализировав результат.
После этих модификаций я смог удалить много данных, для оставшейся части использовал поиск документов с реквизитом типа организация перебором метаданных и аналогично по измерениям для регистров сведений.
На последок пришлось временно установить разрешающие права на изменение нескольких регистров «история обращения ИФНС» и справочника подразделения, для разблокировки удаления последних справочников…
Не говоря уже про удаление движений документов с ошибками (движения непроведенных документов)
В общем задача не тривиальная, такую решить универсально в рамках «одной кнопки» будет не просто.
(6) Действительно, сложно формализовать все нюансы в данных ИБ. Поэтому предупредил про ручное разруливание парасиков.
Что касается перенести Попытку внутрь цикла, то первое же исключение завершит всю транзакцию. А отказаться от нее не хотелось бы.
Потому что либо все пройдет гладко, либо ничего не изменится. Для большинства пользователей так будет привычнее и понятнее, чем середина-наполовину.
Возможно я пересмотрю алгоритм очистки, но для этого нужна база со сложностями, которые надо обойти.
Насчет прав не сталкивался с проблемой. Может потому что ролей Администратора и Полные права хватило.
У меня есть вариант этой обработки с возможностью грубого непосредственного удаления не в транзакции. Могу прислать.