Миграция данных при изменении проекта
- Если новый проект использует другие структуры данных — например, существующему справочнику был добавлен новый реквизит.
- Если после создания приложения был обновлен сервер и в новой версии сервера изменилась структура системных таблиц «1С:Шины».
Далее будет рассмотрено какие изменения произойдут с данными во время миграции при тех или иных изменениях в проекте.
Изменен состав типов реквизита
Характер изменения состава типов | Изменения в данных при миграции |
---|---|
В состав типов добавлен новый тип | Значение реквизита не меняется |
Исключен тип Дата |
|
Исключен тип ДатаВремя |
|
Исключен тип Момент |
|
Удален тип из состава типов (Также это относится и к ситуации когда тип реквизита полностью изменился, либо из состава типов были удалены все присутствующие в нем типы и добавлены новые. Например, был тип Строка, а стал — Число). |
Если значение реквизита имеет удаленный тип, то данное значение будет удалено, а на его месте будет установлено значение по умолчанию. кроме изменений типов дат (см. выше) |
Изменены строковые фасеты
Изменения в строковых фасетах | Изменения в данных при миграции |
---|---|
Уменьшено ограничение на максимальную длину строки | Значения реквизита превышающие новую максимальную длину строки будут обрезаны до максимальной длины строки |
Увеличено ограничение на максимальную длину строки | Значение реквизита не меняется |
Изменены числовые фасеты
Изменения в числовых фасетах | Изменения в данных при миграции |
---|---|
Уменьшено значение длины целой части числа | Если значение реквизита больше, чем максимально число, которое можно записать в реквизит в соответствии с новыми ограничениями, то значение устанавливается равным этому максимальному числу |
Увеличено значение длины целой части числа | Значение реквизита не меняется |
Уменьшено значение длины дробной части числа | Значение реквизита будет округлено до новой точности. |
Увеличено значение длины дробной части числа | Значение реквизита не меняется |
Изменен тип элементов реквизитов-массивов
При удалении типа из состава элементов реквизита-массива (например Массив<Строка|Число> → Массив<Строка>) при миграции проверяется, что в данных (таблице реквизита) нет записей с указанным типом элементов. Если записи с удаленным типом элементов есть — выдается ошибка и миграция данных не выполняется.
Изменены перечисления
Следующие изменения перечислений приводят к изменению данных во всех реквизитах, которые имеют это перечисление в своем составе типов:
- Удаление значения перечисления — при наличии в данных приложения этого значения (в любом поле любой таблицы), при попытке обновления будет возращена ошибка;
- Изменение порядка элементов перечисления не ведет к изменению данных, но может привести к длительной миграции таблиц, которые содержат поля с таким перечислением.
Удален элемент проекта
Во время миграции данных для удаленного типа проверяется присутствие этого типа в таблицах как значения некоторого поля с типом Тип. Если значения найдены — выдается ошибка и миграция не выполняется.