#std534¶
Удаление устаревших объектов метаданных из конфигурации¶
1.¶
При изменении структуры метаданных, если объект связан с данными ИБ, заранее решите: переносить данные или удалять.
1.1.¶
Не удаляйте устаревшие объекты и реквизиты сразу.
Пометьте их как устаревшие, добавив префикс Удалить (англ. Obsolete) к имени.
Пример:
ОсновнойДоговор → УдалитьОсновнойДоговор (ObsoleteMainContract).
В синоним добавляйте префикс (не используется) (англ. (not used)). Это относится и к стандартным реквизитам.
1.2.¶
После изменения структуры обеспечьте перенос данных из устаревших объектов и реквизитов в новую структуру.
1.3.¶
Если удаляемый объект — документ-регистратор, а регистры остаются, решите вопрос сохранения движений. Рекомендуется:
- запретить формирование движений при проведении таких документов;
- запретить снятие пометки удаления;
- заменить регистратора в существующих движениях на замещающие документы (например, Перенос данных, Операция);
- пометить все документы этого вида на удаление.
1.4.¶
Замените по всей конфигурации обращения к устаревшим объектам и реквизитам на новые.
Удалите лишние формы, команды, макеты и код.
Исключите устаревшие объекты из ролей (кроме ПолныеПрава и АдминистраторСистемы см #std689: Настройка ролей и прав доступа), подписок и т.п.
Исключение — код переноса данных (см. п. 1.2).
1.5.¶
Сортируйте устаревшие объекты и реквизиты в дереве метаданных по общим требованиям к конфигурации.
1.6.¶
Рекомендуется очистить устаревшие данные, чтобы они не влияли на размер базы и не потребляли ресурсы. Если перенос сложный и рискованный, очистку можно отложить на один или несколько релизов. Это дает возможность выпустить внеплановый релиз при ошибках переноса.
2.¶
Перенос данных требуется также при изменении структуры измерений регистров сведений, если:
- удаляется измерение;
- сокращается тип измерения (уменьшается длина
Число/Строка/Дата, заменяется тип, удаляется тип в составе, удаляется значение перечисления).
В этих случаях при реструктуризации возможна ошибка Записи регистра стали неуникальными. Решение:
- создать новый регистр с правильной структурой, старый пометить как устаревший и перенести записи;
- или установить у измерения свойство Режим сокращения типа = Удалять данные, если перенос не нужен.
Устанавливайте Удалять данные для измерения регистра сведений, если:
- используется универсальный тип (
СправочникСсылка,ДокументСсылкаи т.п.); - измерение настраивается в типовых решениях (напрямую, через определяемый тип или через изменения состава значений перечисления).
Новый регистр не требуется, если:
- добавляется новое измерение;
- расширяется состав типов у измерения составного типа.
3.¶
Удаляйте устаревшие объекты и реквизиты с префиксом Удалить (Obsolete) только при выпуске новых версий и при одном из условий:
- обновление всегда выполняется последовательно через версию с переносом данных;
- вероятность использования старой версии стала нулевой или пренебрежимо малой.
Пример
В версии 1.1 реквизит ОсновнойДоговор помечен как устаревший.
Тогда обновление с версии 1.0 на 2.0 идет в два шага:
- сначала на 1.1,
- потом на 2.0.
Переход напрямую с 1.0 на 2.0 запрещен.
При необходимости выпустите промежуточный релиз для очистки устаревших данных (см. п. 1.6). Иначе реструктуризация регистров может завершиться ошибкой из-за ссылок на устаревшие данные.