Постановка задачи: удалить неиспользуемые дополнительные реквизиты и сведения из информационной базы, а также разрешить все возможные конфликты ссылочных данных.
Итак, в информационной базе существует множество ошибочно введенных дополнительных реквизитов и сведений. Но удалить их не просто, так как стандартная обработка БСП «Удаление помеченных объектов» сообщает о том, что данные элементы используются в других объектах информационной базы.
Для решения этой задачи была разработана внешняя обработка «Удаление неиспользуемых дополнительных реквизитов и сведений», позволяющая найти все зависимости и безопасно устранить их. После завершения процесса удаления элементов ПВХ командой «Удалить» обработки следует воспользоваться стандартной обработкой БСП «Удаление помеченных объектов» и окончательно удалить все выбранные неиспользуемые элементы плана видов характеристик «Дополнительные реквизиты и сведения» с контролем ссылочной целостности. Также появится возможность удалить другие помеченные на удаление вспомогательные объекты, не имеющие уже какой-то ценности в информационной базе. Например, элементы справочников «Дополнительные значения», «Дополнительные значения (иерархия)» и другие объекты.
Рекомендую также использовать одноименную обработку платформы «Удаление помеченных объектов», так как она в данном случае позволяет удалить помеченные на удаление данные некоторых служебных объектов. Например, элементы справочника «Ключи доступа».
Элементы ПВХ «Дополнительные реквизиты и сведения» могут присутствовать в табличных частях «Дополнительные реквизиты», «Наборы значений доступа» и «Дополнительные сведения» различных справочников, документов и бизнес-процессов, а также в следующих независимых регистрах сведений:
- ДополнительныеСведения «Дополнительные сведения»;
- КлючиДоступаКРегистрам «Ключи доступа к регистрам»;
- КлючиДоступаКОбъектам «Ключи доступа к объектам»;
- ГруппыЗначенийДоступа «Группы значений доступа»;
- ЗначенияГруппДоступа «Значения групп доступа»;
- НаборыЗначенийДоступа «Наборы значений доступа».
Некоторые косвенные данные могут быть задействованы в записях следующих независимых регистров сведений:
- КлючиДоступаВнешнихПользователей «Ключи доступа внешних пользователей»;
- КлючиДоступаГруппДоступа «Ключи доступа групп доступа»;
- КлючиДоступаНаборовГруппДоступа «Ключи доступа наборов групп доступа»;
- КлючиДоступаПользователей «Ключи доступа пользователей».
Обработка элементов справочников, документов и бизнес-процессов происходит в режиме «Загрузка данных», чтобы внутренняя структура обновляемых объектов и подчинённые записи регистров не были изменены. Если дополнительные реквизиты и сведения каким-то образом участвуют в формировании записей регистров накопления, бухгалтерии или других регистров сведений, то потребуется самостоятельная доработка алгоритмов данной обработки.
Разработанную внешнюю обработку можно подключить к подсистеме БСП штатными средствами. Обработка тестировалась на платформе 1С:Предприятие 8.3 (8.3.20.1674) в информационной демо-базе БСП 3.1.7.61 (файловая и серверная база). Данная база идеально подходит для тестирования. Можно воспользоваться обработкой БСП «Групповое изменение реквизитов» и пометить на удаление все элементы плана видов характеристик «Дополнительные реквизиты и сведения». Всего получилось 19 элементов ПВХ с пометкой на удаление. Стандартной обработкой БСП «Удаление помеченных объектов» получилось окончательно удалить только 7 таких элементов ПВХ. На остальные элементы ПВХ ссылаются другие объекты информационной базы.
Обработка «Удаление неиспользуемых дополнительных реквизитов и сведений» разрешила все зависимости и конфликты. Далее процесс удаления можно зафиксировать одноименными обработками БСП и платформы «Удаление помеченных объектов». Все 19 элементов ПВХ и зависимые от них объекты были удалены успешно!
Информационная база была проверена встроенной обработкой платформы «Тестирование и исправление информационной базы» на наличие битых ссылок до и после запуска процесса удаления всех элементов ПВХ «Дополнительные реквизиты и сведения». Битых ссылок обнаружено не было!