Перейти к содержанию
#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). Иначе реструктуризация регистров может завершиться ошибкой из-за ссылок на устаревшие данные.